当前位置:趣知科普网>爱好>手工园艺>

如何制作蓝牙遥控小车

手工园艺 阅读(5.92K)

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

操作方法

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

如何制作蓝牙遥控小车
如何制作蓝牙遥控小车 第2张
如何制作蓝牙遥控小车 第3张

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

如何制作蓝牙遥控小车 第4张

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

如何制作蓝牙遥控小车 第5张

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

如何制作蓝牙遥控小车 第6张

接下来就是软件端

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

如何制作蓝牙遥控小车 第7张

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

如何制作蓝牙遥控小车 第8张
如何制作蓝牙遥控小车 第9张

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

特别提示

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