說明: 伺服電機是一種有輸出軸的小型設備。通過向伺服發送信號,可以將該軸轉到特定角度。
實際上,伺服電機用于無線電控制的飛機中來定位控制面,如升降舵和方向舵。它們還用于無線電控制的汽車,木偶,當然還有機器人。正是因為早期在模型上使用最多,主要用于控制模型的舵面,所以俗稱舵機。 舵機工作分成兩個部分,檢測舵機當前角度以及控制舵機轉到特定角度。 基準信號 舵機內部有一個基準電路,產生周期為20ms、寬度為1.5ms的基準信號;鶞市盘枺1.5ms)與控制信號(0.5ms~2.5ms)相比較,從而判斷舵機應該往何種方向轉動以及轉動的角度大小。 例如,1.5毫秒脈沖(控制信號,周期20ms)將使電機轉到90度位置(通常稱為中性位置)。如果脈沖短于0.5毫秒,則電機將軸轉到更接近-90度。如果脈沖為2.5毫秒,則軸轉接近+90度。 控制信號 舵機的控制信號為Stduino板輸出的PWM信號,周期為20ms,其中脈沖寬度從0.5ms~2.5ms,對應舵盤的0°到180°,呈線性變化。 也就是說,給舵機提供一定的脈寬,它的輸出軸就會保持在一個與之對應的角度上,直到下一個不同的脈寬出現,轉到新的對應角度。 反饋信號 舵機接收來自信號線的控制信號,電機在轉動時,會帶動反饋電位計的轉動,電位計將輸出一個電壓信號到舵機控制板,進行反饋,該信號與控制信號進行比較,從而調整轉動方向與速度,直到反饋信號與控制信號相同。
實驗目的:控制舵機由左向右轉動180°,再反方向轉回。
器材:Stduino Nano/UNO;4位數碼管;杜邦線;SG90舵機
電路連接:
代碼展示: #include <Servo.h>
Servo myServo; //創建一個舵機控制對象
int pos=0; //角度(0~180°)
void setup()
{
myServo.attach(12); // 該舵機由Stduino第12腳控制
myServo.write(pos);
delay(15);
}
void loop()
{
for (pos = 0; pos <= 180; pos += 1)
{
myServo.write(pos);
delay(15);
}
delay(60);
for (pos = 180; pos >= 0; pos -= 1)
{
myServo.write(pos);
delay(15);
}
delay(60);
}
Stduino IDE是一款面向32位處理器快速入門學習的集成開發平臺,目前已經支持Arduino_Core_STM32框架,集聚快捷、高效、免費、開源、易得于一身,軟件還集成了GDB調試功能。IDE當前支持的功能有:
GDB調試
封裝庫下載安裝
代碼自動補全提示
中英文模式
UTF-8\GBK編碼格式
代碼快速格式化
SWD\串口程序下載&調試(已驗證)
DFU程序下載方式(待驗證)
USB HID程序下載方式(待驗證)
maple DFU程序下載方式(待驗證)
maple DFU2程序下載方式(待驗證)
MassStorage程序下載方式(待驗證)
更多功能細節請點擊圖片上水印顯示的網址進行了解
已經支持的芯片&板型列表:
Stduino UNO&Nano
Nucleo 144 boards
Nucleo 64 boards
Nucleo 32 boards
Discovery boards
Eval boards
STM32MP1 series coprocessor boards
Generic STM32F0 boards
Generic STM32F1 boards
Generic STM32F3 boards
Generic STM32F4 boards
Generic STM32H7 boards
Generic STM32L0 boards
3D printer boards
LoRa boards
Electronic Speed Controller boards
Generic flight controllers
Garatronics boards
Midatronics boards
更多功能集成正在進行中~
|