arduino+esp8266寻迹小车-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2636|回复: 0

arduino+esp8266寻迹小车

[复制链接]
发表于 2021-8-18 20:46 | 显示全部楼层 |阅读模式
本帖最后由 353529281 于 2021-8-28 19:08 编辑

我是新手,欢迎大家指出错误和缺点,共同进步,谢谢。

  1. /*
  2. 红外如寻迹小车项目 20201年7月31日

  3. 功能:
  4. 红外寻迹功能,黑底白线,或都白底黑色。 线宽度1-2cm左右。


  5. 材料:
  6. ESP8266或arduono
  7. L298N模块
  8. TCRT红外寻迹模块2个
  9. 小车底盘双电机
  10. 电池1块电压(6-12V)
  11. 注意:速度为100左右时最适合,太快容易冲出跑道

  12. 作者:九洲创客
  13. QQ:353529281
  14. */

  15. #define TCRT_L D2  //左红外寻迹IO
  16. #define TCRT_R D3  //右红外寻迹IO

  17. void tcrt(){  //红外寻迹
  18.     int tcrt_l=digitalRead(TCRT_L);     //左边寻迹
  19.     int tcrt_r=digitalRead(TCRT_R);     //右边寻迹
  20.     bool tcrt_bool=1; //黑底白线时值为0,白底黑线时为1;
  21.      if(tcrt_l==tcrt_bool && tcrt_r==tcrt_bool){   //如果左右都识别到线就停车
  22.        car_stop();//停车
  23.     }
  24.   else if(tcrt_l==tcrt_bool){ //如果左边识别到线,就说明车身偏左,就需要向右转向
  25.        car_right();  //右转
  26.       car_stop();   //停车
  27.       }
  28.     else if(tcrt_r==tcrt_bool){//如果右边识别到线,就说明车身偏右,就需要向左转向
  29.         car_left(); //左转
  30.         car_stop();//停车
  31.        }
  32.    
  33.     else{
  34.       car_up();  //前进
  35.       }
  36. }

  37. //小车方向4个IO脚
  38. #define CARPIN1 D5
  39. #define CARPIN2 D6
  40. #define CARPIN3 D7
  41. #define CARPIN4 D8
  42. int car_sudu=100;   //小车速度初始化为PWM100

  43. //四个方向,停车函数
  44. void car_up(){  //前进
  45.   analogWrite(CARPIN1,car_sudu);
  46.   digitalWrite(CARPIN2,LOW);
  47.   analogWrite(CARPIN3,car_sudu);
  48.   digitalWrite(CARPIN4,LOW);
  49.   delay(100);
  50.   }
  51. void car_down(){  //后退
  52.   digitalWrite(CARPIN1,LOW);
  53.   analogWrite(CARPIN2,car_sudu);
  54.   digitalWrite(CARPIN3,LOW);
  55.   analogWrite(CARPIN4,car_sudu);
  56.   delay(100);
  57.   }
  58. void car_left(){    //左转
  59.   analogWrite(CARPIN1,car_sudu);
  60.   digitalWrite(CARPIN2,LOW);
  61.   digitalWrite(CARPIN3,LOW);
  62.   analogWrite(CARPIN4,car_sudu);
  63.   delay(100);
  64.   }
  65. void car_right(){   //右转
  66.   digitalWrite(CARPIN1,LOW);
  67.   analogWrite(CARPIN2,car_sudu);
  68.   analogWrite(CARPIN3,car_sudu);
  69.   digitalWrite(CARPIN4,LOW);
  70.   delay(100);
  71.   }
  72. void car_stop(){    //停车
  73.   digitalWrite(CARPIN1,LOW);
  74.   digitalWrite(CARPIN2,LOW);
  75.   digitalWrite(CARPIN3,LOW);
  76.   digitalWrite(CARPIN4,LOW);
  77.   delay(100);
  78.   }


  79. void setup() {
  80.    
  81.     Serial.begin(9600);
  82.    
  83.    // 初始化小车控制IO
  84.     pinMode(CARPIN1,OUTPUT);      
  85.     pinMode(CARPIN2,OUTPUT);
  86.     pinMode(CARPIN3,OUTPUT);
  87.     pinMode(CARPIN4,OUTPUT);
  88.    
  89.     pinMode(TCRT_L,INPUT);
  90.     pinMode(TCRT_R,INPUT);
  91.    

  92.    
  93. }



  94. void loop() {
  95.   tcrt();//执行红外寻迹
  96. }
复制代码


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

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 09:46 , Processed in 0.070335 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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