Arduino控制直流电机
(2009-03-04 20:40:40)
转载▼ 标签: arduino
分类: Arduino
直流电机
双h桥
驱动板
pwm调速
从机器人基地淘宝店铺邮寄的Arduino 双H桥直流电机驱动板今天终于到了
。
蓝色的板子,金色的印字,做工真的很精美,物有所值,吼吼~刚拿到的驱动板就来编写一个小程序测试一下吧,当务之急就是要了解一
下这款驱动板接口说明和参数指南,这里我就“盗用”一下机器人基地的功能图解,敬请见谅啦!
可以看到板子左、右下角分别有两个直流电机控制信号输入接口,我这里准备了一个从玩具小车上拆下来的电机,我就选择左边的接口,将直流电机接入绿色端子,左下角的信号输入接口三个插针分别是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电机控制 - 图文



