本实验基于arduino uno 利用l298n驱动板来控制直流电机的正反转和速度
L298N说明
这是其中一个板,貌似还有蓝色绿色什么的,但是使用方法差不多
接口说明
- 12V供电: 这个是外部电源为驱动板供电的接口,一般驱动电压实际可以接受的输入范围是7~12V,此时可以使能板载的5V逻辑供电。当使用大于12V的驱动电压时,为了避免稳压芯片损坏,首先要拔掉板载5V输出使能的跳线帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑供电。
- 5V供电 :(引出5V电压接到Arduino板,给Arduino板供电(驱动电压7~12V)连接到UNO板的5V)同时Arduino板也要引出一条GND线,连接到L298N的GND与外部电源共地。
- ENA ENB通道A使能,通道B使能:当你不用PWM时不需要拔掉跳线帽,当你需要PWM时,将需要拔掉跳线帽,接到Arduino上的模拟输入输出接口,我的只需要外侧接上,下面回介绍。 (就是用来调速的)
- IN1 IN2 IN3 IN4逻辑输出口:其中IN1 IN2 控制一个电机的转动,IN3 IN4 控制另一个电机的转动,只要一个置高 一个置低,就可以让电机转动起来。(控制转向),
- 板载5V::用于板载5V供电,如果把掉跳线帽,需要在5V输出接口上,通过外部电源输入5V电压为L298N驱动版供电。
通常是为了避免稳压芯片损坏,当输入驱动电压大于12V时,拔掉跳线帽,需要使用其它电源输入5V电压为驱动板供电。
正反转及调速说明
若in1与in2还有ENA控制A电机
[tr]IN1IN2IN3IN4ENAENBA电机B电机[/tr]
HIGH | LOW | | | n | m | 正转速度为n | |
LOW | HIGH | | | n | m | 反转速度为n | |
LOW | LOW | | | n | m | 不转 | |
HIGH | HIGH | | | n | m | 不转 | |
LOW | HIGH | | | 0 | m | 不转 | |
对于B电机也同理
接线说明
接线方法很多,下面介绍种
值得注意的是有时候Arduino接5V供电是不足以提供电压的,则按方法二
方法一
如图
- 9V~12v电池正极接L298N的12v供电,负极接L298N的GND
- L298N的5v供电接arduino的5v,arduino的GND也连接L298N的GND
- 然后IN1~IN4接arduino的2 ~13都可以,根据需求而定,代码中定义即可
- L298N的输出A,输出B分别连接一个直流电机
- ENA,ENB分别连接arduino的模拟输出,以控制速度
方法二
如图
- L298N的GND和板载5V使能(拔掉跳线帽)分别连接arduino的GND,5V
- 12V电源连接L298N的12v供电与GND
- 将数字3、4脚接L298模块的IN1和IN2(逻辑输入)脚,
- 10接ENA脚(通道A使能)
- 电机接OUT1和OUT2输出口,
源代码
只提供了正反转的往复功能,其他功能自由发挥
#define IN1 3 //定义IN1为3口
#define IN2 4 //定义IN2为4口
#define ENA 10 //定义ENA为10口
void setup()
{
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(ENA,OUTPUT);
}
void loop()
{ //正转速度为满速的 200/255
digitalWrite(IN1,HIGH); //控制电机正转
digitalWrite(IN2,LOW);
analogWrite(ENA,200); //控制电机转速,迳我自己测试超过150电机才开始转
delay(5000);
digitalWrite(IN1,LOW); //电机反转
digitalWrite(IN2,HIGH);
analogWrite(ENA,200);
delay(5000);
digitalWrite(IN1,LOW); //控制电机停下
digitalWrite(IN2,LOW);
analogWrite(ENA,255);
}
最后
持续更新arduino 树莓派 python 等等
接到有帮助的话 求点赞
本实验基于arduino uno 利用l298n驱动板来控制直流电机的正反转和速度
L298N说明
这是其中一个板,貌似还有蓝色绿色什么的,但是使用方法差不多
接口说明
- 12V供电: 这个是外部电源为驱动板供电的接口,一般驱动电压实际可以接受的输入范围是7~12V,此时可以使能板载的5V逻辑供电。当使用大于12V的驱动电压时,为了避免稳压芯片损坏,首先要拔掉板载5V输出使能的跳线帽,然后在5V输出端口外部接入5V电压对L298N内部逻辑供电。
- 5V供电 :(引出5V电压接到Arduino板,给Arduino板供电(驱动电压7~12V)连接到UNO板的5V)同时Arduino板也要引出一条GND线,连接到L298N的GND与外部电源共地。
- ENA ENB通道A使能,通道B使能:当你不用PWM时不需要拔掉跳线帽,当你需要PWM时,将需要拔掉跳线帽,接到Arduino上的模拟输入输出接口,我的只需要外侧接上,下面回介绍。 (就是用来调速的)
- IN1 IN2 IN3 IN4逻辑输出口:其中IN1 IN2 控制一个电机的转动,IN3 IN4 控制另一个电机的转动,只要一个置高 一个置低,就可以让电机转动起来。(控制转向),
- 板载5V::用于板载5V供电,如果把掉跳线帽,需要在5V输出接口上,通过外部电源输入5V电压为L298N驱动版供电。
通常是为了避免稳压芯片损坏,当输入驱动电压大于12V时,拔掉跳线帽,需要使用其它电源输入5V电压为驱动板供电。
正反转及调速说明
若in1与in2还有ENA控制A电机
[tr]IN1IN2IN3IN4ENAENBA电机B电机[/tr]
HIGH | LOW | | | n | m | 正转速度为n | |
LOW | HIGH | | | n | m | 反转速度为n | |
LOW | LOW | | | n | m | 不转 | |
HIGH | HIGH | | | n | m | 不转 | |
LOW | HIGH | | | 0 | m | 不转 | |
对于B电机也同理
接线说明
接线方法很多,下面介绍种
值得注意的是有时候Arduino接5V供电是不足以提供电压的,则按方法二
方法一
如图
- 9V~12v电池正极接L298N的12v供电,负极接L298N的GND
- L298N的5v供电接arduino的5v,arduino的GND也连接L298N的GND
- 然后IN1~IN4接arduino的2 ~13都可以,根据需求而定,代码中定义即可
- L298N的输出A,输出B分别连接一个直流电机
- ENA,ENB分别连接arduino的模拟输出,以控制速度
方法二
如图
- L298N的GND和板载5V使能(拔掉跳线帽)分别连接arduino的GND,5V
- 12V电源连接L298N的12v供电与GND
- 将数字3、4脚接L298模块的IN1和IN2(逻辑输入)脚,
- 10接ENA脚(通道A使能)
- 电机接OUT1和OUT2输出口,
源代码
只提供了正反转的往复功能,其他功能自由发挥
#define IN1 3 //定义IN1为3口
#define IN2 4 //定义IN2为4口
#define ENA 10 //定义ENA为10口
void setup()
{
pinMode(IN1,OUTPUT);
pinMode(IN2,OUTPUT);
pinMode(ENA,OUTPUT);
}
void loop()
{ //正转速度为满速的 200/255
digitalWrite(IN1,HIGH); //控制电机正转
digitalWrite(IN2,LOW);
analogWrite(ENA,200); //控制电机转速,迳我自己测试超过150电机才开始转
delay(5000);
digitalWrite(IN1,LOW); //电机反转
digitalWrite(IN2,HIGH);
analogWrite(ENA,200);
delay(5000);
digitalWrite(IN1,LOW); //控制电机停下
digitalWrite(IN2,LOW);
analogWrite(ENA,255);
}
最后
持续更新arduino 树莓派 python 等等
接到有帮助的话 求点赞
举报