本次实验通过PW M 来控制一盏LED 灯,让它慢慢变亮再慢慢变暗,如此循环
下面是接线图: /* 本次实验演示如何通过analogWrite()命令使连接9 号端口的LED 灯亮度逐渐变化 */ int brightness = 0; //定义整数型变量brightness 与其初始值,此变量用来表示LED的亮度
int fadeAmount = 5; //定义整数型变量fadeAmount,此变量用来做亮度变化的增减量
void setup() { pinMode(9, OUTPUT);// 设置 9 号口为输出端口: } void loop() { analogWrite(9, brightness);//把 brightness 的值写入 9 号端口 brightness = brightness + fadeAmount;//改变brightness 值,使亮度在下一次循环发生改变 if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; // 在亮度最高与最低时进行翻转 } delay(30); //延时30 毫秒 } 复制代码 本次实验效果如下: analogWrite() 其作用是给端口写入一个模拟值(PWM 波)
可以用来控制LED 灯的亮度变化,或者以不同的速度驱动马达
当执行analogWrite()命令后,端口会输出一个稳定的占空比的方波
除非有下一个命令来改变它
PWM 信号的频率大约为 490Hz
在使用ATmega168 与ATmega328 的 arduino 控制板上,其工作在3,5,6,9,10,11 端口
Arduino Mega 控制板,可以工作于 2-13 号端口
在更古老的基于 ATmega8 的 arduino 控制板上,analogWri