Arduino A4950 驱动直流电机

Arduino A4950 驱动直流电机ArduinoA4950 驱动直流电机对于自己做车的大部份同学来说 我和大家一样 用的最多的就是 L298N 驱动器 这次在家想试着自己研究一个驱动能力更好的更加方便的电机驱动 而网上使用 Ardu

大家好,欢迎来到IT知识分享网。

Arduino A4950 驱动直流电机

1.实验准备

1.Arduino 系列单片机
2.直流电机
3.A4950驱动器

2.A4950芯片简介

在这里插入图片描述
一个A4950驱动器可驱动两个直流电机
驱动板工作电压范围:7.6V~30V

A4950引脚 对应引脚
VCC 单片机5V
GND 单片机GND
VM 驱动电源7.6~30V
AIN1 控制A电机的1号PWM引脚
AIN2 控制A电机的2号PWM引脚
AOUT1 电机A正极
ATOU2 电机A负极
BN1 控制B电机的1号PWM引脚
BIN2 控制B电机的2号PWM引脚
BOUT1 电机B正极
BTOU2 电机B负极
一个模块上有两组 VCC GND VM 至少接一组

单片机 A4950 驱动电源 记得共地

A4950 驱动是通过比较两个控制引脚输出PWM的大小关系来确定电机方向的
两个控制引脚输出PWM的差值决定电机的转速

3.程序设计

我们接下来的代码都已驱动一个电机为例,剩下一个如法炮制就可以了

unsigned int Motor_AIN1=2; //控制A电机的PWM引脚 一定改成自己用的 unsigned int Motor_AIN2=3; char Motor_Order; //定义一个字符型变量存储串口输入命令 void setup() { 
    Serial.begin(9600); //打开串口 Serial.println("/*开始驱动*/"); pinMode(Motor_AIN1,OUTPUT); //设置两个驱动引脚为输出模式 pinMode(Motor_AIN2,OUTPUT); } void loop() { 
    while(Serial.available()>0) //检测串口是否有命令 { 
    Motor_Order=Serial.read(); //将命令存储在变量中 switch(Motor_Order) { 
    //发送字符1电机正转 case '1' : analogWrite(Motor_AIN1,250); analogWrite(Motor_AIN2,0);Serial.println("/*电机正传*/");break; //发送字符2电机反转 case '2' : analogWrite(Motor_AIN1,0); analogWrite(Motor_AIN2,250);Serial.println("/*电机反转*/");break; //发送其他字符电机停转 default : analogWrite(Motor_AIN1,0); analogWrite(Motor_AIN2,0);Serial.println("/*停转/");break; } } } 

烧录之后打开串口分别输入指令就可以了
在这里插入图片描述

总结

如果电机不转的的是驱动电压不够的问题,我用的12V的航模电池在这里插入图片描述

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/147733.html

(0)
上一篇 2025-04-05 15:33
下一篇 2025-04-05 15:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信