Arduino PWM控制LED灯亮度在TinkerCAD上的仿真
- 原创
- |
- 浏览:877
- |
- 更新:
Arduino的数字引脚只能输出0和1,当输出1时LED灯点亮,输出0时LED灯熄灭。如何用数字引脚调节LED灯亮度呢,这就需要数字引脚的PWM功能。PWM(Pulse width modulation)脉冲宽度调制是一种模拟控制方式,是利用微处理器的数字信号对模拟电路进行控制的一种非常有效的技术。Arduino的3,5,6,9,10,11这个6个引脚具有PWM输出功能。可以利用这些引脚对LED灯进行PWM控制,从而实现亮度控制。
方法/步骤
将Arduino,面包板,LED灯和电阻拖入工作区,将电阻阻值修改为360欧,将LED灯改为绿色,连接好线。选择6引脚来控制LED灯。具体过程可以参考
- 此文章未经许可获取自百度经验
这个电路和Arduino控制LED灯闪烁的电路一样啊!是的,硬件电路完全一样,但是软件不一样就会得到一样的效果,这就是软件的神奇之处。0和1输出是采用digitalWrite()函数,PWM输出采用analogWrite()函数,该函数有两个参数,第一个参数为输出的引脚,第二个参数设置PWM的占空比,这里是LED的灯的亮度,从0到255,0是熄灭,255是最亮。
具体程序如下
点击开始模拟,就会看到LED每个三秒亮度就改变一次。第一个三秒亮度为10,如下图
第二个三秒亮度为200,第三个三秒有亮度又变成10,如果往返循环。
TinkerCAD组件有示波器,可以用这个东东来看一下PWM长得什么样,从组件里找到示波器拖到工作区域,示波器的正极连接arduino引脚6的输出,示波器的负极连接arduino的GND,为了便于观察PWM的样子,将每次分割时间设为300us。
点击开始模拟,就会发现前三秒示波器显示的波形和后三秒示波器显示的波形不一样,示波器的波形也随着LED灯的亮度变化,每隔三秒变化一次。因为波形的占空比不同,所以LED的灯的亮度也就不同。
END













