动手学arduino智能车(5)pwm调速

曾经有写一篇文章,介绍pwm技术。

PWM(脉冲宽度调制)是利微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术

简单说来,arduino各引脚通常只有0(0伏)和1(5伏)两个状态,要让引脚输出0.4(2伏),怎么办?pwm就有办到。

在arduino中,常用PWM来调整LED的暗亮,电机的转速等。

首先在tinkercad的circuits中进行仿真:

在仿真电路中,在10脚接一个LED电路,并联一个电压表,给一段让10脚电压从0-5V来回变化(LED呼吸灯)效果的代码。

代码:

动手学arduino智能车(5)pwm调速

仿真效果:

仿真截图一:

动手学arduino智能车(5)pwm调速

仿真截图二:

动手学arduino智能车(5)pwm调速

用pwm控制小车电机转速:

arduino板上画有“~”的引脚中的两个引脚相连。Arduino UNO 控制器的数字引脚中,3,5,6,9,10,11六个可以输出PWM信号。动手学arduino智能车(5)pwm调速
小车电机驱动模块四个引脚接口(p7的IN1 IN2 IN3 IN4)与arduino的5 6 9 10四个端口相连,这四个端口都是可能输出pwm信号的。

使用设置pwm命令给arduino相应的引脚输出pwm信号。

动手学arduino智能车(5)pwm调速

 

修改forward turnleft turnright stop四个自定义函数,如图:

动手学arduino智能车(5)pwm调速

(turnright stop函数略)

主函数不变(红外避障):

动手学arduino智能车(5)pwm调速