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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于arduino平台的蓝牙遥控小车详细讲解(附带
源码程序)
1、材料
1. 直流电机
2. L298N直流驱动
3. Arduino uno
4. 蓝牙模块
5. 框架(这个自定义不做介绍)
2、实物展示
1.L298N直流驱动
2.蓝牙模块
3.arduino uno
3、具体内容
本实验采用实验的串口来进行演示,读者也可以自定义
在arduino主板上已经标注好了串口信息,可以跟着连接
蓝牙模块:
四个引脚
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使能端上有跳冒,要保持两个引脚串联的情况下接引脚(这是关键,好多人就是在这卡住了,导致不能转动)
软件端:蓝牙串口(百度使用教程很简单的)
用手机搜索蓝牙模块与其配对完成后方,设置参数可使用
本次实验里的
前进是字符‘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(); }。

相关文档
最新文档