基於Arduino開發的智能藍牙小車


基於Arduino的智能藍牙小車

材料准備:

Arduino開發板一塊、四驅小車底板及相關配件一套、L298N驅動模塊一個、HC-05/06藍牙模塊一塊,九伏電源一塊(用於主板供電)、12V鋰電池一塊(帶充電器,供驅動器電源)。

 

L298N使用方法

 

如圖所示,外接一個12V電源,將Logic Input上四個輸入口分別接到控制板對應位置。(外接12V電源,還需從GND處接一根電源至控制板)

HC-05/06 藍牙模塊

HC-06               Arduino UNO

VCC                    VCC

GND                   GND

TXD                    RXD

RXD                    TXD

 

代碼如下

#define IN1 5   // 定義開發板5口為IN1(L298N驅動器)

#define IN2 6   //定義開發板6口為IN1(L298N驅動器)

#define IN3 9   //定義開發板9口為IN1(L298N驅動器)

#define IN4 10  //定義開發板10口為IN1(L298N驅動器)

#include<SoftwareSerial.h>  //添加這個庫文件,可調用庫函數

SoftwareSerial BT(3,4);   // 定義開發板3,4為RX,TX

char val;  //定義參數接收藍牙的值

#define LEFT '3'   //左轉編碼

#define RIGHT '4'  //右轉編碼

#define GO '1'  //前進編碼

#define BACK '2'  //后退編碼

#define STOP '0'  //停止編碼

void setup() {

  BT.begin(9600);   //藍牙波率設置為9600

  Serial.begin(9600);  //設置串口波特率

  pinMode(IN1,OUTPUT);  //設置為輸出口

  pinMode(IN2,OUTPUT);  //設置為輸出口

  pinMode(IN3,OUTPUT);  //設置為輸出口

  pinMode(IN4,OUTPUT);  //設置為輸出口

  initCar();    //調用,停車,下文有

}

//開始判斷是否接收數據,數據為多少

void loop() {

if(BT.available()){

    val=BT.read();

    if(val == GO){

      //前進

      go();

    }else if(val == BACK){

      //后退

      back();

    }else if(val == LEFT){

      //左轉

      turnLeft();

    }else if(val == RIGHT){

      //右轉

      turnRight();

    }else if(val=='0'){

      //停車

      stopCar();

    }

  }

}

void initCar(){

  //默認全是低電平 停止狀態

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW);

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW);

}

void turnLeft(){

//左轉

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW); //右輪前進

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,LOW); //左輪不動

}

void turnRight(){

//右轉

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,LOW); //右輪不動

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW); //左輪前進

}

void go(){

//前進

  digitalWrite(IN1,HIGH);

  digitalWrite(IN2,LOW); //右輪前進

  digitalWrite(IN3,HIGH);

  digitalWrite(IN4,LOW); //左輪前進

}

void back(){

//倒車

  digitalWrite(IN1,LOW);

  digitalWrite(IN2,HIGH); //右輪后退

  digitalWrite(IN3,LOW);

  digitalWrite(IN4,HIGH); //左輪后退

}

void stopCar(){

//停車

  initCar();

}

 

接線如下:

Arduino UNO                    藍牙HC-05/06

5V                             VCC

GND                           GND

PWM 3                          RXD

PWM4                          GND

                                L298N

PWM5                          IN1

PWM6                          IN2

PWM9                          IN3

PWM10                         IN4

GND                           GND

 

L298N                          電源

+12V                            電源正

GND                            電源負

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM