0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

基于Arduino UNO和HC-05藍牙模塊的伺服電機控制

電子設計 ? 來源:與非網(wǎng) ? 作者:與非網(wǎng) ? 2021-02-01 14:17 ? 次閱讀

了解如何在移動設備,Arduino UNO和HC-05藍牙模塊中使用Android應用程序控制伺服電機。

硬件部件:

Arduino UNO × 1個

HC-05藍牙模塊 × 1個

SG90微型伺服電機 × 1個

軟件應用程序和在線服務:

MIT App Inventor 2

手動工具和制造機:

10個 跳線套件,5厘米長

面包板,170針

伺服電機是一種閉環(huán)系統(tǒng),它使用位置反饋來控制其運動和最終位置。

o4YBAGAXm_-ABigqAAEpRcD9tB8637.png

RC伺服電機在相同的原理上工作。它包含一個小型直流電動機,通過齒輪連接到輸出軸。

輸出軸驅(qū)動伺服臂,并且還連接到電位器(電位計)。

電位計向伺服控制單元提供位置反饋,在此將電機的當前位置與目標位置進行比較。

根據(jù)錯誤,控制單元會校正電動機的實際位置,使其與目標位置相匹配。

通過通過信號線發(fā)送一系列脈沖來控制伺服電機??刂菩盘柕念l率應為50Hz或每20ms產(chǎn)生一個脈沖。脈沖的寬度決定了伺服器的角度位置,這些類型的伺服器通常可以旋轉180度

控制線用于傳達角度。該角度由施加到控制線的脈沖的持續(xù)時間確定。這稱為脈沖編碼調(diào)制。伺服器希望每20毫秒(.02秒)看到一個脈沖。脈沖的長度將決定電機旋轉多遠。例如,一個1.5毫秒的脈沖將使電動機轉到90度位置(通常稱為空擋位置)。如果脈沖短于1.5毫秒,則電動機會將軸旋轉到接近0度的位置。如果脈沖長于1.5毫秒,則軸將更接近180度。

o4YBAGAXnBCAcD6IAAIv_QqXR_g014.png

電路原理圖:

o4YBAGAXnCuAeXNUAAEPsAEIKtE068.png

首先,使用Arduino連接伺服電機。

將兩個伺服電機的黑線連接到Arduino的GND將兩個電機的橙色線連接到Arduino的5V將第一個電機的橙色線連接到Arduino的引腳9

首先,在沒有藍牙的情況下使用以下arduino代碼測試Servo電機掃描功能:

#include
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most boards
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
void loop() {
for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees
// in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
}

輸出結果:

之后,與Arduino建立藍牙模塊的連接。
將藍牙模塊的VCC連接至Arduino的5V將藍牙模塊的GND連接至Arduino的GND將藍牙模塊的TX連接至Arduino的Rx引腳將藍牙模塊的RX連接至Arduino的Tx引腳

用于藍牙控制的Arduino代碼:

#include
Servo myservo;
const int Pin = 9; // myservo pin3 PWM
char Text;
String Spilt;
String angle;
int pos = 0; // variable to store the servo position
int k1;
void setup() {
Serial.begin(9600);
pinMode (Pin, OUTPUT);
myservo.attach(Pin);
}
void loop() {
if(Serial.available())
{
Text = Serial.read();
Spilt = Spilt + Text;
if (Text == '*') {
Serial.println(Spilt);
Spilt = Spilt.substring(0, Spilt.length() - 1); // Delete last char *
k1 = Spilt.indexOf('*');
angle = Spilt.substring(0, k1);
myservo.write(angle.toInt());
delay(15);
Spilt = "";
}
}
}上載程序后,重新連接TX和RX,并確保手機已與相應的Bluetooth模塊配對。連接到Android手機的步驟如下:

打開藍牙模塊的電源,然后轉到Android設備上的設置。

配對設備。在某些電話上,此步驟必須執(zhí)行兩次才能配對。確保準備好PIN碼(大多數(shù)Bluetooth Mate的默認設置為“ 1234”)>開啟兩個設備的電源>在Android“設置”應用程序的Bluetooth圖標下搜索模塊。

將設備與手機配對后,打開BT Servo應用程序。

使用列表連接到并找到包含文本HC-05的正確設備名稱。

pIYBAGAXnFWAbCYnAAHcsGdBAD4858.png



編輯:hfy

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Android
    +關注

    關注

    12

    文章

    3943

    瀏覽量

    127745
  • 伺服電機
    +關注

    關注

    85

    文章

    2057

    瀏覽量

    58101
  • Arduino
    +關注

    關注

    188

    文章

    6477

    瀏覽量

    187611
收藏 1人收藏
  • 一生何求_4225104691

評論

相關推薦

CW32模塊使用 HC05藍牙模塊

