32路舵机控制器

来自YFRobotwiki
2015年10月27日 (二) 08:56Admin讨论 | 贡献的版本

(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索
生成缩略图出错:文件可能丢失:
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 电子工作室