多语言展示
当前在线:1470今日阅读:26今日分享:39

如何制作蓝牙遥控小车

基于arduino平台的蓝牙遥控小车详细讲解(附带源码程序)
工具/原料
1

直流电机

2

L298N直流驱动

3

Arduino uno

4

蓝牙模块

5

小车模型

6

安卓手机和蓝牙串口软件

方法/步骤
1

首先给大家介绍主要硬件,分别是l298n直流驱动、arduino uno、蓝牙模块

2

arduino具体的连接线路图,大家可以按照箭头所示连接,程序已经和图示接口定义的一样在arduino主板上已经标注好了串口信息,可以跟着连接

3

蓝牙模块的TX接主板的RX,RX接主板的TX就是对调一下才可以实现数据交换,然后GND与VCC分别对应相接蓝牙模块:四个引脚1. TX接主板RX2. RX接主板TX3. VCC接c1-VCC4. GND接C2-GND

4

L298N直流驱动1. 负极和正极分别接电机的正负极2. 项目通常使用12v供电,电源正极接12v,负极接GND3. IN1、IN2、IN3、IN4接主板上的相同串口4. EN1和EN2接相应串口,EN使能端上有跳冒,要保持两个引脚串联的情况下接引脚(这是关键,好多人就是在这卡住了,导致不能转动)

接下来就是软件端
1

咋们采用的是蓝牙遥控方式,所以可以下载已经现有的app

2

小编我用的是蓝牙串口工具,然后在里面的按键定义字符本次实验里的前进是字符‘G’后退是字符‘B’左移是字符‘L’右移是字符‘R’停止是字符‘S’在设置蓝牙界面的时候按照以上字符设置。

3

以下就是用到的代码: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 (Serial.available())      {        comdata += char(Serial.read());         delay(2);       }    return comdata;  }void setup()  {  Serial.begin(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();      }

注意事项

电源不要大于各个元件的额定电压,如果电压过大可以用降压模块或者电源模块来保护电路

推荐信息