HC-05 藍牙串口通信模塊,是基于 Bluetooth Specification V2.0 帶 EDR 藍牙協(xié)議的數(shù)傳模塊。無線工作頻段
的頭像 發(fā)表于 01-23 12:57 ?43次閱讀
CW32<b class='flag-5'>模塊</b>使用 <b class='flag-5'>HC05</b><b class='flag-5'>藍牙</b><b class='flag-5'>模塊</b>

stm32藍牙模塊連接方法

選擇藍牙模塊 首先,需要選擇一個適合的藍牙模塊。市面上常見的藍牙模塊
的頭像 發(fā)表于 11-19 15:49 ?799次閱讀

伺服電機原理及控制應用

伺服電機(Servo Motor)是一種高精度、高性能的電動機系統(tǒng),廣泛應用于需要精確控制位置、速度和加速度的場合。 一、伺服電機的工作原理
的頭像 發(fā)表于 10-22 16:58 ?962次閱讀

步進電機伺服控制系統(tǒng)的作用

步進電機伺服控制系統(tǒng)是一種精密的電機控制系統(tǒng),它通過精確控制
的頭像 發(fā)表于 09-04 09:46 ?752次閱讀

伺服電機也是脈沖控制嗎為什么

伺服電機是一種高精度、高響應速度的電機,廣泛應用于工業(yè)自動化、機器人、航空航天等領域。伺服電機控制
的頭像 發(fā)表于 07-14 10:37 ?1031次閱讀

伺服驅(qū)動器對伺服電機控制要求

伺服驅(qū)動器對伺服電機控制要求是一個復雜而深入的話題。以下是關于伺服驅(qū)動器對伺服
的頭像 發(fā)表于 06-14 15:24 ?894次閱讀

運動控制伺服電機如何控制

運動控制伺服電機控制是現(xiàn)代工業(yè)自動化領域中一項重要的技術,它涉及到運動控制卡、伺服
的頭像 發(fā)表于 06-12 14:13 ?997次閱讀

plc控制伺服電機的指令有哪些

PLC(可編程邏輯控制器)是一種廣泛應用于工業(yè)自動化領域的控制設備。伺服電機作為執(zhí)行元件,可以通過PLC進行精確控制。以下是關于PLC
的頭像 發(fā)表于 06-12 11:39 ?2649次閱讀

伺服電機最簡單控制方法是什么

伺服電機是一種高精度、高響應速度的電機,廣泛應用于工業(yè)自動化、機器人、航空航天等領域。伺服電機控制
的頭像 發(fā)表于 06-05 15:49 ?885次閱讀

HC05藍牙模塊主從通訊,藍牙透傳串口發(fā)出后數(shù)據(jù)字節(jié)有延時是怎么回事?

HC05藍牙做主從通訊,主機發(fā)出從機接收。主從模塊通過兩個CH430和PC相連。用邏輯分析儀抓取數(shù)據(jù),發(fā)現(xiàn)從機接收后串口發(fā)出的數(shù)據(jù)有字節(jié)延時。
發(fā)表于 04-02 07:52

Proteus新手小白求助大神

這是我畫的52單片機 HC-05藍牙模塊控制LED 風扇 蜂鳴器的仿真圖但是運行后輸入指令不運行,STC-ISP和串口都下載了還是不懂,求助
發(fā)表于 03-20 08:25

交流伺服電機工作原理 交流伺服電機控制方式

的工作原理 交流伺服電機是一種特殊的交流電機,由電機本身和電機驅(qū)動器組成。電機驅(qū)動器負責
的頭像 發(fā)表于 02-18 14:59 ?2694次閱讀

arduino控制步進電機代碼

Arduino是一種開放源代碼的電路板平臺,它可以用于控制各種不同的電子設備,包括步進電機。步進電機是一種電動機,可以通過下達特定的指令來控制
的頭像 發(fā)表于 02-14 16:29 ?2144次閱讀

如何使用Arduino UNO板和電位器控制伺服電機

在本Arduino伺服電機教程中,您將學習如何使用Arduino UNO板和電位器控制
的頭像 發(fā)表于 02-11 10:11 ?2945次閱讀
如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b>板和電位器<b class='flag-5'>控制</b><b class='flag-5'>伺服</b><b class='flag-5'>電機</b>

如何使用Arduino UNO和TIP120晶體管驅(qū)動和控制直流電機的速度

在本 Arduino 電機指南中,您將學習如何使用 Arduino UNO 和 TIP120晶體管驅(qū)動和控制直流
的頭像 發(fā)表于 02-11 10:08 ?1621次閱讀
如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b>和TIP120晶體管驅(qū)動和<b class='flag-5'>控制</b>直流<b class='flag-5'>電機</b>的速度

電子發(fā)燒友

中國電子工程師最喜歡的網(wǎng)站

  • 2931785位工程師會員交流學習
  • 獲取您個性化的科技前沿技術信息
  • 參加活動獲取豐厚的禮品