基于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??????????????????????????? 電源負
?
轉載于:https://www.cnblogs.com/fqhy/p/11372620.html
總結
以上是生活随笔為你收集整理的基于Arduino开发的智能蓝牙小车的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 设置博客园背景图片
- 下一篇: tesseract-ocr的安装及使用