Waiting 发表于 2013-4-7 23:51:59

红外小车【求指导】

我在做小车,想利用(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();
}
}

幻生幻灭 发表于 2013-4-8 12:08:36

44这套BOXZ的代码

https://github.com/leolite/BOXZ/tree/BOXZ/BOXZ/L000%20Library/Arduino/BOXZ_Seeed_20130319_IRv4
页: [1]
查看完整版本: 红外小车【求指导】