极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11934|回复: 5

Arduino 双H桥直流电机驱动板不工作问题

[复制链接]
发表于 2013-7-25 20:41:09 | 显示全部楼层 |阅读模式
用UNO板驱动Arduino 双H桥直流电机驱动板,程序如下:
int pinI1=8;//定义I1接口
int pinI2=9;//定义I2接口
int speedpin=10;//定义EA(PWM调速)接口

int pinI3=11;//定义I1接口
int pinI4=12;//定义I2接口
int speedpin0=13;//定义EA(PWM调速)接口

void setup()
{  
   Serial.begin(9600);//设置串行通信的波特率
  
  pinMode(pinI1,OUTPUT);//定义该接口为输出接口
  pinMode(pinI2,OUTPUT);
  pinMode(speedpin,OUTPUT);
  
  pinMode(pinI3,OUTPUT);//定义该接口为输出接口
  pinMode(pinI4,OUTPUT);
  pinMode(speedpin0,OUTPUT);
  
}
void loop()
{
  analogWrite(speedpin0,600);//输入模拟值进行设定速度
  delay(20);
  digitalWrite(pinI1,LOW);//使直流电机顺时针转
  digitalWrite(pinI2,HIGH);

}

发现驱动板不工作,但是只要删除void setup()里的
int pinI3=11;//定义I1接口
int pinI4=12;//定义I2接口
int speedpin0=13;//定义EA(PWM调速)接口
三行程序去掉,就可以工作了,是什么原因,接口的问题吗
(加上这几句是为了以后想在驱动一个电机的同时驱动另一个电机)
回复

使用道具 举报

发表于 2013-7-26 07:13:28 | 显示全部楼层
你检查一下所用的端口是不是被占用,换个端口试试。
回复 支持 反对

使用道具 举报

发表于 2013-7-26 08:40:41 | 显示全部楼层
13口不支持PWM调速,换一个
http://arduino.cc/en/Main/ArduinoBoardUno
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-26 11:09:20 | 显示全部楼层
谢谢,我试一试
回复 支持 反对

使用道具 举报

发表于 2013-7-26 14:54:47 | 显示全部楼层
你先看digital的pin是否支持PWM调速,标有~说明支持,其他的不支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-26 16:27:20 | 显示全部楼层
问题基本解决了,我把后3根线pinI3、pinI4和speedpin0接到另一块驱动板上,一切正常了,程序扩展为
int button_1 =5;//按钮1连在数字端口1
int button_2 =4;//按钮2连在数字端口2
char flag ;

int pinI1=8;//定义I1接口
int pinI2=9;//定义I2接口
int speedpin=10;//定义EA(PWM调速)接口

int pinI3=11;//定义I1接口
int pinI4=12;//定义I2接口
int speedpin0=13;//定义EA(PWM调速)接口

void setup()
{  pinMode(button_1, INPUT); //设置按钮1为输入
   pinMode(button_2, INPUT); //设置按钮2为输入
   Serial.begin(9600);//设置串行通信的波特率
  
  pinMode(pinI1,OUTPUT);//定义该接口为输出接口
  pinMode(pinI2,OUTPUT);
  pinMode(speedpin,OUTPUT);
  
pinMode(pinI3,OUTPUT);//定义该接口为输出接口
pinMode(pinI4,OUTPUT);
pinMode(speedpin0,OUTPUT);
  
}
void loop()
{
  if( digitalRead(button_1)==LOW&&digitalRead(button_2)==HIGH)
  {
    flag='a';
    Serial.println(flag);//向从机发送灯亮标志
    analogWrite(speedpin,600);//输入模拟值进行设定速度
  delay(20);
  digitalWrite(pinI1,LOW);//使直流电机顺时针转
  digitalWrite(pinI2,HIGH);
  }
  if( digitalRead(button_2)==LOW&&digitalRead(button_1)==HIGH)
  {
    flag='b';
    Serial.println(flag);//向从机发送灯亮标志
    analogWrite(speedpin,600);//输入模拟值进行设定速度
  delay(20);
  digitalWrite(pinI2,LOW);//使直流电机顺时针转
  digitalWrite(pinI1,HIGH);
  }
  
  analogWrite(speedpin0,600);//输入模拟值进行设定速度
  delay(20);
  digitalWrite(pinI3,LOW);//使直流电机顺时针转
  digitalWrite(pinI4,HIGH);
}
运行一切正常,不知道是不是因为电压或者线路的问题,如果6根控制线放一快驱动板上就会有问题,哪位大侠能告诉我这是怎么回事。我用的是这款产品http://item.taobao.com/item.htm?spm=a230r.1.14.17.ykPsMj&id=10904745518&_u=qml7km73c8
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-6-3 23:13 , Processed in 0.042102 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表