Arduino A4950 驱动直流电机
Arduino A4950 驱动直流电机
对于自己做车的大部份同学来说,我和大家一样,用的最多的就是L298N驱动器,这次在家想试着自己研究一个驱动能力更好的更加方便的电机驱动,而网上使用Arduino L298N 驱动小车的例子非常的多 A4950 的一篇也没有,那好吧,希望这篇文章能给L298N用腻了的同学提供一个更好更新的选项
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.程序设计
我们接下来的代码都已驱动一个电机为例,剩下一个如法炮制就可以了
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的航模电池
Arduino A4950 驱动直流电机相关推荐
- arduino pmw 串口 字符串_Arduino A4950 驱动直流电机 超详细版
Arduino A4950 驱动直流电机 对于自己做车的大部份同学来说,我和大家一样,用的最多的就是L298N驱动器,这次在家想试着自己研究一个驱动能力更好的更加方便的电机驱动,而网上使用Arduin ...
- Arduino与Proteus仿真实例-ULN2003驱动直流电机仿真
ULN2003驱动直流电机仿真 1.ULN2003介绍 ULN2003是最常用的电机驱动器 IC 之一,当我们需要使用数字逻辑电路(如 Op-map.定时器.门.Arduino.PIC.ARM 等)驱 ...
- Arduino UNO+L298驱动直流电机正反转+Proteus仿真
Arduino UNO + L298驱动直流电机正反转+Proteus仿真 Proteus仿真 Proteus接线图 实例代码 //任务:通过按钮控制电机启停和正反转,通过电位计调节电机转速. int ...
- Arduino与Proteus仿真实例-L298N驱动直流电机仿真
L298N驱动直流电机仿真 1.L298N介绍 L298N 是采用 15 引线多瓦和 PowerSO20 封装的集成单片电路. 它是一种高压.大电流双全桥驱动器,设计用于接受标准TTL逻辑电平和驱动电 ...
- Arduino与Proteus仿真实例-HG7881(L9110)驱动直流电机仿真
HG7881(L9110)驱动直流电机仿真 HG7881 (L9110) 双通道电机驱动器模块. HG7881 (L9110) 是一款紧凑型电机驱动芯片,支持 2.5-12V 电压范围,800mA 连 ...
- Arduino与Proteus仿真实例-L293D驱动直流电机仿真
L293D驱动直流电机仿真 L293D 是市场上最受欢迎的驱动程序之一. L293D成为用户首选的驱动器有几个原因,例如:价格便宜(与其他驱动器相比).合适的形状和尺寸.易于控制.无需保护电路和二极管 ...
- 智能车的电机驱动DRV8833、DRV8833驱动直流电机、DRV8833接线图、DRV8833 PWM、DRV8833驱动代码
以STM32F103C8T6为主控芯片,通过使用DRV8833来驱动直流电机,并用PWM来调节速度. 本文讲了DRV8833的接线.如何输出PWM.以及提供了相关的代码. 相关代码我放最后面了. 最近 ...
- DIY树莓派小车(一)树莓派4B+TB6612FNG驱动直流电机
趁着暑假时间充裕,准备制作一辆简易的树莓派小车,让树莓派不再吃灰,写此文记录折腾的过程. DIY树莓派小车(一)树莓派4B+TB6612FNG驱动直流电机 小车需求简要介绍 采用双轮差速方式移动 双轮 ...
- 【Proteus仿真】Arduino+uln2003驱动步进电机+单按键启保停正反转控制
[Proteus仿真]Arduino+uln2003驱动步进电机+单按键启保停正反转控制 Proteus仿真 功能实现 采用外部中断来获取按键信息 程序代码 #define LED ( 13 )#de ...
最新文章
- 华为fussioncompute上添加nexentastor作为IPSAN
- hdu 4739 状压DP
- java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
- sqlplus怎样将名次显示在表的后面_数据透视表-01 3种分析方法比拼,助你步入透视表的知识宝殿...
- curl和file_get_contents 区别以及各自的优劣
- 苹果手机自带表格软件_解决手机系统自带软件无法卸载问题
- poj 1986 Distance Queries LCA
- Python邮件操作实例:发个邮件用Python实现远程自动关机
- Flash 插件又被曝出新漏洞,让攻击者可以控制 Mac
- C++ 模板元编程简介
- linux文件查找-find和locate
- mysql 主从同步机制
- TSC打印机标签纸出纸位置调整方法
- Java Filter——敏感词汇过滤
- 泛微E-Office v9任意文件上传(CNVD-2021-49104)复现
- u盘写保护+计算机管理,取消u盘写保护的操作方法-电脑自学网
- 数据库面试题:Redis如何保证数据一致性
- FPGA Verilog进阶开发教程:WM8978音频回环实验
- 内存操作函数:memcmp、memcpy、memmove、memset 的使用与模拟。
- Java WebSocket编程与网页简易聊天室
热门文章
- 【框架学习】AOP切面详解
- 使用deep穿透更改 Element ui 样式在 谷歌浏览器生效,而在火狐浏览器不生效问题
- 论文 Through Fog High Resolution Imaging Using Millimeter Wave Radar 复现
- fedora 16 x64 安装anjuta,在编译时提示libtool、glib、intltool包不存在
- VS code 离线安装插件/扩展方法
- Matlab:数组类型
- 关于配置好虚拟主机后localhost不能访问的问题
- springboot实现登录界面
- php如何写微信支付回调函数,php对微信支付回调处理的方法(合集)
- PYTHON爱心代码