基于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