打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
微型直流电机控制基本方法 L298N模块

控制任务

让单个直流电机在L298N模块驱动下,完成制动、自由停车,正反转,加减速等基本动作

芯片模块及电路设计

 

                       

图1 L298N芯片引脚

  

图2 L298N驱动模块

表1 L298N驱动模块的控制引脚

 使用注意  短路帽连接后内置5V输出使能。调速时,只需要在使能端输入PWM信号就行。使能端低电平时,电机自由停止。通过ENA,IN1,IN2控制电机A,通过ENB,IN3,IN4控制电机B。

 

图3 L298N驱动模块的Fritzing元件图

 

 

图4 单片机控制板Aduino UNO

 

图5 Aduino UNO 与L298N驱动模块的接线

 

图6 整个系统的接线

 

图7 电机控制系统接线原理示意图1

 

图8 电机控制系统接线原理示意图2

实际接线:Arduino的引脚6,8,7分别接L298N驱动板的ENA,IN1,IN2

程序设计

本程序只对单电机进行控制

  1 //控制板引脚定义  2 int motor_c_ENA=6;  3 int motor_c_IN1=8;  4 int motor_c_IN2=7;  5   6 //子函数定义  7 void go_forward_high_speed()   //正转 全速  8 {  9     digitalWrite(motor_c_ENA,1);     10     digitalWrite(motor_c_IN1,0);  11     digitalWrite(motor_c_IN2,1); 12 } 13  14 void go_backward_high_speed()  //反转 全速 15 { 16     digitalWrite(motor_c_ENA,1);     17     digitalWrite(motor_c_IN1,1);   18     digitalWrite(motor_c_IN2,0); 19 } 20  21 void stop_with_brake()  //制动 22 { 23     digitalWrite(motor_c_ENA,1);     24     digitalWrite(motor_c_IN1,1);   25     digitalWrite(motor_c_IN2,1) ;  26 } 27  28 void stop_free()    //自由停车 29 { 30     digitalWrite(motor_c_ENA,0);     31     digitalWrite(motor_c_IN1,0);   32     digitalWrite(motor_c_IN2,0) ;  33 } 34  35 void go_forward_speed_up()  //正转 加速 36 { 37     digitalWrite(motor_c_IN1,0);    38     digitalWrite(motor_c_IN2,1); 39     for (int a=100;a<=255;a++)   40      { 41         analogWrite(motor_c_ENA,a); 42         delay(200); 43      } 44 } 45  46 void go_backward_speed_up()  //反转 加速 47 { 48     digitalWrite(motor_c_IN1,1);    49     digitalWrite(motor_c_IN2,0); 50     for (int a=100;a<=255;a++)   51      { 52         analogWrite(motor_c_ENA,a); 53         delay(200); 54      } 55 } 56 void go_forward_speed_down()  //正转 减速 57 { 58     digitalWrite(motor_c_IN1,0);    59     digitalWrite(motor_c_IN2,1); 60     for (int a=255;a<=100;a--)   61      { 62         analogWrite(motor_c_ENA,a); 63         delay(200); 64      } 65 } 66  67 void go_backward_speed_down()  //反转 减速 68 { 69     digitalWrite(motor_c_IN1,1);    70     digitalWrite(motor_c_IN2,0); 71     for (int a=255;a<=100;a--)   72      { 73         analogWrite(motor_c_ENA,a); 74         delay(200); 75      } 76 } 77  78  79 void setup()  80 { 81      pinMode(motor_c_ENA,OUTPUT);  //电机C使能和PWM调速口 82     pinMode(motor_c_IN1,OUTPUT);   //电机C控制口 83     pinMode(motor_c_IN2,OUTPUT);   //电机C控制口 84 } 85  86 void loop()  87 { 88    stop_with_brake(); //制动2秒 89   delay(2000); 90  91    go_forward_speed_up();   //正转 加速 50秒 92   delay(50000); 93    go_forward_high_speed();   //正转 全速10秒 94   delay(10000); 95    go_forward_speed_down();   //正转 减速50秒 96   delay(50000); 97    stop_free();    //自由停车5秒 98   delay(5000); 99 100    go_backward_speed_up();   //反转 加速 50秒101   delay(50000);102    go_backward_high_speed();   //反转 全速10秒103   delay(10000);104    go_backward_speed_down();   //反转 减速50秒105   delay(50000);106    stop_free();    //自由停车5秒107   delay(5000);108 }

程序运行效果

制动状态开始正转加速,正转全速,正转减速,自由停车,反转加速,反转全速,反转减速,自由停车,循环。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
【C语言学习】51单片机L298N驱动电机调速
L298N的接线和详细使用方法
Arduino L298N 电机驱动扩展板
[原创]通过Raspberry Pi(树莓派)的GPIO接口控制步进电机/Control ...
Arduino小车
基于单片机89C51产生PWM信号来控制直流电机调速程序
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服