本帖最后由 lxf 于 2020-8-17 13:29 编辑
目标
1、用L298N电机驱动板驱动马达,完成驱动小车前进、后退。 2、对小车进行调速控制
实验材料
Arduino UNO开发板 配套USB数据线
L298N电机驱动板 9V充电锂电池和9V电池扣子 装有两个直流电机马达小车 配套杜邦线若干 Arduino IDE软件
(硬件对照图)
内容
1、用L298N电机驱动板驱动马达,完成驱动小车前进3秒后后退,3秒后再前进,依次循环。
接线图
备注: L298N电机驱动板的ENA接Arduino UNO的4号引脚,ENB接Arduino UNO的12号引脚。
接线方式
Arduino UNO <------> L298N电机驱动板 5V <------> +5V GND <------> GND
ENA <------> 4 IN1 <------> 5
IN2 <------> 6
ENB <------> 12
IN3 <------> 10 IN4 <------> 11
L298N电机驱动板 <------> 直流减速电机A OUT1 <------> 一端接口 OUT2 <------> 另一端接口 L298N电机驱动板 <------> 直流减速电机B OUT3 <------> 一端接口 OUT4 <------> 另一端接口 9V充电锂电池 <------> L298N电机驱动板 正极 <------> +12V 负极 <------> GND
直流电机的驱动
L298N电机驱动板模块可驱动两路直流电机,使能端ENA、ENB为高电平时有效,控制方式及直流电机状态表如下所示。
程序实现代码
- void setup(){
- pinMode(4, OUTPUT); //定义4号管脚为输出
- pinMode(12, OUTPUT); //定义12号管脚为输出
- pinMode(5, OUTPUT); //定义5号管脚为输出
- pinMode(6, OUTPUT); //定义6号管脚为输出
- pinMode(10, OUTPUT); //定义10号管脚为输出
- pinMode(11, OUTPUT); //定义11号管脚为输出
- }
- void loop(){
- digitalWrite(4,HIGH); //设置4号管脚为高电平,即ENA使能有效
- digitalWrite(12,HIGH); //设置12号管脚为高电平,即ENB使能有效
- digitalWrite(5,HIGH); //电机A和B正转3秒
- digitalWrite(6,LOW);
- digitalWrite(10,HIGH);
- digitalWrite(11,LOW);
- delay(3000);
- digitalWrite(5,LOW); //电机A和B反转3秒
- digitalWrite(6,HIGH);
- digitalWrite(10,LOW);
- digitalWrite(11,HIGH);
- delay(3000);
- }
复制代码
2、对小车进行调速,全速前进3秒后再减速,减速3秒后再全速前进,依次循环。
程序实现代码
- void setup(){
- pinMode(4, OUTPUT); //定义4号管脚为输出
- pinMode(12, OUTPUT); //定义12号管脚为输出
- }
- void loop(){
- digitalWrite(4,HIGH); //设置4号管脚为高电平,即使能A有效
- digitalWrite(12,HIGH); //设置12号管脚为高电平,即使能B有效
- analogWrite(5,255); //小车全速前进3秒
- analogWrite(6,0);
- analogWrite(10,255);
- analogWrite(11,0);
- delay(3000);
- analogWrite(5,100); //小车减速前进3秒
- analogWrite(6,0);
- analogWrite(10,100);
- analogWrite(11,0);
- delay(3000);
- }
复制代码 |