电子技术电子技术
 
转帖:arduino教程——红外遥控舵机
kc2038 2013-9-7 14:49:53
arduino教程——红外遥控舵机

http://www.arduino.cn/thread-1242-1-1.html
有了红外遥控器,有了舵机控制器,进一步,我们就可以实现用红外遥控舵机,更进一步,红外遥控机器人就会成为现实,从而实现机器人各种动作,但要想机器人有一个好的速度控制不至于控制不了它的动作你得好的舵机控制器,要想实现红外遥控的话,得舵机控制器有串口接口,现在使用舵机控制器autumn。那下面以一个例子讲解下红外遥控器调试一个9G舵机。


实验目的:
使用arduino+autumn舵机控制器+红外遥控器+38K红外接收模块 调试遥控舵机转动

红外遥控参考帖子:
http://arduino.cn/thread-1220-1-2.html
,用红外遥控的例程测试出遥控器按键的编码值,记住这些编码值。

使用autumn舵机舵机控制器及指令说明参考此贴:
http://arduino.cn/thread-1199-1-1.html

第一步:
arduino串口发射舵机转动的指令。


代码:


#include <IRremote.h>
  
int RECV_PIN = 11;      //定义红外接收模块输出口接arduino数字引脚11
  
IRrecv irrecv(RECV_PIN);
  
decode_results results;
  
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); //初始化红外遥控
}
  
void loop() {
  if (irrecv.decode(&results)) {
if(results.value==16753245)      //确认接收到的第一排按键1的编码,此码是预先读出来的按键编码。
  {
   Serial.println("#0p500t1a2");   //0号舵机每周期步进1us,步进加速值2us运动到负90度位置;如:1s时候速度为3us2s时候为5us
  }
  else if(results.value==16736925)   //确认接收到的第一排按键2的编码
  {
    Serial.println("#0p2500t1a2");  //0号舵机每周期步进1us,步进加速值2us有负90度位置运动到正90度位置;
  }
    irrecv.resume(); // 接收下一个值
  }
}
第二步:
连接arduino与舵机控制器autumn

              1、红外接收模块输出口接arduino数字口11

              2arduinoRX,TX分别接autumnRX,TX

              3、舵机控制器autumn供电,+-分别接VCCGND,大于3.3V.

第三步:
操作遥控器观察舵机转动。


献上红外1.0.1库:
(23.84 KB)

PS
如果有USBUART模块,可以将USBUART模块一边连接电脑,一边连接舵机控制器,调试舵机的动作,另一方面autumn支持tiny的应用,就可以去掉臃肿的arduino大控制器,只需在tiny中实现写好程序,当接收到按键编码值时,就用串口发送出舵机转动需要的字符串命令。与此同时autumn还扩展出蓝牙接口和无线接口,这时就可去掉arduino,安装上蓝牙或者无线模块,即可实时输入动作,调试舵机的各种动作。

想参与大家的讨论?现在就 登录 或者 注册

nkc production server  https://github.com/kccd/nkc.git

科创研究院 (c)2001-2018

蜀ICP备11004945号-2 川公网安备51010802000058号