基本于arduino和app inventor 的蓝牙控制小车

本文介绍如何使用Arduino、L298N电机驱动模块和蓝牙模块制作蓝牙控制小车。接线关键包括电池正极连接电机驱动12V,负极连接GND,IN1-4和ENA、ENB的配置。代码部分通过定义引脚控制电机转动,根据接收到的字符控制小车前进、后退、转弯。同时,提供了蓝牙串口调试方法及使用AppInventor设计控制界面的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

所需元器件

arduino板
l298n电机驱动块
小车模型和两块电机(俗称马达)
一块hc05或者hc06的蓝牙(可以接收数据的蓝牙都行,我更推荐BT24)

在这里插入图片描述
蓝牙在这里插入图片描述
这样的小车都可以
在这里插入图片描述

在这里插入图片描述
关于以上模块,网上很多具体解释,我就懒得解释具体原理了,主要是我因为懒- -+

接线

首先来教接线

在这里插入图片描述
具体就是
电机驱动块的12V–电池的正极
电机驱动块的GND–电机的负极
IN1接–4
IN2接–5
IN3接–6
IN4接–7

同时,EN需要给高电平去使能ENA和ENB,实际上我们盖上跳键帽就是给了个高低平了,ENA控制使能OUT1,2 ,ENB控制使能OUT3,4。

然后从电机驱动块的GND里面再引一条线到arduino的GND上(共地,很多人控制不了是因为没有共地),5v引一条到VIN上

千万不要引12V会到arduino上,不然会烧掉arduino,vin的电平不会经过稳压和电容的处理的,之前懵懂无知,引了个12V的GND到arduino上,直接冒青烟了!!!!

接线来是蓝牙的接线:
vcc接5V
GND接GND
TX 接 RX
RX 接 TX
如图
在这里插入图片描述
四脚车也是如此,只不过两个电机同接一个OUT罢了。

代码部分:

(arduino烧录代码的时候,记得断开蓝牙的RX和TX,不然会占用串口,导致烧录不进去)
代码很简单:

#define IN1 4        //定义引脚4是IN1
#define IN2 5        //同上同理
#define IN3 6         //+1
#define IN4 7       //+2
char ch;          //定义一个字符类型ch  用来储存接收到的数据

void setup() 
{
  Serial.begin(9600);//串口开始 波特率是9600 是的是1s或者1ns传输一个周期的数据
  pinMode(IN1,OUTPUT);//引脚输出1
  pinMode(IN2,OUTPUT);//引脚输出2
  pinMode(IN3,OUTPUT);//引脚输出3
  pinMode(IN4,OUTPUT);//引脚输出4

}
void loop() //开始循环?
{
 if(Serial.available()>0) //连续可得到的数据?
{
  ch = Serial.read();  //连续读取
Serial.print(ch);
  if(ch=='0')//如果ch为0,全停  刹车
  {
  digitalWrite(IN1,LOW);     
  digitalWrite(IN2,LOW);   
  digitalWrite(IN3,LOW);     
  digitalWrite(IN4,LOW);      
}
if(ch =='1')                   //IN1 IN2 高低 IN3 IN4 高低 前进
 {
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);         
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         
  }
if(ch == '2')//IN1 IN2 低高 IN3 IN4 低高  后退
  {
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);        
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);        
  }
 if(ch == '3')  //IN1 IN2 高低 IN3 IN4 低高  左转,靠反向力去转
  {
  digitalWrite(IN1,HIGH);      
  digitalWrite(IN2,LOW);       
  digitalWrite(IN3,LOW);      
  digitalWrite(IN4,HIGH);       
  }
 if(ch =='4')  //IN1 IN2 低高 IN3 IN4 高低  右转,靠反向力去转
  {
  digitalWrite(IN1,LOW);      
  digitalWrite(IN2,HIGH);         
  digitalWrite(IN3,HIGH);      
  digitalWrite(IN4,LOW);         
  }

}
}

什么是高,什么该低,具体看你的IN1 IN2 IN3 IN4的OUT1 OUT2 OUT3 OUT4的接线。

蓝牙调试

这个时候手机下载蓝牙串口调试器,一般蓝牙密码是1234,接上蓝牙后,再用串口调试助手去调试。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开编辑,关闭HEX(发送16进制的数)
在这里插入图片描述
up设置为1
OK设置为0 刹车!!!极重要!!!
down设置为2
其他同理

制作自己的app

打开app inventor的网址
http://app.gzjkw.net/
或者增强版也行
app.wxbit.com

app.wxbit.com学校网络有时候进不了

界面设计如图所示
在这里插入图片描述

Activity启动器1的Action填上:
android.bluetooth.adapter. action.REQUEST_ENABLE

代码设计
在这里插入图片描述
然后就可以控制我们的蓝牙小车了

### BT04 蓝牙小车控制方式 BT04蓝牙小车通常采用UART串口通信协议来实现与外部设备(如手机或其他控制器)的数据交互[^1]。其核心功能依赖于蓝牙模块接收来自远程终端的指令信号,并通过微控制器单元(MCU)解析这些数据,进而驱动执行机构完成相应动作。 #### 硬件规格 BT04蓝牙小车的主要硬件组件可能包括以下几个部分: - **蓝牙模块**:类似于MLT-BT05 4.0 的蓝牙模块,支持经典蓝牙标准以及低功耗模式,能够提供稳定的无线连接性能。 - **主控芯片**:可以选用STM32系列、ESP32或者传统51单片机(STC89C52RC),具体取决于设计需求技术路线选择[^2][^3]。 - **电机驱动电路**:L298N是一种常见的H桥型双路直流马达驱动IC,在此项目里负责将逻辑电平转换成足以推动负载工作的电流强度。 #### 使用教程概览 对于初学者而言,构建并运行一辆基于BT04方案的小车需经历如下几个重要环节: ##### 配置阶段 安装必要的开发工具链比如ArduinoIDE用于编写固件程序;如果是针对特定型号单片机,则还需要额外配置相应的编译环境像Keil uVision4等软件平台[^3]。 ##### 连接布局 按照官方文档指示正确装配各部件之间的物理连线关系,特别注意电源极性信号线定义的一致性。例如,当利用语音识别扩展特性时,应确保麦克风输入端子已妥善焊接到位并与内部音频处理单元相连通。 ##### 应用层定制化调整 借助第三方应用程序“Bluetooth Electronics”,用户可以在智能手机屏幕上创建虚拟按钮组用来发送预设命令序列给目标装置解读执行。此外还可以探索更多高级玩法诸如录制播放音效片段等功能选项。 #### 编程接口实例展示 下面给出一段简单的伪代码示例演示如何监听到来自配对成功的远端客户端的消息事件并通过改变PWM占空比调节速度方向等方式操控两轮差速运动模型: ```cpp #include <SoftwareSerial.h> // 定义RX,TX针脚号 #define BLUETOOTH_RX_PIN 10 #define BLUETOOTH_TX_PIN 11 SoftwareSerial bluetooth(BLUETOOTH_RX_PIN, BLUETOOTH_TX_PIN); void setup() { Serial.begin(9600); bluetooth.begin(9600); // 设置波特率匹配蓝牙模组默认值 } void loop() { if (bluetooth.available()) { char cmd = bluetooth.read(); switch(cmd){ case 'F': moveForward(); break; case 'B': moveBackward();break; case 'L': turnLeft(); break; case 'R':turnRight(); break; default : stopMoving(); } delay(100); } } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创客阿蛋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值