該項(xiàng)目將從頭開始構(gòu)建電動(dòng)滑板,并使用手機(jī)上應(yīng)用程序中的滑塊控制電動(dòng)滑板。
所需零件:
Arduino Uno或Nano
藍(lán)牙低能量(BLE)模塊,例如只作為從機(jī)的HC-06,或者可以作為主/從機(jī)的HC-05。
L293D電機(jī)驅(qū)動(dòng)集成電路。這個(gè)16針雙H橋電機(jī)驅(qū)動(dòng)器將允許我們控制電機(jī)的旋轉(zhuǎn)方向和速度;
12V 直流馬達(dá)
12V電池組
arduino的電源
跳線和實(shí)驗(yàn)板
電路:
HC-06將在從主藍(lán)牙設(shè)備發(fā)出時(shí)接收串行數(shù)據(jù),該數(shù)據(jù)將通過其接收/發(fā)送引腳RX/TX(連接到主板的引腳5和4)傳輸?shù)紸rduino。其GND和VCC引腳將分別連接到GND和+5V。
L293D中的H橋允許通過打開或關(guān)閉一對開關(guān)來控制電機(jī)的旋轉(zhuǎn)方向,其中4個(gè)開關(guān)以H的形狀排列。
該電機(jī)驅(qū)動(dòng)器也能夠驅(qū)動(dòng)兩個(gè)不同速度的電機(jī),但本項(xiàng)目僅使用一個(gè)。
要啟動(dòng)電機(jī),請連接“啟用1,2“(pin1)和”Vcc1”(引腳16)至+5V。連接“Vcc2”(針腳8)連接到12V電池組的正極。將針腳4、5、12和13連接到GND。連接”輸入1“(引腳2)至Arduino的引腳10,它將傳輸pwm2信號和”輸入2”(引腳7)至引腳9,用于pwm1。在這些之間切換將允許我們切換旋轉(zhuǎn)方向。最后,將DC電機(jī)連接到輸出1和2(引腳3和6)。
連接好的試驗(yàn)板:
程序:
#include《SoftwareSerial.h》
SoftwareSerial bt_ser(4,5); //連接到用于串行數(shù)據(jù)通信的RX和TX引腳
char c[6];
int i=0,speed_value=0,send_value;
#define pwm1 9 //輸入2
#define pwm2 10 //輸入 1
boolean motor_dir = 0;
void setup()
{
Serial.begin(9600);
bt_ser.begin(9600);
pinMode(pwm1, OUTPUT);
pinMode(pwm2, OUTPUT);
}
void loop()
{
while(bt_ser.available()) //數(shù)據(jù)傳輸時(shí)
{
if(bt_ser.available()》0)
{
c[i] = bt_ser.read(); //讀取從主設(shè)備發(fā)送的字符串
Serial.print(c[i]);
i++;
}
if(c[i-1]==‘N’) //如果按下按鈕
{
motor_dir = !motor_dir; //切換方向變量
if(motor_dir) //設(shè)置方向,pwm1和pwm2是相反的
digitalWrite(pwm2, 0);
else
digitalWrite(pwm1, 0);
}
}
speed_value = (c[1]-48)*100+(c[2]-48)*10+(c[3]-48)*1; //從字符串解釋速度
if(motor_dir) //對于給定的方向
{
if(c[i-1]==‘#’){ //如果數(shù)據(jù)已從滑塊傳輸
analogWrite(pwm1, speed_value-100); //100,當(dāng)滑塊處于“0”位置時(shí),速度為0
i=0;
}
}
else{ //相反方向
if(c[i-1]==‘#’){
analogWrite(pwm2, speed_value-100);
i=0;
}
}
}
pwm1和pwm2是相反的,并允許切換旋轉(zhuǎn)方向。
應(yīng)用發(fā)送的串行數(shù)據(jù)是字符串c,這是速度和方向數(shù)據(jù)所在的位置。為了使其工作,速度位于c[1],c[2]和c[3]。
定制滑塊來發(fā)送100到255之間的數(shù)字。這可以在阿爾杜伊諾的[0:255]上用一個(gè)新的速度變量繪制出來,如下所示:
new_speed = map(speed_value,100,255,0,255)
應(yīng)用程序:
Bluetooth Electronics:它提供了創(chuàng)建儀表板以及自定義儀表板上的組件發(fā)送的數(shù)據(jù)或它們?nèi)绾谓换サ倪x項(xiàng)。
(創(chuàng)建的儀表板的屏幕)
為了創(chuàng)建此界面,需要編輯一個(gè)新的儀表板,然后從編輯菜單中選擇一個(gè)滑塊,一個(gè)按鈕和一個(gè)文本框。
滑塊將必須按以下方式進(jìn)行編輯:
最低價(jià)值:100
最大值:255
在更改滑塊時(shí)發(fā)送字符串
字符串開頭:*
字符串以:結(jié)尾
應(yīng)該對按鈕進(jìn)行編輯(釋放文本為空白):
媒體文字:N
發(fā)布文字:
然后,就可以添加文本以澄清儀表板。
責(zé)任編輯:pj
-
集成電路
+關(guān)注
關(guān)注
5392文章
11631瀏覽量
363367 -
電機(jī)驅(qū)動(dòng)
+關(guān)注
關(guān)注
60文章
1227瀏覽量
86957 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3296瀏覽量
57944
發(fā)布評論請先 登錄
相關(guān)推薦
MCU在電動(dòng)滑板車硬件實(shí)物的設(shè)計(jì)技巧
DIY電動(dòng)滑板車的相關(guān)資料分享
如何在手機(jī)上打開/啟動(dòng)應(yīng)用程序?
3G用戶如何使用手機(jī)上網(wǎng)業(yè)務(wù)?
如何才能構(gòu)建ASP NET的應(yīng)用程序
![如何才能<b class='flag-5'>構(gòu)建</b>ASP NET的<b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/AB/6F/o4YBAF25BU-ASNukAAQqx1A6jKM151.png)
電動(dòng)滑板車電機(jī)控制器的作用是什么
如何使用STM32CubeWL構(gòu)建Sigfox?應(yīng)用程序
![如何使用STM32CubeWL<b class='flag-5'>構(gòu)建</b>Sigfox?<b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何使用 STM32CubeWL 構(gòu)建 Sigfox? 應(yīng)用程序
![如何使用 STM32CubeWL <b class='flag-5'>構(gòu)建</b> Sigfox? <b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
如何使用 STM32CubeWL 構(gòu)建 LoRa? 應(yīng)用程序
![如何使用 STM32CubeWL <b class='flag-5'>構(gòu)建</b> LoRa? <b class='flag-5'>應(yīng)用程序</b>](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
可以用手機(jī)應(yīng)用程序控制的中型四足機(jī)器人
![可以<b class='flag-5'>用手機(jī)</b><b class='flag-5'>應(yīng)用程序</b>控制的中型四足機(jī)器人](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
基于Arduino的DIY電動(dòng)滑板
![基于Arduino的DIY<b class='flag-5'>電動(dòng)</b><b class='flag-5'>滑板</b>](https://file.elecfans.com/web2/M00/92/F9/pYYBAGPzEVWAJXohAAFn4w0o1DQ238.jpg)
評論