这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
ocrobot:kit:arduino_star_kit:tutorial04 [2017/04/07 10:03] – 外部编辑 127.0.0.1 | ocrobot:kit:arduino_star_kit:tutorial04 [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ======PWM控制LED(呼吸灯)====== | ||
+ | PWM是使用数字手段来控制模拟输出的一种手段。使用数字控制产生占空比不同的方波(一个不停在开与关之间切换的信号)来控制模拟输出。 | ||
+ | |||
+ | PWM (Pulse-width modulation)脉宽调制 | ||
+ | |||
+ | PWM是使用数字手段来控制模拟输出的一种手段。使用数字控制产生占空比不同的方波(一个不停在开与关之间切换的信号)来控制模拟输出。 | ||
+ | | ||
+ | |||
+ | ------------------------------------------------ | ||
+ | 以OCROBOT MANGO来看,端口的输入电压只有两个0V与5V。对于OCROBOT的数字端口电压输出只有LOW与HIGH两个开关,对应的就是0V与5V的电压输出,我们把LOW定义为0,HIGH定义为1.一秒内让控制板输出500个0或者1的信号。如果这500个全部为1,那就是完整的5V,如果全部为0,那就是0V。如果010101010101这样输出,刚好一半一半,输出端口就感觉是2.5V的电压输出了。单位时间内输出的0, | ||
+ | |||
+ | 在下图中,绿线之间代表一个周期,其值也是PWM频率的倒数。换句话说,如果PWM的频率是500Hz,那么两绿线之间的周期就是2毫秒。 analogWrite() 命令中可以操控的范围为0-255, analogWrite(255)表示100%占空比(常开), analogWrite(127)占空比大约为50%(一半的时间)。 | ||
+ | |||
+ | {{: | ||
+ | |||
+ | =====电路搭建===== | ||
+ | 在OCROBOT MANGO的数字引脚中,只有加了# | ||
+ | {{: | ||
+ | =====代码===== | ||
+ | <code cpp> | ||
+ | int led=9; | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(led, | ||
+ | } | ||
+ | |||
+ | |||
+ | void loop() { | ||
+ | for (int brightness = 0; brightness < 255; brightness++) { // | ||
+ | analogWrite(led, | ||
+ | delay(10); | ||
+ | } | ||
+ | |||
+ | for (int brightness = 255; brightness >= 0; brightness--) { // | ||
+ | analogWrite(led, | ||
+ | delay(10); // | ||
+ | } | ||
+ | delay(100); // | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | <WRAP center round tip 100%> | ||
+ | analogWrite() | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | 语法 | ||
+ | | ||
+ | |||
+ | 参数 | ||
+ | | ||
+ | | ||
+ | |||
+ | </ | ||
+ | {{youku> | ||
+ | |||
+ | [[ocrobot: |