红外小车【求指导】
我在做小车,想利用(arduino uno r3 +L293D+红外探头)做一个简单的红外小车,测试过,硬件都没损坏,估计是程序问题,求编程高手帮我看看代码!(红外探头插在L293D驱动板红色区域)#include <AFMotor.h>
#include <IRremote.h>
#define num2 0xff18e7
#define num8 0xff4ab5
#define num4 0xff10ef
#define num6 0xff5aa5
#define num1 0xff30cf
#define num3 0xff7a85
AF_DCMotor motor_right(1); //定义M1为左轮电机
AF_DCMotor motor_left(2);//定义M2为右轮电机
int RECV_PIN = A0; //定义A0口为接收器
IRrecv irrecv(RECV_PIN);
decode_results results;
void forward(int _speed) //前进子程序
{
motor_right.run(FORWARD);
motor_left.run(BACKWARD);
motor_right.setSpeed(_speed);
motor_left.setSpeed(_speed);
}
void back(int _speed)//后退子程序
{
motor_right.run(BACKWARD);
motor_left.run(FORWARD);
motor_right.setSpeed(_speed);
motor_left.setSpeed(_speed);
}
void turnRight1(int _speed)//左转弯子程序
{
motor_right.run(RELEASE);
motor_left.run(BACKWARD);
motor_right.setSpeed(_speed);
motor_left.setSpeed(_speed);
}
void turnLeft1(int _speed)//右转弯子程序
{
motor_right.run(FORWARD);
motor_left.run(RELEASE);
motor_right.setSpeed(_speed);
motor_left.setSpeed(_speed);
}
void turnLeft(int _speed)//原地右转弯子程序
{
motor_right.run(BACKWARD);
motor_left.run(BACKWARD);
motor_right.setSpeed(_speed);
motor_left.setSpeed(_speed);
}
void turnRight(int _speed)//原地左转弯子程序
{
motor_right.run(FORWARD);
motor_left.run(FORWARD);
motor_right.setSpeed(_speed);
motor_left.setSpeed(_speed);
}
void setup()
{
Serial.begin(9600); // set up Serial library at 9600 bps
irrecv.enableIRIn(); //初始化红外遥控
}
void loop()
{
if(irrecv.decode(&results))
{
Serial.println(results.value, HEX);
switch(results.value)
{
case num2:
forward(250);
break;
case num8:
back(250);
break;
case num4:
turnRight(250);
break;
case num6:
turnLeft(250);
break;
case num1:
turnRight1(250);
break;
case num3:
turnLeft(250);
break;
difault:
delay(600);
}
irrecv.resume();
}
} 44这套BOXZ的代码
https://github.com/leolite/BOXZ/tree/BOXZ/BOXZ/L000%20Library/Arduino/BOXZ_Seeed_20130319_IRv4
页:
[1]