03-1 模拟输出管脚
(一)模拟信号的形式
周围世界中的声音、色彩、温度等都是一模拟信号存在,信号连续变化,可以有多个数值,如0.3,2.6等。
数字信号只有5V和0V两种状态。
(二)PWM(Puslse Width Modulation,脉冲宽度调制)—将数字信号转换成模拟信号
PWM信号通过调整一个信号周期中,高电位持续的时间,所占的比例,模拟出介于0V~5V之间的电压信号,这个比例称为占空比。
下图中高电位占50%的PWM信号,相当于5V X 50% = 2.5V的电压值的模拟信号。占空比越大,等效的平均模拟电压值就越大,反之,越小。
(三)模拟信号PWM输出函数:
analogWrite(管脚编号,模拟数值)
*analogWrite()
是 Arduino 中的一个函数,用于向一个支持脉宽调制(PWM)的引脚输出模拟值(实际上是一个特定占空比的方波)。
语法为:analogWrite(pin, value)
。
pin
:要进行模拟输出的引脚编号。value
:一个介于 0 和 255 之间的值,表示输出的占空比。0 表示完全关闭(低电平),255 表示完全打开(高电平),中间的值表示不同的占空比,从而产生不同程度的模拟输出。
例如,analogWrite(9, 128)
将在引脚 9 上输出占空比为 50%左右的方波,可用于控制 LED 的亮度或电机的速度等。*
03-2 实验:PWM改变LED灯亮度
(一)接线图
(二)程序
仿真图
发光二极管会逐渐点亮逐渐熄灭
控制代码
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
//第1个循环
for (int i = 0; i <= 256; i++) {
analogWrite(3, i);
delay(5);
}
//第2个循环
for (int i = 256; i > 0; i--) {
analogWrite(3, i - 1)