[Arduino] 自動給皂機

因為武漢肺炎要多洗手(應該平時就要養成這個習慣),所以來做個自動給皂機,減少接觸物品。

  • 零件:

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);
  }
}
  • 注意事項:
  1. 馬達的角度需要視馬達的情況而調整,sg90的馬達扭力不足,改為其他扭力更強的馬達,效果會更好。
  2. 馬達間的線,需要固定,在停止狀態時,最好是緊繃的。現用縫衣服的線,若改用釣魚用水線,效果可能會更好。
  • 結果影片: