如果Arduino Uno只有6个数字PWM引脚,如何支持多达12个伺服器?


8

根据

伺服库在大多数Arduino板上最多支持12个电机,在Arduino Mega上最多支持48个电机。在Mega以外的板上,使用该库会禁用引脚9和10上的AnalogWrite()(PWM)功能,无论这些引脚上是否有Servo。在Mega上,最多可以使用12个伺服器,而不会影响PWM功能。使用12到23个电机将禁用引脚11和12上的PWM。

然而,根据

数字I / O引脚14(其中6个提供PWM输出)

那么,如果Uno只有6个可提供PWM输出的数字I / O引脚,那么如何控制6个以上的伺服器呢?

Answers:


4

尽管我自己没有看过信号源,但在这种情况下,它们通常使用中断定时器1,该定时器在PWM模式下将与引脚9和10相关联。这可以解释为什么不能在引脚上使用脉冲宽度调制这些别针。实际上,您可以在任何数字引脚上使用三个定时器中的任何一个用于PWM ,尽管它不如内置PWM选项好


(来源:bansky.net

来源

上图准确描述了信号如何发送到伺服电机。这样的波形类似于标准PWM。伺服器库可以将度数转换为波形,伺服器的IC将能够使用该波形通过其电机和电位计来调整电机的位置。


1
所以它本质上是模拟PWM?那么带PWM通道的数字引脚的作用是什么?
user1265 2014年

@ user1265或多或少...正在使用驱动PWM的计时器。就PWM而言,ATmega328的IIRC具有使PWM效率更高的电路。
匿名企鹅2014年

2
@ user1265,硬件PWM是“免费的”,即,它根本不影响程序其余部分的性能(它只占用一个计时器或至少占用一部分计时器)。为仿真PWM维护中断程序的成本相对较高。但是,在这种情况下,PWM频率仅约为50Hz,所以这并不是太悲惨(标准Arduino PWM频率为31 / 62kHz,例如在50Hz的照明应用中进行PWM可能会相当闪烁)。
microtherion 2014年

What is the point of the digital pins with PWM channels then?-您可以获得更高的频率(高达8 MHz)和非常精确的占空比。当您依靠中断为您执行此操作时,这是不可能的。
尼克·加蒙
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.