32路舵機控制器

出自YFRobotwiki
在2015年10月27日 (二) 08:56由Admin對話 | 貢獻所做的修訂版本

(差異) ←上個修訂 | 最新修訂 (差異) | 下一修訂→ (差異)
跳轉到: 導覽搜尋
創建縮圖錯誤: 檔案似乎遺失:
32路舵機控制器


產品簡介


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



引腳說明


32路舵機控制器



  • |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 電子工作室