零知开源分享-L298N模块使用 电机驱动 TT马达-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 5780|回复: 0

零知开源分享-L298N模块使用 电机驱动 TT马达

[复制链接]
发表于 2019-5-11 14:06 | 显示全部楼层 |阅读模式
本帖最后由 零知实验室-roc 于 2019-5-11 14:08 编辑

电机驱动模块在电子制作中会经常使用到,下面以L298N型号的模块为例介绍其使用方法。
模块引脚说明如下:

值得注意的是,它已经内置5V供电,所以不必从外面再接5V输入。
1、实验材料
  • 直流减速电机TT马达2个,带车轮(便于实验观察)


  • 电机驱动板1块
  • 零知-标准板
  • 杜邦线若干

2、接线
我们把零知标准板和电机驱动板相连接,驱动2路电机工作。接线图如下:

引脚连接:
最后我们把电机驱动板的12v接到一个9v的电源上(如干电池组),然后GND连接到零知标准板的地。
3、程序
根据上述连接线后,我们使用程序来控制电机的运行:
[mw_shl_code=arduino,true]/**
*    文件: 电机驱动.ino      by 零知实验室(www.lingzhilab.com)
*    -^^- 零知开源,让电子制作变得更简单! -^^-
*    时间: 2018/10/13 15:01
*    说明:
**/
  
//控制命令
#define        STOP                 0
#define        FORWARD                1
#define        BACKWARD        2
#define        TURNLEFT        3
#define        TURNRIGHT        4

//电机控制引脚
#define LEFT_MOTOR1 2
#define LEFT_MOTOR2        3
#define RIGHT_MOTOR1 4
#define RIGHT_MOTOR2 5
#define LEFT_ENA 11
#define RIGHT_ENB 12

int LED_STATE = 0;
   
void setup() {
    // put your setup code here, to run once:
         
        Serial.begin(9600);
         
        pinMode(LED_BUILTIN, OUTPUT);
         
        pinMode(LEFT_MOTOR1, OUTPUT);
        pinMode(LEFT_MOTOR2, OUTPUT);
        pinMode(RIGHT_MOTOR1, OUTPUT);
        pinMode(RIGHT_MOTOR2, OUTPUT);
        pinMode(LEFT_ENA,OUTPUT);
        pinMode(RIGHT_ENB,OUTPUT);
         
        motor_run(STOP);
         
}
  
void loop() {
    // put your main code here, to run repeatedly:

        int cmd = 1;

        motor_run(cmd);

        delay(1000);
         
        motor_run(0);
}[/mw_shl_code]
把电机驱动的操作作为一个函数motor_run(int cmd);如下:
[mw_shl_code=arduino,true]/**
*        根据命令点击进行相应动作
*         cmd 命令
*/

int highSpeed = 200;
int lowSpeed = 100;

void motor_run(int cmd)
{
        switch(cmd)
        {
                case FORWARD:
                        Serial.println("FORWARD"); //输出状态
                        analogWrite(LEFT_ENA,highSpeed);
                        digitalWrite(LEFT_MOTOR1, LOW);
                        digitalWrite(LEFT_MOTOR2, HIGH);
                        analogWrite(RIGHT_ENB,highSpeed);
                        digitalWrite(RIGHT_MOTOR1, LOW);
                        digitalWrite(RIGHT_MOTOR2, HIGH);
                break;
                case BACKWARD:
                        Serial.println("BACKWARD"); //输出状态
                        digitalWrite(LEFT_MOTOR1,  HIGH);
                        digitalWrite(LEFT_MOTOR2, LOW);
                        digitalWrite(RIGHT_MOTOR1, HIGH);
                        digitalWrite(RIGHT_MOTOR2, LOW);
                break;
                case TURNLEFT:
                        Serial.println("TURN  LEFT"); //输出状态
                        analogWrite(LEFT_ENA,lowSpeed);
                        analogWrite(RIGHT_ENB,highSpeed);
                        digitalWrite(LEFT_MOTOR1, LOW);
                        digitalWrite(LEFT_MOTOR2, HIGH);//C
                        digitalWrite(RIGHT_MOTOR1, LOW);
                        digitalWrite(RIGHT_MOTOR2, HIGH);
                break;
                case TURNRIGHT:
                        Serial.println("TURN  RIGHT"); //输出状态
                        analogWrite(LEFT_ENA,highSpeed);
                        analogWrite(RIGHT_ENB,lowSpeed);
                        digitalWrite(LEFT_MOTOR1, LOW);
                        digitalWrite(LEFT_MOTOR2, HIGH);
                        digitalWrite(RIGHT_MOTOR1, LOW);//C
                        digitalWrite(RIGHT_MOTOR2, HIGH);
                break;
                case STOP:
                default:
                        Serial.println("STOP"); //输出状态
                        digitalWrite(LEFT_ENA,1);
                        digitalWrite(RIGHT_ENB,1);
                        digitalWrite(LEFT_MOTOR1, LOW);
                        digitalWrite(LEFT_MOTOR2, LOW);
                        digitalWrite(RIGHT_MOTOR1, LOW);
                        digitalWrite(RIGHT_MOTOR2, LOW);
                break;
        }
}[/mw_shl_code]
把程序上传到零知-标准板上,调整程序中cmd的值,看看效果吧!
更多详细资料可到零知官网免费获取。

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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 07:39 , Processed in 0.071438 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表