有图有程序,智能小车程序或者硬件哪出问题了T T
本帖最后由 血阳 于 2015-4-24 13:10 编辑刚买来小车配件,然后从昨天晚上九点一直弄这个到现在,还没弄成功,出现了问题,不知道是什么情况,求求大腿求大腿帮忙解答T T.(PS.还发现大半夜的论坛竟然无法打开,服务器负载过大什么的。)
我现在想实现的就是很简单的功能:
小车前进2s;停1s;
小车到退2s;停1s;
小车左转2s;停1s;
小车右转2s;停1s;
我写好程序以后,
第一步:把程序下载到arduino的板子里;
第二步:把电机模块和主板结合好;
第三步:上电。
结果,问题就来了。小车并没有按照我的要求来走,而是出现了运动混乱问题。
于是我分别单独测每个动作(分次去掉前进,后退,左转,右转),现象我都记录在这了:
1、前进:左右均不动。 正确现象:左右前进
2、后退:右进左不动。 正确现象:左右后退
3、左转:左右均不动。 正确现象:右进左不动
4、右转:左进右不动。 正确现象:左进右不动
而且,电机似乎不灵敏,有时候不会动T T。需要重置才动,神马情况啊·····
昨晚大半夜的,调的我都崩溃了,现在来这里,求大腿拯救啊T T...
我真的不知道是硬件连接错误了,还是程序写错了····好伤心,大半夜的,睡不着T T...
我的程序和连线图附在这里,有什么问题,求指导啊 T T.
程序:
#define _speedLeftPin 5
#define _speedRightPin 4 //定义引脚4,5控制左轮
#define _dirLeftPin 6
#define _dirRightPin 7 //定义引脚6,7控制右轮
void forward(int _speed);
void back(int _speed);
void turnLeft(int _speed);
void turnRight(int _speed);
void _stop(); //声明前进,后退,左转,右转,停止函数
void setup()
{
pinMode(_speedLeftPin,OUTPUT);
pinMode(_speedRightPin,OUTPUT);
pinMode(_dirLeftPin,OUTPUT);
pinMode(_dirRightPin,OUTPUT);
}
void loop()
{
forward(250);
delay(2000);
_stop();
delay(1000); //控制履带车前进2s;停1s;
back(250);
delay(2000);
_stop();
delay(1000); //小车到退2s;停1s;
turnLeft(250);
delay(2000);
_stop();
delay(1000); //小车左转2s;停1s;
turnRight(250);
delay(2000);
_stop();
delay(1000); //小车右转2s;停1s;
}
/**************************************************
forward子函数——前进子函数
函数功能:控制履带车前进
入口参数:_speed—前进速度范围:0~255
**************************************************/
void forward(int _speed)
{
digitalWrite(_dirLeftPin,HIGH); //引脚输出高电平,左轮前进
digitalWrite(_dirRightPin,HIGH); //引脚输出高电平,右轮前进
analogWrite(_speedLeftPin,_speed); //引脚输出PWM,由_speed决定
analogWrite(_speedRightPin,_speed); //引脚输出PWM,由_speed决定
}
/**************************************************
back子函数——后退子函数
函数功能:控制履带车后退
入口参数:_speed—前进速度范围:0~255
**************************************************/
void back(int _speed)
{
digitalWrite(_dirRightPin,LOW); //引脚输出低电平,右轮后退
digitalWrite(_dirLeftPin,LOW); //引脚输出低电平,左轮后退
analogWrite(_speedLeftPin,_speed); //引脚输出PWM,由_speed决定
analogWrite(_speedRightPin,_speed); //引脚输出PWM,由_speed决定
}
/**************************************************
turnLeft子函数——左转子函数
函数功能:控制履带车左转
入口参数:_speed——速度范围:0~255
**************************************************/
void turnLeft(int _speed)
{
digitalWrite(_dirRightPin,HIGH); //引脚输出高电平,右轮前进
analogWrite(_speedRightPin,_speed); //引脚输出PWM,由_speed决定
analogWrite(_speedLeftPin,0); //引脚输出PWM=0,表示左轮静止不动
}
/**************************************************
turnRight子函数——右转子函数
函数功能:控制履带车右转
入口参数:_speed——速度范围:0~255
**************************************************/
void turnRight(int _speed)
{
digitalWrite(_dirLeftPin,HIGH); //引脚输出高电平,左轮前进
analogWrite(_speedRightPin,0); //引脚输出PWM=0,表示右轮静止不动
analogWrite(_speedLeftPin,_speed); //引脚输出PWM,由_speed决定
}
/**************************************************
stop子函数—停止子函数
函数功能:控制履带车停止
入口参数:无
**************************************************/
void _stop()
{
analogWrite(_speedLeftPin,0); //引脚输出低,停子转动
analogWrite(_speedRightPin,0); //引脚输出低,停子转动
}
下面是连线图:
你的程序有问题,电机驱动板的资料在这里找:
http://www.adafruit.com/products/81 i7456 发表于 2015-4-24 13:15 static/image/common/back.gif
你的程序有问题,电机驱动板的资料在这里找:
http://www.adafruit.com/products/81
大概是什么问题啊?引脚定义错误?还是函数就没斜对?英文看着无力啊··········· 血阳 发表于 2015-4-24 15:31 static/image/common/back.gif
大概是什么问题啊?引脚定义错误?还是函数就没斜对?英文看着无力啊···········
电机驱动板上是用74HC595(串入并出)芯片控制L293D的管脚的。
你的这个定义,控制不了电机。
#define _speedLeftPin 5
#define _speedRightPin 4 //定义引脚4,5控制左轮
#define _dirLeftPin 6
#define _dirRightPin 7 //定义引脚6,7控制右轮
你需要控制74HC595,让它控制L293D,从而控制电机。 i7456 发表于 2015-4-24 16:02 static/image/common/back.gif
电机驱动板上是用74HC595(串入并出)芯片控制L293D的管脚的。
你的这个定义,控制不了电机。
#define _s ...
哦哦哦,明白了,我之前就一直在这里纠结,但是不知道怎么改。 哥们,不要用这个驱动板了,这个驱动板不好用,不如用L298N
这个扩展板搞不清使用了哪个引脚,串入并出也不好写程序,
强烈建议你使用L298n点击驱动板
我的贴子http://www.wifi-robots.com/thread-6743-1-1.html
直接用L298N更方便 还有,调试不要使用干电池,浪费太大了,直接上7--12V电源就行(就是充电器)
调试成功再考虑电池供电问题 潇洒哥 发表于 2015-4-24 20:26 static/image/common/back.gif
还有,调试不要使用干电池,浪费太大了,直接上7--12V电源就行(就是充电器)
调试成功再考虑电池供电问题
手机充电器不是才5V吗{:3_58:} 貌似电池问题,我用的9v的
arduino的外置电源供电口做了稳压处理,存在一定的压降,官方的外置电源供电范围为7--12V 要带动那么多电机,建议使用9V或12V 直接用L298N更方便
仁兄正解 潇洒哥 发表于 2015-4-24 20:22 static/image/common/back.gif
哥们,不要用这个驱动板了,这个驱动板不好用,不如用L298N
这个扩展板搞不清使用了哪个引脚,串入并出也不 ...
嗯嗯!我觉得也是该换个简单点的驱动模块,毕竟我是第一次玩这个T T。感觉调都要调死掉了·········· 潇洒哥 发表于 2015-4-24 21:18 static/image/common/back.gif
仁兄正解
淘宝了一下,发现L298N这个驱动模块好像也有很多板式的,能推荐一个能和arduino配合,而且比较简单好用的吗?给个链接什么的好不~{:3_59:}
页:
[1]
2