使用基于藍牙的 Android 應用程序控制直流電機速度(使用基于藍牙的 android 應用程序控制直流電機速度)
這個項目與我們之前介紹的直流電機控制項目有些不同。到目前為止,這些文章已經(jīng)包含了通過使用以下方法控制直流電機速度的見解:
- Arduino
- 8051微控制器
- AVR / PIC / ARM 微控制器
- 一個遙控器
- 短信
- 藍牙
這一次,我們將通過 Android 應用程序 (app) 介紹直流電機速度控制。對于該項目,該應用程序安裝在智能手機設備中,該設備使用藍牙向控制直流電機速度的電路發(fā)送命令。
這款 Android 應用程序具有引人注目且易于使用的圖形用戶界面 (GUI)。我們將使用按鈕、滑塊和速度計,使這個項目與我們介紹的其他項目完全不同。
但首先,這是你需要的……
所需物品
1. Arduino NANO 開發(fā)板
2. A12-V直流電機
3.一個HC05藍牙模塊
4. TIP122 NPN 達林頓晶體管
5.一個 330-ohm 電阻
6.一個 12-V 電源/適配器
現(xiàn)在,讓我們構建電路,然后我們將介紹它的操作。
電路原理圖
該電路僅使用三個組件構建: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 的發(fā)射極端子接地。
電路布置
電路操作
該電路使用智能手機上的 Android 應用程序控制 12V 直流電機的速度。該應用程序通過智能手機的藍牙發(fā)送啟動或停止電機以及改變電機速度的命令。
這些命令由 HC05 模塊接收,然后通過 Tx 和 Rx 引腳將它們傳遞給 Arduino NANO。根據(jù)發(fā)送過來的命令,Arduino 將運行或停止直流電機,或者將其速度從最小變?yōu)樽畲蟆?/span>
Arduino 在其 D3 引腳上生成一個 PWM 信號來運行或停止電機或改變電機速度。要停止電機,引腳 D3 上的脈沖寬度為 0 (0%)。而要全速運行電機,則為 255 (100%)。因此,當 Arduino 改變其 D3 引腳上的脈沖寬度時,電機速度會從最小值變?yōu)樽畲笾怠粗嗳弧?/span>
Arduino 還可以將電機速度的變化(0 到 100 %)從 HC05 模塊發(fā)送到智能手機的應用程序。然后,Android 應用程序將在模擬撥號(或快速撥號)上顯示此電機速度值。
Android 應用程序
Android 應用程序是使用“藍牙電子”應用程序構建的,該應用程序可在 Google Play 上免費獲得。
首先,在您的安卓手機上下載并安裝“藍牙電子”應用程序并打開它。它將詢問您是否要“打開”設備的藍牙。允許它這樣做。應用程序啟動后,您會看到一些現(xiàn)成的控制面板,用于控制基于 Arduino 的項目。
也許這個應用程序最有趣的功能是: 它允許用戶構建一個自定義面板來控制 Arduino 項目。
讓我們構建一個定制的面板來控制直流電機的速度。
該面板由一個綠色和紅色按鈕組成,用于將母親“打開”或“關閉”。它還有一個用于改變電機速度的滑塊和一個用于查看電機速度的刻度盤。
以下是制作面板的方法:
1.選擇一個綠色按鈕。然后,轉到屏幕的右上角并編輯按鈕屬性,如下所示:
新聞文本: N
發(fā)布文本:
2.選擇中小字體的文本大小,然后寫上“Motor ON”。
3.選擇一個紅色按鈕并編輯其屬性如下:
新聞文本: F
發(fā)布文本:
4.選擇中小字體的文字大小,并寫上“Motor OFF”。
5.從滑塊選項中選擇最大的滑塊并編輯其屬性,如下所示:
最小值:100
最大值:255
選擇“在滑塊更改時發(fā)送”
字符串開頭:*
字符串結尾:#
6.轉到指示器選項并選擇模擬表盤。像這樣編輯它的屬性:
接收字符:D
最小文本:0
最大文本:100
最小值:0
最大值:100
保留默認所有其他
7.根據(jù)您的選擇寫下所有其他文本,例如“min”、“max”、“motor speed”、“speed indicator”等。
就是這樣!您的 android 應用程序已準備好控制直流電機速度。
運行項目
1.根據(jù)面包板上或通用 PCB 上的給定原理圖連接電路。
2. 為電路提供 12V 電源。
3.最初,電機不運動,處于停止位置。HC05 模塊將開始閃爍,表示它正在搜索設備。
4.啟動智能手機中的“藍牙電子”應用程序,確保藍牙“開啟”。
5.按下連接 按鈕,搜索 HC05 模塊。找到設備后,選擇“HC05”并按連接。第一次這樣做時,您必須輸入密碼“1234”。
6.連接 HC05 后,按完成。
7.現(xiàn)在,您可以運行 您的面板了。
8.從面板上,按綠色 按鈕啟動電機或按 紅色 按鈕停止電機。
9.電機運行時,改變滑塊 以改變電機速度。
10.隨著滑塊的移動,速度盤將指示電機速度(從 0 到 100%)。
軟件程序:
該項目之所以有效,是因為在 Arduino 的微控制器 ATMega328 中下載了軟件程序。該程序使用 Arduino IDE 軟件以 C 語言編寫。
#include<SoftwareSerial.h>
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(“使用安卓應用程序控制直流電機速度”);
}
無效循環(huán)()
{
而(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 ;
發(fā)送值 = 地圖(速度值,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;
}
}
}