//自動門 #include <Servo.h> Servo myservo; int sensorValue = 0; const int IR_InPin = A3; // A3 接上 IR const int Ledred_OutPin = 10; const int Ledgreen_OutPin = 11; const int BezzerPin = 9; void setup() { Serial.begin(57600); myservo.attach(4); //360度伺服馬達接第4腳 pinMode(IR_InPin, INPUT); pinMode(BezzerPin, OUTPUT); pinMode(Ledred_OutPin, OUTPUT); pinMode(Ledgreen_OutPin, OUTPUT); } void loop() { sensorValue = analogRead(IR_InPin); myservo.write(90); if (sensorValue >= 360){ myservo.write(50); // 順時針轉 (開門) digitalWrite(Ledred_OutPin, HIGH); //10 tone(BezzerPin, 1000, 100); delay(2500); //運轉 2.5秒 myservo.write(90); tone(BezzerPin, 100, 10); digitalWrite(Ledgreen_OutPin, HIGH); digitalWrite(Ledred_OutPin, LOW); delay(10000); //開門時間 10秒 digitalWrite(Ledgreen_OutPin, LOW); digitalWrite(Ledred_OutPin, HIGH ); myservo.write(180); // 逆時針轉 (關門) tone(BezzerPin, 100, 10); delay(2500); //運轉 2.5 秒 tone(BezzerPin, 1000, 100); digitalWrite(Ledred_OutPin, LOW); myservo.write(90); //馬達停止 } myservo.write(90); } // 360 度馬達 90 為停止 0-89順時針轉 , 91-180 逆時針轉
利用智高 1247A 的套件, 以 Arduino 程式直接燒錄在板子上, 完成一個自動門
當車子行經此門, IR 感應到後, 門會開啟 10 秒鐘的時間, 之後再行關閉
2017-03-14