找回密码
 立即注册

QQ登录

只需一步,快速开始

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

第36课 智能小车


目标

1、用L298N电机驱动板驱动马达,完成驱动小车前进、后退。
2、对小车进行调速控制

实验材料

Arduino UNO开发板
配套USB数据线
L298N电机驱动板
9V充电锂电池和9V电池扣子
装有两个直流电机马达小车
配套杜邦线若干
Arduino IDE软件

微信图片_20200710144516.png
硬件对照图

内容

1、用L298N电机驱动板驱动马达,完成驱动小车前进3秒后后退,3秒后再前进,依次循环。

接线图

图片3.png


备注: 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为高电平时有效,控制方式及直流电机状态表如下所示。
微信图片_20200710144732.png

程序实现代码

  1. void setup(){
  2.   pinMode(4, OUTPUT);   //定义4号管脚为输出
  3.   pinMode(12, OUTPUT);   //定义12号管脚为输出
  4.   pinMode(5, OUTPUT);  //定义5号管脚为输出
  5.   pinMode(6, OUTPUT);  //定义6号管脚为输出
  6.   pinMode(10, OUTPUT);  //定义10号管脚为输出
  7.   pinMode(11, OUTPUT);  //定义11号管脚为输出
  8. }
  9. void loop(){
  10.   digitalWrite(4,HIGH);  //设置4号管脚为高电平,即ENA使能有效
  11.   digitalWrite(12,HIGH);  //设置12号管脚为高电平,即ENB使能有效
  12.   digitalWrite(5,HIGH);  //电机A和B正转3秒
  13.   digitalWrite(6,LOW);
  14.   digitalWrite(10,HIGH);
  15.   digitalWrite(11,LOW);
  16.   delay(3000);
  17.   digitalWrite(5,LOW);   //电机A和B反转3秒
  18.   digitalWrite(6,HIGH);
  19.   digitalWrite(10,LOW);
  20.   digitalWrite(11,HIGH);
  21.   delay(3000);
  22. }
复制代码

2、对小车进行调速,全速前进3秒后再减速,减速3秒后再全速前进,依次循环。

程序实现代码

  1. void setup(){
  2.   pinMode(4, OUTPUT);      //定义4号管脚为输出
  3.   pinMode(12, OUTPUT);   //定义12号管脚为输出
  4. }
  5. void loop(){
  6.   digitalWrite(4,HIGH);    //设置4号管脚为高电平,即使能A有效
  7.   digitalWrite(12,HIGH);   //设置12号管脚为高电平,即使能B有效
  8.   analogWrite(5,255);     //小车全速前进3秒
  9.   analogWrite(6,0);
  10.   analogWrite(10,255);
  11.   analogWrite(11,0);
  12.   delay(3000);
  13.   analogWrite(5,100);    //小车减速前进3秒
  14.   analogWrite(6,0);
  15.   analogWrite(10,100);
  16.   analogWrite(11,0);
  17.   delay(3000);
  18. }
复制代码
分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册