因為武漢肺炎要多洗手(應該平時就要養成這個習慣),所以來做個自動給皂機,減少接觸物品。
- 零件:
sg90伺服馬達*2,紅外線感測器*1,(Arduino Nano + 擴充板)*1
- 接線:
左邊馬達 | 右邊馬達 | 紅外線感測器 | Arduino |
橘 | 5S | ||
紅 | 5V | ||
棕(或黑) | 5G | ||
橘 | 3S | ||
紅 | 3V | ||
棕(或黑) | 3G | ||
OUT | 7S | ||
VCC | 7V | ||
GND | 7G |
- 程式碼:
#include <Servo.h> // <>改為半形,用全形網頁才能顯示,但是 arduino ide 編譯不過 Servo myservoR, myservoL; // 建立Servo物件,控制伺服馬達 int servoRPin = 3; int servoLPin = 5; int irPin = 7; void setup() { Serial.begin(9600); myservoR.attach(servoRPin); // 連接數位腳位servoRPin,伺服馬達的訊號線 myservoL.attach(servoLPin); // 連接數位腳位servoLPin,伺服馬達的訊號線 myservoR.write(170); // 一開始先170度 myservoL.write(10); // 一開始先10度 pinMode(irPin, INPUT); } void loop() { int moist; moist = digitalRead(irPin); Serial.println(moist); // 靠近時,轉動馬達 if (moist == 0) { myservoR.write(10); myservoL.write(170); delay(20); } else // 遠離時,恢復馬達 { myservoR.write(170); myservoL.write(10); delay(20); } }
- 注意事項:
- 馬達的角度需要視馬達的情況而調整,sg90的馬達扭力不足,改為其他扭力更強的馬達,效果會更好。
- 馬達間的線,需要固定,在停止狀態時,最好是緊繃的。現用縫衣服的線,若改用釣魚用水線,效果可能會更好。
- 結果影片: