如何製作藍芽遙控小車

來源:酷知科普網 4.46K

基於arduino平臺的藍芽遙控小車詳細講解(附帶原始碼程式)

操作方法

(01)首先給大家介紹主要硬體,分別是l298n直流驅動、arduino uno、藍芽模組

如何製作藍芽遙控小車
如何製作藍芽遙控小車 第2張
如何製作藍芽遙控小車 第3張

(02)arduino具體的連線線路圖,大家可以按照箭頭所示連線,程式已經和圖示介面定義的一樣在arduino主機板上已經標註好了串列埠資訊,可以跟著連線

如何製作藍芽遙控小車 第4張

(03)藍芽模組的TX接主機板的RX,RX接主機板的TX就是對調一下才可以實現資料交換,然後GND與VCC分別對應相接藍芽模組:四個引腳1. TX接主機板RX2. RX接主機板TX3. VCC接c1-VCC4. GND接C2-GND

如何製作藍芽遙控小車 第5張

(04)L298N直流驅動1. 負極和正極分別接電機的正負極2. 專案通常使用12v供電,電源正極接12v,負極接GND3. IN1、IN2、IN3、IN4接主機板上的相同串列埠4. EN1和EN2接相應串列埠,EN使能端上有跳冒,要保持兩個引腳串聯的情況下接引腳(這是關鍵,好多人就是在這卡住了,導致不能轉動)

如何製作藍芽遙控小車 第6張

接下來就是軟體

(01)咋們採用的是藍芽遙控方式,所以可以下載已經現有的app

如何製作藍芽遙控小車 第7張

(02)小編我用的是藍芽串列埠工具,然後在裡面的按鍵定義字元本次實驗裡的前進是字元‘G’後退是字元‘B’左移是字元‘L’右移是字元‘R’停止是字元‘S’在設定藍芽介面的時候按照以上字元設定。

如何製作藍芽遙控小車 第8張
如何製作藍芽遙控小車 第9張

(03)以下就是用到的程式碼:int IN1=9;int IN2=10;int IN3=11;int IN4=12;int EN1=6;int EN2=7;int A=80;int B=80;const String GO = "G";const String BACK = "B";const String RIGHT = "R";const String LEFT = "L";const String STOP = "S";/*********前進方法******/void forward(){digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);analogWrite(EN1,A);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(EN2,B);}void backup(){digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);analogWrite(EN1,A);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(EN2,B);}void left(){digitalWrite(IN1,LOW);digitalWrite(IN2,HIGH);analogWrite(EN1,A);digitalWrite(IN3,LOW);digitalWrite(IN4,HIGH);analogWrite(EN2,B);}void right(){digitalWrite(IN1,HIGH);digitalWrite(IN2,LOW);analogWrite(EN1,A);digitalWrite(IN3,HIGH);digitalWrite(IN4,LOW);analogWrite(EN2,B);}void Stop(){digitalWrite(IN1,LOW);digitalWrite(IN2,LOW);analogWrite(EN1,30);digitalWrite(IN3,LOW);digitalWrite(IN4,LOW);analogWrite(EN2,30);}String readTtl(){String comdata = "";while (lable()){comdata += char(());delay(2);}return comdata;}void setup(){n(9600);pinMode(IN1,OUTPUT);pinMode(IN2,OUTPUT);pinMode(IN3,OUTPUT);pinMode(IN4,OUTPUT);pinMode(EN1,OUTPUT);pinMode(EN2,OUTPUT);digitalWrite(IN1,HIGH);digitalWrite(IN2,HIGH);digitalWrite(IN3,HIGH);digitalWrite(IN4,HIGH);}void loop(){String s = readTtl();if (s == GO ) forward();if (s == LEFT ) left();if (s == STOP ) Stop();if (s == RIGHT ) right();if (s == BACK ) backup();}

特別提示

電源不要大於各個元件的額定電壓,如果電壓過大可以用降壓模組或者電源模組來保護電路

熱門標籤