天天看點

車載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控制舵機制作展示牌(遙控控制)