红外避障小车+L293D驱动遇到问题
我是高中的一名学生,我和我同学想搞一个两路的红外避障小车现在我们遇到了一个问题
就是我们写出了一个程序,原计划是红外避障模块检测到信号后转向
但实际上却发现小车一直在转圈
由于我们是自学的,对程序设计不是很理解,希望各位大佬能帮我们看一看,纠纠错
软件arduino IDE 1.8.2
硬件arduino UNO R3
驱动板L293D四路
#include <AFMotor.h>
AF_DCMotor motor1(1,MOTOR12_1KHZ);//定义电机驱动板中电机接口
AF_DCMotor motor2(2,MOTOR12_1KHZ);
AF_DCMotor motor3(3,MOTOR12_1KHZ);
AF_DCMotor motor4(4,MOTOR12_1KHZ);
int buttonpin1=3;//定义红外避障模块接口
int buttonpin2=13;
int val1;//定义数字变量
int val2;
void setup(){
motor1.setSpeed(255);//定义电机速度,255为最高
motor2.setSpeed(255);
motor3.setSpeed(255);
motor4.setSpeed(255);
pinMode(buttonpin1,INPUT);//定义避障传感器为输出接口
pinMode(buttonpin2,INPUT);
}
void loop(){
val1=digitalRead(buttonpin1);//将数字接口的值读取赋给函数
val2=digitalRead(buttonpin2);
if(val1==LOW)//当右边传感器检测有信号时
{
motor1.run(FORWARD);//小车左转
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(FORWARD);
delay(1900);//小车转90°大概要1.9s
}
else if(val2==LOW)//当左边传感器检测有信号时
{
motor1.run(BACKWARD);//小车右转
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(BACKWARD);
delay(1900);
}
else if((val1==LOW)&&(val2==LOW))//当左右传感器都检测有型号时
{
motor1.run(FORWARD);//小车掉头
motor1.run(FORWARD);
motor1.run(FORWARD);
motor1.run(FORWARD);
delay(1800);//转半圈
}
else//当左右传感器都没有检测有信号时
{
motor1.run(BACKWARD);//小车前进
motor2.run(BACKWARD);
motor3.run(BACKWARD);
motor4.run(BACKWARD);
delay(100);
}
}
直接把驱动板叠上UNO板的话,红外避障模块没有针脚使用。 没针脚用啥意思,你这引脚也没用几个呀 是L293D驱动板直接插上UNO上的话,红外避障模块没有针脚使用了,后来想到可以焊线出来,还没有做,不知可行。 L293D四路,居然用四路?
LZ你玩全向车么? 四轮哪,差速转向
页:
[1]