完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
对于自己做车的大部份同学来说,我和大家一样,用的最多的就是L298N驱动器,这次在家想试着自己研究一个驱动能力更好的更加方便的电机驱动,而网上使用Arduino L298N 驱动小车的例子非常的多 A4950 的一篇也没有,那好吧,希望这篇文章能给L298N用腻了的同学提供一个更好更新的选项
1.实验准备 1.Arduino 系列单片机 2.直流电机 3.A4950驱动器 2.A4950芯片简介 一个A4950驱动器可驱动两个直流电机 驱动板工作电压范围:7.6V~30V [tr]A4950引脚对应引脚[/tr]
单片机 A4950 驱动电源 记得共地A4950 驱动是通过比较两个控制引脚输出PWM的大小关系来确定电机方向的 两个控制引脚输出PWM的差值决定电机的转速 3.程序设计 我们接下来的代码都已驱动一个电机为例,剩下一个如法炮制就可以了 3.1简易驱动板 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的航模电池 |
|
|
|
只有小组成员才能发言,加入小组>>
2382 浏览 0 评论
8872 浏览 4 评论
36458 浏览 18 评论
4979 浏览 0 评论
24266 浏览 34 评论
1365浏览 2评论
1613浏览 1评论
2003浏览 1评论
1428浏览 0评论
1861浏览 0评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 13:27 , Processed in 1.042980 second(s), Total 47, Slave 41 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191