你好!欢迎来到深圳市品慧电子有限公司!
语言
当前位置:首页 >> 技术中心 >> 电路保护 >> 网友分享:基于Arduino的直流电机控制

网友分享:基于Arduino的直流电机控制


Arduino正在引领开源硬件的兴起,使得越来越多的人不需要科班出身就能够快速进行电子方案的DIY制作。这里分享一个网友发布的,基于Arduino的直流电子控制方案,供大家参考。

硬件资源

这个Arduino 双H桥直流电机驱动板,蓝色的板子,金色的印字,做工真的很精美,物有所值,吼吼~刚拿到的驱动板当务之急就是要了解一下这款驱动板接口说明和参数指南。

Arduino直流电机驱动板的硬件资源

图1 Arduino直流电机驱动板的硬件资源

可以看到板子左、右下角分别有两个直流电机控制信号输入接口,我这里准备了一个从玩具小车上拆下来的电机,我就选择左边的接口,将直流电机接入绿色端子,左下角的信号输入接口三个插针分别是EA、I1、I2,EA是区别于右边的EB,是用来接入PWM接口给电机调速的,I1、I2分别接入数字接口就OK了,是用来控制电机转向的。我就将EA接入Arduino的pin11PWM接口,I1、I2分别接8、9数字接口,至于逻辑供电部分,我就直接接入Arduino板子上的5V输出接口了,这里也可以不接线,因为这款驱动板子是可以板内取电的,如需要板外取电需将控制板内取电的跳线帽取下(这里我只是为了给网友们演示外部取电的使用方法,我并没有取下板内取电的跳线帽,如图接线实际上仍是板内取电。这里希望没有造成误导),端子左边的VMS接口是驱动部分取电,我接入四节5号电池,按下图连接好电路。

电机控制程序

连接好电路就剩编程的工作了,我就让电机先顺时针转两秒,再逆时针转两秒,再让电机停止转动,这样循环进行。

int pinI1=8;//定义I1接口

int pinI2=9;//定义I2接口
int speedpin=11;//定义EA(PWM调速)接口
void setup()
{
pinMode(pinI1,OUTPUT);//定义该接口为输出接口
pinMode(pinI2,OUTPUT);
pinMode(speedpin,OUTPUT);
}
void loop()
{
analogWrite(speedpin,100);//输入模拟值进行设定速度
delay(2000);
digitalWrite(pinI1,LOW);//使直流电机顺时针转
digitalWrite(pinI2,HIGH);
analogWrite(speedpin,100);
delay(2000);
digitalWrite(pinI1,HIGH);//使直流电机逆时针转
digitalWrite(pinI2,LOW);
analogWrite(speedpin,100);
delay(2000);
digitalWrite(pinI1,HIGH);//使直流电机停止

digitalWrite(pinI2,HIGH);

delay(2000);

}

有一点值得注意,一般情况电机的速度与电机以及其负载都有关系,所以速度要根据实际情况调节。

Arduino直流电机方案图

图2,Arduino直流电机方案图

用户评论

发评论送积分,参与就有奖励!

发表评论

评论内容:发表评论不能请不要超过250字;发表评论请自觉遵守互联网相关政策法规。

深圳市品慧电子有限公司