博客专栏

EEPW首页>博客> 使用基于蓝牙的 Android 应用程序控制直流电机速度

使用基于蓝牙的 Android 应用程序控制直流电机速度

发布人:电子资料库 时间:2022-08-07 来源:工程师 发布文章

这个项目与我们之前介绍的直流电机控制项目有些不同。到目前为止,这些文章已经包含了通过使用以下方法控制直流电机速度的见解:

  • Arduino

  • 8051微控制器

  • AVR / PIC / ARM 微控制器

  • 一个遥控器

  • ****

  • 蓝牙

这一次,我们将通过 Android 应用程序 (app) 介绍直流电机速度控制。对于该项目,该应用程序安装在智能手机设备中,该设备使用蓝牙向控制直流电机速度的电路发送命令。

这款 Android 应用程序具有引人注目且易于使用的图形用户界面 (GUI)。我们将使用按钮、滑块和速度计,使这个项目与我们介绍的其他项目完全不同。

但首先,这是你需要的……

所需物品

1.Arduino NANO 开发板

image.png


2.A12-V直流电机

image.png


3.一个HC05蓝牙模块

image.png


4.TIP122 NPN 达林顿晶体管

image.png


5.一个 330-ohm 电阻
6.一个 12-V 电源/适配器

image.png


现在,让我们构建电路,然后我们将介绍它的操作。

电路原理图

image.png


该电路仅使用三个组件构建:Arduino NANO、蓝牙模块 HC05 和达林顿晶体管 TIP122。

  • HC05 有四个接口引脚:Vcc、GND、Tx 和 Rx。在这里,Vcc 引脚由 Arduino 板提供 5V 电源,GND 引脚与板的地相连。Tx 和 Rx 引脚分别与 Arduino 的引脚 D4 和 D5 连接。

  • PWM 输出引脚 D3 使用 TIP122 驱动 12V 直流电机。它通过限流 330 欧姆电阻连接到 TIP122 的基极端子。

  • TIP122 用于放大电流,为电机提供所需的电流。直流电机连接在集电极输出和 12V 电源之间。TIP122 的****极端子接地。

电路布置

image.png


电路操作
该电路使用智能手机上的 Android 应用程序控制 12V 直流电机的速度。该应用程序通过智能手机的蓝牙发送启动或停止电机以及改变电机速度的命令。

这些命令由 HC05 模块接收,然后通过 Tx 和 Rx 引脚将它们传递给 Arduino NANO。根据发送过来的命令,Arduino 将运行或停止直流电机,或者将其速度从最小变为最大。

Arduino 在其 D3 引脚上生成一个 PWM 信号来运行或停止电机或改变电机速度。要停止电机,引脚 D3 上的脉冲宽度为 0 (0%)。而要全速运行电机,则为 255 (100%)。因此,当 Arduino 改变其 D3 引脚上的脉冲宽度时,电机速度会从最小值变为最大值——反之亦然。

Arduino 还可以将电机速度的变化(0 到 100 %)从 HC05 模块发送到智能手机的应用程序。然后,Android 应用程序将在模拟拨号(或快速拨号)上显示此电机速度值。

Android 应用程序
Android 应用程序是使用“蓝牙电子”应用程序构建的,该应用程序可在 Google Play 上免费获得。

首先,在您的安卓手机上下载并安装“蓝牙电子”应用程序并打开它。它将询问您是否要“打开”设备的蓝牙。允许它这样做。应用程序启动后,您会看到一些现成的控制面板,用于控制基于 Arduino 的项目。

也许这个应用程序最有趣的功能是:它允许用户构建一个自定义面板来控制 Arduino 项目。

让我们构建一个定制的面板来控制直流电机的速度。

image.png


该面板由一个绿色和红色按钮组成,用于将母亲“打开”或“关闭”。它还有一个用于改变电机速度的滑块和一个用于查看电机速度的刻度盘。

以下是制作面板的方法:

1.选择一个绿色按钮。然后,转到屏幕的右上角并编辑按钮属性,如下所示:

新闻文本: N
发布文本:

2.选择中小字体的文本大小,然后写上“Motor ON”。

3.选择一个红色按钮并编辑其属性如下:

新闻文本: F
发布文本:

4.选择中小字体的文字大小,并写上“Motor OFF”。

5.从滑块选项中选择最大的滑块并编辑其属性,如下所示:

最小值:100
最大值:255
选择“在滑块更改时发送”

字符串开头:*
字符串结尾:#

6.转到指示器选项并选择模拟表盘。像这样编辑它的属性:

接收字符:D
最小文本:0
最大文本:100
最小值:0
最大值:100
保留默认所有其他

7.根据您的选择写下所有其他文本,例如“min”、“max”、“motor speed”、“speed indicator”等。

就是这样!您的 android 应用程序已准备好控制直流电机速度。

运行项目

1.根据面包板上或通用 PCB 上的给定原理图连接电路。

2.为电路提供 12V 电源。

3.最初,电机不运动,处于停止位置。HC05 模块将开始闪烁,表示它正在搜索设备。

4.启动智能手机中的“蓝牙电子”应用程序,确保蓝牙“开启”。

5.按下连接按钮,搜索 HC05 模块。找到设备后,选择“HC05”并按连接。第一次这样做时,您必须输入密码“1234”。

6.连接 HC05 后,按完成

7.现在,您可以运行您的面板了。

8.从面板上,按绿色按钮启动电机或按红色按钮停止电机。

9.电机运行时,改变滑块以改变电机速度。

10.随着滑块的移动,速度盘将指示电机速度(从 0 到 100%)。

软件程序:
该项目之所以有效,是因为在 Arduino 的微控制器 ATMega328 中下载了软件程序。该程序使用 Arduino IDE 软件以 C 语言编写。

#include
SoftwareSerial bt_ser(4,5);
字符 c[6];
int i=0,speed_value=150,send_value;
bool fan_on_flag = false;
无效设置()
{
序列.开始(9600);
bt_ser.begin(9600);
类比写入(3,0);
Serial.println(“使用安卓应用程序控制直流电机速度”);
}

无效循环()
{
而(bt_ser.available())
{
if(bt_ser.available()> 0)
{
c[i] = bt_ser.read();
序列号.print(c[i]);
我++;
}
if(c[i-1]=='N')
{
类比写入(3,speed_value);
fan_on_flag = 真;
我=0;
}
if(c[i-1]=='F')
{
类比写入(3,0);
fan_on_flag = 假;
我=0;
}
if(c[i-1]=='#')
{
speed_value = (c[1]-48)*100+(c[2]-48)*10+(c[3]-48)*1 ;
发送值 = 地图(速度值,100,255,0,100);
如果(fan_on_flag)模拟写入(3,速度值);
Serial.print(speed_value);
Serial.print('\t');
Serial.println(send_value);
bt_ser.print(“*D”);
bt_ser.print(send_value);
bt_ser.print('*');
我=0;
}
}
}


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。



关键词:蓝牙直流电

相关推荐

技术专区

关闭