32路舵機控制器
出自YFRobotwiki
產品簡介
32路舵機控制器採用FTDI高性能串口通信芯片FT232RL,使得控制板更快更穩定。用戶可以使用它完成多自由度機器人,機械手臂,雲台或多足機器人等的驅動。它可以對舵機進行定速,定時控制;並且兼容多種品牌舵機。板子引出藍牙接口,可以實現無線遠程控制。
規格參數
- 輸出通道:32路(脈衝調製輸出或TTL電平輸出)
- 舵機供電:根據實際使用舵機額定電壓供電,典型 DC4.8V~6V
- 邏輯供電:DC7.5V~15V或者USB供電
- 驅動分辨率:1US,0.09度
- 通信接口:USB/TTL串口接口
- 波特率:2400、9600、38400、115200
- 尺寸:54*71.5mm
- 模塊重量:2.3g
引腳說明
- |16-31號舵機,共用同一電源,電流最大10A。其中G為GND,V為舵機電源,S為信號線。
- 0-15號舵機,共用同一電源,電流最大10A。其中G為GND,V為舵機電源,S為信號線。
- 主控MCU,ATMEGA8L-PU,工作頻率14.7456M。
應用示例
提示:以下程序需使用到 IRremote庫文件,文件下載地址見頁末 - 參考資料。下載後將其解壓至arduinoIDE安裝目錄/libraries文件夾中,例如: "D:\Program Files\Arduino\arduino-1.6.4-windows\arduino-1.6.4\libraries"。
電路連接示意圖
- 紅外接收模塊的 G、V、S分別連接 Arduino UNO的GND、VCC(+5V)、D11引腳。
示例代碼
示例一:獲取鍵值
/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print("irCode: ");
Serial.println(results.value, HEX);
delay(200);
irrecv.resume(); // Receive the next value
}
}
程序下載地址:IRrecvDemo
程序運行結果:接收按鍵值,並串口打印。偶爾出現 "FFFFFFFF" 碼值,屬於正常現象,可適當延長延時時間。
最終整理按鍵值表格:
| 遙控器字符 | 鍵值 | 遙控器字符 | 鍵值 |
| 紅色/關閉鍵 | 0xFFA25D | MENU | 0xFFE21D |
| TEST | 0xFF22DD | + | 0xFF02FD |
| 返回鍵 | 0xFFC23D | 快退/左2三角 | 0xFFE01F |
| 播放/一個三角 | 0xFFA857 | 快進/右2三角 | 0xFF906F |
| 0 | 0xFF6897 | - | 0xFF9867 |
| C | 0xFFB04F | 1 | 0xFF30CF |
| 2 | 0xFF18E7 | 3 | 0xFF7A85 |
| 4 | 0xFF10EF | 5 | 0xFF38C7 |
| 6 | 0xFF5AA5 | 7 | 0xFF42BD |
| 8 | 0xFF4AB5 | 9 | 0xFF52AD |
示例二:紅外遙控
// Infrared remote control test
#include <IRremote.h>
int RECV_PIN = 11;
int LED_PIN = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
pinMode(LED_PIN,OUTPUT);
irrecv.enableIRIn(); // Start the receiver
}
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value, HEX);
controlLED(&results);
irrecv.resume(); // Receive the next value
}
}
//Control the LED
void controlLED(decode_results *results) {
switch(results->value){
case 0xFFA25D:
digitalWrite(LED_PIN,LOW);
break;
case 0xFFE21D:
digitalWrite(LED_PIN,HIGH);
break;
}
}
程序下載地址:IRrecvControl
程序運行結果:按“MENU”按鈕,點亮LED,按下“關閉”按鈕,關閉LED。
參考資料
更多建議和問題歡迎反饋至 YFRobot論壇
購買方式:YFRobot 電子工作室
