- 簡要說明
通過Arduino接收遙控信号,來控制舵機,實作展示牌打開和關閉效果。
-
成品視訊
http://v.youku.com/v_show/id_XMzU1MDEzMDQzNg==.html
- 成品照片

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哪個是常電,有些車說明書沒有寫,用萬用表測一下就知道了。