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