技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 如何使用Arduino的藍牙控制伺服電機

如何使用Arduino的藍牙控制伺服電機

時間:2022-11-17 10:17:50來源:circuitdigest

導(dǎo)語:?如何使用Arduino的藍牙控制伺服電機

  使用伺服電機在機器人技術(shù)中很常見,以實現(xiàn)精確控制。在這里,在本教程中,我們將向您展示如何通過藍牙連接將伺服電機與Arduino UNO和Android設(shè)備無線使用。我們已經(jīng)使用 Arduino 控制了伺服,這次我們使用Arduino 和藍牙控制伺服電機。

  所需材料

  Arduino UNO

  HC-05 或 HC-06 藍牙模塊

  伺服電機

  來自Playstore的Roboremo應(yīng)用程序

  面包板

  連接線

  HC-06 藍牙模塊

  藍牙可以在以下兩種模式下運行:

  命令模式

  操作模式

  在命令模式下,我們將能夠配置藍牙屬性,例如藍牙信號的名稱,密碼,操作波特率等。操作模式是我們能夠在PIC微控制器和藍牙模塊之間發(fā)送和接收數(shù)據(jù)的模式。因此,在本教程中,我們將只玩弄操作模式。命令模式將保留默認設(shè)置。設(shè)備名稱將是HC-05(我正在使用HC-06),密碼將是0000或1234.最重要的是,所有藍牙模塊的默認波特率為9600.

pYYBAGN0nS-AQ32JAACRRzH8oH8695.jpg

  模塊采用 5V 電源供電,信號引腳工作在 3.3V,因此模塊本身存在一個 3.3V 穩(wěn)壓器。因此,我們不必擔(dān)心。在六個引腳中,只有四個將在操作模式下使用。引腳連接表如下所示

  

S.NoHC-05/HC-06 上的引腳MCU 上的引腳名稱PIC 中的引腳編號
1VccVdd31圣針
2Vcc格德32德·針
3德克薩斯RC6/Tx/CK25千針
4接收RC7/Rx/DT26千針
5數(shù)控數(shù)控
6英文(使能)數(shù)控數(shù)控


  電路圖

  此Arduino藍牙伺服電機控制項目的電路圖如下:

poYBAGN0nTGAP6f_AAB8e95U1IQ995.png

poYBAGN0nTOAdEvUAAC6k9iZgLs019.jpg

  配置 Roboremo 應(yīng)用程序以控制伺服:

  第 1 步:-從Android Play商店下載Roboremo應(yīng)用程序并將其安裝在智能手機中。安裝后,您將看到如圖1所示的應(yīng)用程序窗口,通過單擊“菜單”按鈕,您將看到如下所示的圖2所示窗口:

pYYBAGN0nTSAUPERAAAZL5GZArY939.png

poYBAGN0nTaAJax4AAAtIkVcznU194.png

  第 2 步:-然后單擊連接按鈕,您將看到下面圖3所示的窗口,然后您必須選擇“藍牙RFCOMM”,然后您將能夠?qū)C-06藍牙模塊與Android應(yīng)用程序“Roboremo”連接。

pYYBAGN0nTeARHJ6AABAy9m8-lc798.png

  第 3 步:-連接到HC-06藍牙模塊后,返回圖2窗口,然后單擊“編輯ui”以根據(jù)需要創(chuàng)建用戶界面。

  當單擊“編輯ui”時,您將再次看到圖1所示的窗口,然后單擊屏幕上的任意位置,您將看到如圖4所示的應(yīng)用程序窗口,然后選擇“按鈕”以獲取按鈕結(jié)構(gòu)。

pYYBAGN0nTmASGUaAAAt7QHnAwA011.png

  第 4 步:-選擇按鈕后,您將在屏幕上看到一個按鈕結(jié)構(gòu)進行編輯。您可以調(diào)整結(jié)構(gòu)的大小并將其移動到屏幕上的任意位置?,F(xiàn)在,要設(shè)置通過藍牙單擊時發(fā)送的值,您有“設(shè)置按下操作”(如圖 6 所示)并鍵入要從該特定按鈕發(fā)送的值。就像,我們正在發(fā)送“1”通過按 Roboremo android 應(yīng)用程序中的“開始”按鈕來旋轉(zhuǎn)伺服。

  您可以在后面給出的表格中檢查所有值,單擊不同的按鈕發(fā)送。

poYBAGN0nTqAFjOvAAAe3Rs9LYA509.png

pYYBAGN0nTuAeO8BAAA_PUvRXGo620.png

  第 5 步:-最后,我們有用戶界面來使用智能手機控制伺服電機。

