Arduino 超声波避障循迹小车,四轮智能小车
生活随笔
收集整理的這篇文章主要介紹了
Arduino 超声波避障循迹小车,四轮智能小车
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
Arduino 超聲波避障循跡小車,智能小車
文章目錄
- 前言
- 一、仿真原理圖
- 二、使用步驟
- 1.引入庫
- 2.程序
- 總結
前言
所用到的元器件有:arduino uno1塊,L298直流電機驅動板2塊,lcd1602帶iic1塊,HC-05超聲波模1塊,led燈,直流電機2個,循跡模塊4個,有源蜂鳴器1個
一、仿真原理圖
二、使用步驟
當智能小車離障礙物只有20cm時,小車左轉,然后前進,當第2和第3個循跡模塊遇到黑線時小車前進,第1個和第2個循跡模塊遇到黑線時小車左轉,第3個和第4個循跡模塊遇到黑線時小車右轉。
1.引入庫
代碼如下(示例):
#include <Wire.h> #include <LiquidCrystal_I2C.h> lcd.print("如有不懂的地方加作者Q:2188263281");2.程序
代碼如下(示例):
#include <Wire.h> #include <LiquidCrystal_I2C.h> //引用lcd1602I2C庫 //設置LCD1602設備地址,這里的地址是0x3F,一般是0x20,或者0x27,具體看模塊手冊 LiquidCrystal_I2C lcd(0x27,20,4); const int Pin1 = 2; const int Pin2 = 3; const int Pin3 = 4; const int Pin4 = 5; const int Pin5 = 6; const int Pin6 = 7; const int Pin7 = 8; const int Pin8 = 9; const int TrigPin = 10; const int EchoPin = 11; const int fmq = 12; const int gd1= A0; const int gd2= A1; const int gd3= A2; const int gd4= A3; int cm; int sensor[5]; void setup() { lcd.init(); // 初始化LCD lcd.backlight(); //設置LCD背景等亮 for(int a = 2; a < 11;a++) {pinMode(a, OUTPUT); }pinMode(A0, INPUT);pinMode(A1, INPUT);pinMode(A2, INPUT);pinMode(A3, INPUT);Serial.begin(9600);pinMode(EchoPin, INPUT);pinMode(fmq, OUTPUT); } void loop() {// put your main code here, to run repeatedly:digitalWrite(TrigPin, LOW);delayMicroseconds(2);digitalWrite(TrigPin, HIGH);delayMicroseconds(10);digitalWrite(TrigPin, LOW); cm = pulseIn(EchoPin, HIGH) / 58.0;//算成厘米 cm = (int(cm * 100.0)) / 100.0;//保留兩位小數 lcd.setCursor(0,0); lcd.print(cm + 1); lcd.setCursor(3,0); lcd.print("cm"); sensor[0]=digitalRead(A0);sensor[1]=digitalRead(A1);sensor[2]=digitalRead(A2);sensor[3]=digitalRead(A3);if(sensor[0] == 0&& sensor[1] == 0&& sensor[2] == 1&&sensor[3] == 0) //0010{moto_run4(); //右轉}else if(sensor[0] == 0&& sensor[1] == 0&& sensor[2] == 0&&sensor[3] == 1) //0001{moto_run4() ;//右轉}else if(sensor[0] == 0&& sensor[1] == 1&& sensor[2] == 0&&sensor[3] == 0) //0100{moto_run3(); //左轉}else if(sensor[0] == 1&& sensor[1] == 0&& sensor[2] == 0&&sensor[3] == 0) //1000{moto_run3(); //左轉}else if(sensor[0] == 0&& sensor[1] == 1&& sensor[2] == 1&&sensor[3] == 0) //0110{moto_run1(); //直行}else if(cm < 20){digitalWrite(fmq, 1);moto_run3(); //左轉delay(3000);}else if(sensor[0] == 0&& sensor[1] == 0&& sensor[2] == 0&&sensor[3] == 0){moto_run1(); //向前digitalWrite(fmq, 0);} }void moto_run1()//向前 {digitalWrite(Pin1, 1);digitalWrite(Pin2, 0);digitalWrite(Pin3, 1);digitalWrite(Pin4, 0);digitalWrite(Pin5, 1);digitalWrite(Pin6, 0);digitalWrite(Pin7, 1);digitalWrite(Pin8, 0); }void moto_run2()//向后{digitalWrite(Pin1, 0);digitalWrite(Pin2, 1);digitalWrite(Pin3, 0);digitalWrite(Pin4, 1);digitalWrite(Pin5, 0);digitalWrite(Pin6, 1);digitalWrite(Pin7, 0);digitalWrite(Pin8, 1); }void moto_run3()//向左{ digitalWrite(Pin1, 0);digitalWrite(Pin2, 1);digitalWrite(Pin3, 0);digitalWrite(Pin4, 1);digitalWrite(Pin5, 1);digitalWrite(Pin6, 0);digitalWrite(Pin7, 1);digitalWrite(Pin8, 0);} void moto_run4()//向右{digitalWrite(Pin1,1);digitalWrite(Pin2, 0);digitalWrite(Pin3, 1);digitalWrite(Pin4, 0);digitalWrite(Pin5, 0);digitalWrite(Pin6, 1);digitalWrite(Pin7, 0);digitalWrite(Pin8, 1);} void moto_run5()//停止{digitalWrite(Pin1,0);digitalWrite(Pin2, 0);digitalWrite(Pin3, 0);digitalWrite(Pin4, 0);digitalWrite(Pin5, 0);digitalWrite(Pin6, 0);digitalWrite(Pin7, 0);digitalWrite(Pin8, 0);}總結
提示:這里對文章進行總結:
例如:以上就是今天要講的內容,本文僅僅簡單介紹了智能小車的使用。
總結
以上是生活随笔為你收集整理的Arduino 超声波避障循迹小车,四轮智能小车的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机学院毕业生德育总结,毕业生德育答辩
- 下一篇: 小波分析及相应MATLAB实现