|
楼主 |
发表于 2013-3-2 21:15:16
|
显示全部楼层
analogWrite()Description
向针脚写入一个逻辑值 (PWM wave). 可以用来点亮LED灯,调整其亮度或者驱动一个电机,控制其转速. 调用analogWrite()函数后, 对应的针脚会输出一个稳定的,指定占空比的方波.(在这个针脚下一次调用analogWrite() ,或者调用digitalRead()或者 digitalWrite(),针脚的输出会改变为相应的函数执行), PWM信号的频率近乎于490Hz.
在大多数的Arduino板上(MCU为 ATmega168 or ATmega328), 函数起作用的针脚为 3, 5, 6, 9, 10, 和 11. 在 Arduino Mega板上, 起作用的针脚为 2 到 13. 老一点的Arduino 板,MCU是 ATmega8 的,analogWrite()只支持针脚9, 10, and 11. 在执行analogWrite()之前,不需要调用pinMode()函数把针脚设置成输出模式.analogWrite函数和模拟量采集针脚, analogRead 函数毫无关系.
语法
analogWrite(pin, value)
参数
pin:需要操作的针脚.
value: 占空比: 从 0 (off) 到 255 (on).
返回值
无返回值
一些说明和已知的问题
针脚5和6上的PWM输出,占空比往往高于期望值.这是由于millis()和delay()函数的相互作用,会占用内部计时器,使内部计时器在处理PWM输出时分心. This is because of interactions with the millis() and delay() functions, which share the same internal timer used to generate those PWM outputs.这种情况一般出现在低占空比设置时,(比如 0 - 10) ,还有些情况是占空比为0时,针脚5和6并没有关闭输出.
|
|