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