lxf 发表于 2020-7-10 14:40:38

第36课 智能小车

本帖最后由 lxf 于 2020-8-17 13:29 编辑

第36课 智能小车

目标
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);
}
页: [1]
查看完整版本: 第36课 智能小车