了解如何在移動設備,Arduino UNO和HC-05藍牙模塊中使用Android應用程序控制伺服電機。
硬件部件:
Arduino UNO × 1個
HC-05藍牙模塊 × 1個
SG90微型伺服電機 × 1個
軟件應用程序和在線服務:
MIT App Inventor 2
手動工具和制造機:
10個 跳線套件,5厘米長
面包板,170針
伺服電機是一種閉環(huán)系統(tǒng),它使用位置反饋來控制其運動和最終位置。
RC伺服電機在相同的原理上工作。它包含一個小型直流電動機,通過齒輪連接到輸出軸。
輸出軸驅(qū)動伺服臂,并且還連接到電位器(電位計)。
電位計向伺服控制單元提供位置反饋,在此將電機的當前位置與目標位置進行比較。
根據(jù)錯誤,控制單元會校正電動機的實際位置,使其與目標位置相匹配。
通過通過信號線發(fā)送一系列脈沖來控制伺服電機??刂菩盘柕念l率應為50Hz或每20ms產(chǎn)生一個脈沖。脈沖的寬度決定了伺服器的角度位置,這些類型的伺服器通常可以旋轉(zhuǎn)180度
控制線用于傳達角度。該角度由施加到控制線的脈沖的持續(xù)時間確定。這稱為脈沖編碼調(diào)制。伺服器希望每20毫秒(.02秒)看到一個脈沖。脈沖的長度將決定電機旋轉(zhuǎn)多遠。例如,一個1.5毫秒的脈沖將使電動機轉(zhuǎn)到90度位置(通常稱為空擋位置)。如果脈沖短于1.5毫秒,則電動機會將軸旋轉(zhuǎn)到接近0度的位置。如果脈沖長于1.5毫秒,則軸將更接近180度。
電路原理圖:
首先,使用Arduino連接伺服電機。
將兩個伺服電機的黑線連接到Arduino的GND將兩個電機的橙色線連接到Arduino的5V將第一個電機的橙色線連接到Arduino的引腳9
首先,在沒有藍牙的情況下使用以下arduino代碼測試Servo電機掃描功能:
#include 《Servo.h》
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
}
}
輸出結(jié)果:
之后,與Arduino建立藍牙模塊的連接。
將藍牙模塊的VCC連接至Arduino的5V將藍牙模塊的GND連接至Arduino的GND將藍牙模塊的TX連接至Arduino的Rx引腳將藍牙模塊的RX連接至Arduino的Tx引腳
用于藍牙控制的Arduino代碼:
#include 《Servo.h》
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手機的步驟如下:
打開藍牙模塊的電源,然后轉(zhuǎn)到Android設備上的設置。
配對設備。在某些電話上,此步驟必須執(zhí)行兩次才能配對。確保準備好PIN碼(大多數(shù)Bluetooth Mate的默認設置為“ 1234”)》開啟兩個設備的電源》在Android“設置”應用程序的Bluetooth圖標下搜索模塊。
將設備與手機配對后,打開BT Servo應用程序。
使用列表連接到并找到包含文本HC-05的正確設備名稱。
責任編輯:pj
-
伺服電機
+關注
關注
85文章
2048瀏覽量
57860 -
應用程序
+關注
關注
37文章
3268瀏覽量
57703 -
伺服器
+關注
關注
1文章
151瀏覽量
19481
發(fā)布評論請先 登錄
相關推薦
評論