从Arduino引脚产生的PWM信号的确切频率是多少

时间:2014-05-24 08:07:01

标签: arduino pwm arduino-uno

http://arduino.cc/en/Reference/analogWrite中说,

“大多数引脚上的PWM信号频率约为490 Hz。在Uno和类似的电路板上,引脚5和6的频率约为980 Hz.Leonardo上的引脚3和11也以980 Hz的频率运行。 “

我现在要检查那个频率。只需输入此命令analogWrite(9,127),它将生成占空比为50%的PWM信号。

然后我使用pulseIn内置Arduino函数(pulseIn descriotion)并输入此命令pulseIn(9,HIGH)来测量信号为HIGH的周期。它平均返回 1010 us

因此周期时间 2020 (高周期为1010,低周期为1010),因此该引脚的PWM频率为495.04~ 495Hz 。 / p>

引脚编号5相同。高电平周期 506 uS ,整个周期 1012 uS ,该引脚的PWM频率为988.14 Hz~ 988 Hz

那么,PWM的确切频率是多少?!

以下图片是Arduino草图和结果的快照

Arduino草图

The Arduino sketch

当我多次按“1”时

When I pressed '1' multiple times

当我多次按“0”时

When I pressed '0' multiple times

3 个答案:

答案 0 :(得分:0)

PWM信号由定时器创建。定时器递增寄存器,并且各种方法基于此创建方波信号。

频率取决于3件事:

  • 主时钟:通常在Arduino上为8MHz或16MHz)
  • 预分频率(或下页的除数):为了减慢频率,您可以设置定时器以每1,2,4,8,1 ...主时钟周期增加计数
  • 最大计数:有几种计数方法,但重要的限制是寄存器大小(通常是Arduino上的8位和16位)

您可以在此页面找到具体的详细信息: http://playground.arduino.cc/Main/TimerPWMCheatsheet

答案 1 :(得分:0)

  

那么,PWM的确切频率是多少?!

imo有许多变量可以提供"确切的"电路板之间的PWM频率和其他因素。

例如,如果我要从同一家公司测试两个不同的电路板,我将无法获得完全匹配。

答案 2 :(得分:-1)

您使用了PWM信号工作在980hz的两个引脚中的一个! 更具体地说,引脚​​5和6!

这是Arduino的网站所说的:

  

大多数引脚上的PWM信号频率约为490 Hz。   在Uno和类似的板上,引脚5和6的频率为   大约980赫兹。

http://arduino.cc/en/Reference/analogWrite