L9110风扇模块,可控制正反转,具有安装孔,可以吹灭20cm外的打火机或蜡烛火焰,经常被用于灭火机器人之上。
【连线】:VCC连5V,GND连GND,INA连D5,INB连D6
测试程序
○先测试一下风扇是正转还是反转的?
运行效果:按钮控制风扇正转,按钮按一次,风扇转动,再按一次,风扇逐渐停转。
如果发现风扇反转,说明D5、D6接反,可以查看并修改连线情况,也可以不去摆弄连线,直接修改程序里的赋值(代码中注释部分)
◇效果:按钮(A0)控制风扇,按一次正转,按第二次反转,再按一次风扇减速至停止。
◇难度:★★★
引入变量n,n作为计数器,每次按钮(A0)被按下后,累加1,然后将n除以3取余数,覆盖原来的n,这样n就一直在0~2之间循环。
对应于n的三种取值情况,进行分类操作:1.当n等于0时(余数为0),将管脚#5赋值为0,管脚#6赋值为0,风扇马达停止转动,这也对应于一开机的“静止”初始状态;
2.当n等于1时(余数为1),将管脚#5赋值为100,管脚#6赋值为0,实现正转效果;
3.当n等于2时(余数为2),将管脚#5赋值为0,管脚#6赋值为100,实现反转效果。
按钮一次次被按下后,触发n在0~2之间循环,也就对应于这三种模式的依次循环切换。
◇效果:按钮实现风扇五级变速,按下按钮(A0),风扇风力变大一档,共有五档风扇速度。
◇难度:★★★
(*注意:当按钮(A0)按下第一次时,风扇可能出现不转的情况,是因为马达驱动赋值<70时,电力不够,不足以驱动风扇转动,再按一次(A0)风扇即可转动)
马达驱动转速范围为(0~255),要分为五档风速,则约50为一档。按钮(A0)每按下一次,n增加50,风扇转速增速一档,当风扇处于第五档(最高转速时),再按一次按钮(A0),风扇停止。(由于惯性,风扇从最高速逐渐减速至停止,需要几秒钟时间)
◇效果:按下按钮(A0),风扇先从0加速至最大转速,延时2秒后,风扇减速至风扇停转。(全过程约为12秒左右)◇难度:★★★★
分别定义“加速”和“减速”函数模块,使用for循环分别实现:马达逐渐增速和逐渐减速(匀加速、匀减速)
◇效果:使用counter计数,按下按钮风扇启动,按钮按住不放(3秒后),风速加大,按钮松开,风扇逐渐停转。
◇难度:★★★
当按钮(A0)被按下后,程序以30毫秒为间隔,通过累加计数的方式,来计算按钮按下的时间,从而区分“长按”和“短按”两种情况。
这里的阈值设定为100次。
按钮放开后,风扇停转,计数变量n清零。
程序04(简易修改)
计数器变量counter可以简化为n,通过缩短时间间隔,或者减小计数器阈值,都可以缩短“长按”的时间。
◇效果:长按按钮(A0),风扇启动,并以低速(90)转动,长按时间到达2秒后,风扇加速至速度200
◇效果:长按按钮(A0)不放,风扇正转,松开按钮,再次长按按钮(A0)不放,风扇反转,松开按钮,风扇停转。
◇难度:★★★
当按钮(A0)被按下后,n的值在0和1之间进行切换,从而区分正反转。
bit小星球,天马行空的青少年编程知识分享。
Arduino单片机快速上手,获取更多干货,最新分享早知道!
全部评论 (0)