天天看点

车载Arduino控制舵机制作展示牌(遥控控制)

  • 简要说明

通过Arduino接收遥控信号,来控制舵机,实现展示牌打开和关闭效果。

  • 成品视频

    http://v.youku.com/v_show/id_XMzU1MDEzMDQzNg==.html

  • 成品照片
车载Arduino控制舵机制作展示牌(遥控控制)

1.接线:

红外接收模块和舵机均接到Arduino上。(不需连接红外发射头),具体接到哪个口参见以下代码中注释。

2.代码:

#include <IRremote.h>   // IRremote库声明

#include <Servo.h>    // 声明调用Servo.h库

Servo myservo;        // 创建一个舵机对象

int pos = 0;          // 变量pos用来存储舵机位置

int RECV_PIN = 10;     //定义红外接收器的引脚为10

int led_pin = 13;     //定义LED针脚以便关闭板载LED灯

IRrecv irrecv(RECV_PIN);

decode_results results;

bool open_status=false;

void setup() { 

    myservo.attach(9);     // 将引脚9上的舵机与声明的舵机对象连接起来

    Serial.begin(9600); 

    irrecv.enableIRIn();    // 启动接收器 

    pinMode(led_pin, OUTPUT);

    digitalWrite(led_pin, LOW);

    myservo.write(0);

    delay(15);

void loop() { 

  if (irrecv.decode(&results)){

    //Serial.println(results.value);

    if ((results.value==16718055)and(open_status==false)){

      for(pos = 0; pos < 170; pos += 1){    // 舵机从0°转到180°,每次增加1°          

        myservo.write(pos);           // 给舵机写入角度   

        open_status=true;

        delay(15);                    // 延时15ms让舵机转到指定位置

        }

    }

    if ((results.value==16730805)and(open_status==true)){

      //for(pos = 170; pos>=1; pos-=1) {    // 舵机从180°转回到0°,每次减小1°                               

        myservo.write(0);        // 写角度到舵机  

        open_status=false;   

        delay(15);                 // 延时15ms让舵机转到指定位置

      //}

    }

    irrecv.resume(); // 接收下一个值

    delay(1000);

   } 

}

3.车辆取电

从保险盒取,注意,一般取ACC,不要用常电;有些车说明书上有写哪个保险是ACC哪个是常电,有些车说明书没有写,用万用表测一下就知道了。

车载Arduino控制舵机制作展示牌(遥控控制)