zoukankan      html  css  js  c++  java
  • 基于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                            电源负

  • 相关阅读:
    c++笔记
    python笔记
    《c++不在难学--随老鸟快速通关》
    hexo
    hexo搭建
    《趣学算法》,陈小玉
    从机器学习谈起
    成不了AI高手?因为你根本不懂数据!听听这位老教授多年心血练就的最实用统计学
    PyTorch还是TensorFlow?这有一份新手指南
    win10下机器学习TensorFlow搭建
  • 原文地址:https://www.cnblogs.com/fqhy/p/11372620.html
Copyright © 2011-2022 走看看