如何制作蓝牙遥控小车

作者:落知秋 | 创建时间: 2023-07-30
基于arduino平台的蓝牙遥控小车详细讲解(附带源码程序)...
如何制作蓝牙遥控小车

操作方法

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

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

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

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

接下来就是软件端

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

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

以下就是用到的代码: 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(); }

温馨提示

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

更多推荐