How to modify the PWM frequency on the arduino
http://www.eprojectszone.com/how-to-modify-the-pwm-frequency-on-the-arduino-part1/
arduino PWM 引脚的缺省频率为
9、10、约980赫兹, ??
5、6, 3、11
但对于许多应用程序, 我们需要一些更高的频率。arduino 可以产生高达8Mhz 的 PWM 针脚的频率。要修改这些值, 我们需要使用计时器 (其中包含寄存器)。对于 PWM, arduino 有三定时器一为二个别针象:
定时器 0-pin 5和6
定时器 1-pin 9和10
定时器 2-pin 3和11
在这些寄存器旁边 arduino 可以将PWM 设置为在四种方式
-快速 PWM
-相位校正 pwm
-频率和相位校正 pwm
-TCT模式
快速 PWM 模式-定时器计数从底部值到最高值后, 它溢出,再从底部值开始重复 (锯齿波形), 它可以产生更高的频率。
对于这个模式, 可能的频率是由公式 f=f_clk/N*256, 其中 f 是必要频率, f_clk 是振荡器频率 (16 兆赫) 和 N 是分频器 (它有精确的值, 它是给定的定时器的位, 所以我们将解释它在更多的细节时, 我们会谈论定时器)。
相位正确的 PWM 模式-定时器计数从底部值到最高值之后, 它不会溢出,从最高值到底部值和重复 (三角波)。这种模式有一半的快速 pwm 模式频率。它是首选的马达控制。
为这个模式可能的频率由 f=f_clk/N*510 公式获得, 与快速的 pwm 方式类似。
频率和相位正确的 pwm (仅在定时器 1)-是相同的相位正确的 pwm 如果最高值保持不变, 如果不让 asumme, 我们有两个最高值 TOP1 和 TOP2, TOP1>TOP 2, 当定时器计数高达1和向下到底部的脉搏有一个特定的时间段, 但当定时器计数高达2和下至下, 因为前2是小于前1的脉搏有一个小的时间段, 所以更高的频率 (图片从 atmega 数据表)。
TCT模式-在此模式计时器计数为最高值, 当它达到该值时, 清除计时器并执行某项。这种模式让我们做非常精确的操作 。
定时器0管理针脚5和 6, 所以接下来在几个例子中, 我们将告诉你如何管理 pwm 频率。
假设我们希望在50% 时生成一个具有任务周期的快速 PWM 模式 (我们将在 OCRA 寄存器到达时解释)。
要在 TCCR0A 中选择快速 pwm 模式, 我们必须使 WGM01 和 WGM00 位等于 1, 如下面的图片 。
PWM 模式
正如我们在本文中解释的 arduino 程序, 我们有 TCCR0A=B10100011;这意味着 WGM00 和 WGM01 从 TCCR0A 寄存器是 1, 这意味着 pin 5 和6是在快速 pwm 模式。
网友评论