极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9945|回复: 1

红外小车【求指导】

[复制链接]
发表于 2013-4-7 23:51:59 | 显示全部楼层 |阅读模式
我在做小车,想利用(arduino uno r3 +L293D+红外探头)做一个简单的红外小车,测试过,硬件都没损坏,估计是程序问题,求编程高手帮我看看代码!(红外探头插在L293D驱动板红色区域)
  1. #include <AFMotor.h>
  2. #include <IRremote.h>
  3. #define num2 0xff18e7
  4. #define num8 0xff4ab5
  5. #define num4 0xff10ef
  6. #define num6 0xff5aa5
  7. #define num1 0xff30cf
  8. #define num3 0xff7a85

  9. AF_DCMotor motor_right(1); //定义M1为左轮电机
  10. AF_DCMotor motor_left(2);  //定义M2为右轮电机       

  11. int RECV_PIN = A0;   //定义A0口为接收器
  12. IRrecv irrecv(RECV_PIN);
  13. decode_results results;
  14.        
  15. void forward(int _speed)   //前进子程序
  16. {
  17.     motor_right.run(FORWARD);
  18.     motor_left.run(BACKWARD);
  19.     motor_right.setSpeed(_speed);
  20.     motor_left.setSpeed(_speed);
  21. }
  22. void back(int _speed)//后退子程序
  23. {
  24.    motor_right.run(BACKWARD);
  25.     motor_left.run(FORWARD);
  26.     motor_right.setSpeed(_speed);
  27.     motor_left.setSpeed(_speed);
  28. }
  29. void turnRight1(int _speed)//左转弯子程序
  30. {
  31.    motor_right.run(RELEASE);
  32.     motor_left.run(BACKWARD);
  33.     motor_right.setSpeed(_speed);
  34.     motor_left.setSpeed(_speed);
  35. }
  36. void turnLeft1(int _speed)//右转弯子程序
  37. {
  38.    motor_right.run(FORWARD);
  39.     motor_left.run(RELEASE);
  40.     motor_right.setSpeed(_speed);
  41.     motor_left.setSpeed(_speed);
  42. }
  43. void turnLeft(int _speed)//原地右转弯子程序
  44. {
  45.    motor_right.run(BACKWARD);
  46.     motor_left.run(BACKWARD);
  47.     motor_right.setSpeed(_speed);
  48.     motor_left.setSpeed(_speed);
  49. }
  50. void turnRight(int _speed)//原地左转弯子程序
  51. {
  52.    motor_right.run(FORWARD);
  53.     motor_left.run(FORWARD);
  54.     motor_right.setSpeed(_speed);
  55.     motor_left.setSpeed(_speed);
  56. }
  57. void setup()
  58. {

  59.   Serial.begin(9600);           // set up Serial library at 9600 bps

  60.   irrecv.enableIRIn(); //初始化红外遥控
  61. }
  62. void loop()
  63. {
  64.   if(irrecv.decode(&results))
  65.   {
  66.   Serial.println(results.value, HEX);
  67.     switch(results.value)
  68.     {
  69.           case num2:
  70.               forward(250);
  71.               break;
  72.    
  73.           case num8:
  74.               back(250);
  75.               break;
  76.    
  77.         case num4:
  78.               turnRight(250);
  79.                break;
  80.    
  81.           case num6:
  82.              turnLeft(250);
  83.            break;
  84.        
  85.         case num1:
  86.         turnRight1(250);
  87.                break;

  88.         case num3:
  89.              turnLeft(250);
  90.            break;  

  91.         difault:
  92.            delay(600);  
  93.     }
  94.     irrecv.resume();
  95.   }
  96. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-4-8 12:08:36 | 显示全部楼层
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-5-8 15:28 , Processed in 0.064620 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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