Arduino UNO R3自学笔记7 之 Arduino使用PWM电机调速
注意:学习和写作过程中,部分资料搜集于互联网,如有侵权请联系删除。
前言:本篇主要介绍Arduino的PWM及电机驱动应用。
1.什么是PWM?
PWM(Pulse Width Modulation)是一种数字信号处理技术,它通过改变脉冲信号的宽度来控制模拟电路。具体来说,PWM信号的周期是固定的,而脉冲的宽度(占空比)可以根据需要进行调整。
占空比是指在一个周期内,高电平持续的时间与整个周期的比例。
通过改变占空比,可以控制输出信号的幅度,从而实现对模拟电路的精确控制。
PWM技术广泛应用于各种领域,包括电机控制、LED调光、电源变换等。例如,在电机控制中,通过改变PWM信号的占空比,可以控制电机的速度;在LED调光中,通过改变PWM信号的占空比,可以控制LED的亮度。
2.Arduino的PWM怎么产生?
Arduino UNO R3 控制器有6个PWM引脚,它们标记为数字3、5、6、9、10和11。这些引脚支持使用 analogWrite() 函数来生成PWM波,从而控制支持PWM功能的设备,如电机、LED灯等。PWM引脚输出的电压为5V,而占空比的不同会导致输出电压电平的变化。
3.Arduino的PWM具体使用方法?
首先,设置PWM引脚:在void setup()里面使用 pinMode() 函数将PWM引脚设置为输出模式。
其次,生成PWM信号:使用 analogWrite() 函数在PWM引脚上生成PWM信号。过程中可以使用 analogWrite(pin,duty) 函数调整PWM引脚上输出PWM的占空比,因为Arduino UNO R3 的板子支持的PWM是8位精度,也就是说duty的取值在0~255。
注意:生成的PWM信号的频率约为490Hz。
4.实验电路原理及说明
5.完整代码
#define moto_pwm_pin 3 //给引脚3取个名字,叫做moto_pwm_pin,后面可直接写moto_pwm_pin代替3
int moto_speed=0; //定义一个占空比的值,实际占空比值为(moto_speed/255)×100%
void setup()
{
pinMode(moto_pwm_pin,OUTPUT); //设置3号引脚为输出模式
}
void loop()
{
analogWrite(moto_pwm_pin,moto_speed); //给3号引脚一个PWM信号
moto_speed++; //加大moto_speed值
if(moto_speed>255)moto_speed=0; //有效检查,moto_speed值大于255时,无意义了,赋为0
delay(50); //这个是控制loop循环速度,每循环一次moto_speed值被加大,电机速度加快
}
6.写在最后
如果没有电机驱动板,可以按如下办法验证此代码:
●按如下接线
待程序上传上去就会发现随着占空比增加,灯(板载标识符为“L”)越来越亮,最后熄灭,一直循环次过程。
上一篇:Arduino UNO R3自学笔记6 之 Arduino引脚(IO)功能介绍
下一篇:Arduino UNO R3自学笔记8 之 Arduino如何测电压?