poYBAGN0nTyAfvPIAAAsom7XUyA747.png

  代碼和說明

  最后給出了通過藍牙的Arduino控制伺服電機的完整代碼。

  Arduino具有伺服電機庫,它處理所有與PWM相關(guān)的東西來旋轉(zhuǎn)伺服器,您只需要輸入要旋轉(zhuǎn)的角度,并且有功能servo1.write(angle); 這會將伺服器旋轉(zhuǎn)到所需的角度。

  因此,這里我們首先定義伺服電機的庫,軟件串行庫用于定義Rx和Tx引腳。

  #include

  #include

  在下面的代碼中,我們正在初始化 Rx 和 Tx 的 Arduino 引腳,為伺服和其他東西定義變量。

  Servo myServo; int TxD = 11; int RxD = 10; int servoposiTIon; int servopos; int new1; SoftwareSerial bluetooth(TxD, RxD);

  現(xiàn)在,將所有變量和組件設(shè)置為初始階段。在這里,我們將伺服器連接到 9千Arduino的引腳,并使伺服的初始位置為0度。串行和藍牙通信的波特率也已設(shè)置為 9600.

  void setup() {

  int pos=0;

  myServo.attach(9);

  myServo.write(0);

  Serial.begin(9600);       // start serial communicaTIon at 9600bps

  bluetooth.begin(9600);

  }

  在空回路功能中,Arduino將一直檢查輸入的值,并根據(jù)從智能手機接收的值旋轉(zhuǎn)伺服。所有值都將使用串行通信接收。

  如果值為 0.則伺服將旋轉(zhuǎn)到 0 度。同樣,如果我們從藍牙應(yīng)用程序發(fā)送 45、90、135 和 180.則伺服將分別旋轉(zhuǎn)到 45、90、135 和 180 度角。

  void loop() {

  if (bluetooth.available()){

  String value = bluetooth.readString();

  servoposiTIon = value.toInt();

  if (value.toInt() == 0){

  Serial.println(servoposiTIon);

  myServo.write(0);

  }

  if (value.toInt() == 45){

  Serial.println(servoposition);

  myServo.write(45);

  }

  if (value.toInt() == 90){

  Serial.println(servoposition);

  myServo.write(90);

  }

  if (value.toInt() == 135){

  Serial.println(servoposition);

  myServo.write(135);

  }

  if (value.toInt() == 180){

  Serial.println(servoposition);

  myServo.write(180);

  }

  如果我們通過按開始按鈕發(fā)送值“1”,則伺服將連續(xù)旋轉(zhuǎn),直到按下停止按鈕。在這里,我們在按下停止按鈕時發(fā)送“2”,Arduino 將讀取該按鈕,它將中斷 while 循環(huán)并停止伺服。

  while(value.toInt()==1){

  if (bluetooth.available())

  {

  value = bluetooth.readString();

  Serial.println(value);

  if (value.toInt()==2)

  {Serial.println("YYY"); break; }

  }

  servopos++;

  delay(30);

  Serial.println(servopos);

  myServo.write(servopos);

  if (servopos ==180 )

  {servopos=0;break;}

  }

  }

  }

  使用藍牙的伺服電機控制工作:

pYYBAGN0nT6APH0gAADiAL37Usg837.jpg

  在這個項目中,我們使用Android應(yīng)用程序“Roboremo”控制伺服電機。在此應(yīng)用程序的界面中,我們創(chuàng)建了 5 個按鈕來控制伺服電機,如前所述。下表給出了每個按鈕的工作:

  

S.No。按鈕名稱發(fā)送值描述
1.開始1此按鈕用于開始將伺服從 0? 旋轉(zhuǎn)到 180?。
2.2此按鈕用于隨時停止舵機。
3.0?0此按鈕用于將舵機旋轉(zhuǎn)到 0?。
4.90?90此按鈕用于將舵機旋轉(zhuǎn)到 90?。
5.180?180此按鈕用于將舵機旋轉(zhuǎn)到 180?。


  因此,通過按下Android應(yīng)用程序Roboremo上的這些按鈕,數(shù)據(jù)將通過智能手機的藍牙發(fā)送到HC-06藍牙模塊。從HC-06模塊數(shù)據(jù)由Arduino接收,Arduino以特定按鈕的代碼中定義的角度旋轉(zhuǎn)伺服。我們還對角度 45 和 135 進行了編碼,但由于 Roboremo 應(yīng)用程序的限制,您只能創(chuàng)建 5 個按鈕,因此我們跳過了兩個按鈕。

  因此,這就是您可以使用藍牙將數(shù)據(jù)從智能手機發(fā)送到Arduino以無線控制伺服的方法。

  #include

  #include

  Servo myServo;

  int TxD = 11;

  int RxD = 10;

  int servoposition;

  int servopos;

  int new1;

  SoftwareSerial bluetooth(TxD, RxD);

  void setup() {

  int pos=0;

  myServo.attach(9);

  myServo.write(0);

  Serial.begin(9600); // start serial communication at 9600bps

  bluetooth.begin(9600);

  }

  void loop() {

  if (bluetooth.available())

  {

  String value = bluetooth.readString();

  servoposition = value.toInt();

  if (value.toInt() == 0)

  {

  Serial.println(servoposition);

  myServo.write(0);

  }

  if (value.toInt() == 45)

  {

  Serial.println(servoposition);

  myServo.write(45);

  }

  if (value.toInt() == 90)

  {

  Serial.println(servoposition);

  myServo.write(90);

  }

  if (value.toInt() == 135)

  {

  Serial.println(servoposition);

  myServo.write(135);

  }

  if (value.toInt() == 180)

  {

  Serial.println(servoposition);

  myServo.write(180);

  }

  while(value.toInt()==1){

  if (bluetooth.available())

  {

  value = bluetooth.readString();

  Serial.println(value);

  if (value.toInt()==2)

  {Serial.println("YYY"); break; }

  }

  servopos++;

  delay(30);

  Serial.println(servopos);

  myServo.write(servopos);

  if (servopos ==180 )

  {servopos=0;break;}


標簽: 伺服電機

點贊

分享到:

上一篇:plc輸出端三種類型電氣方框圖

下一篇:充電電池應(yīng)該如何選購

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.wangxinlc.cn)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2025 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號