13-08繼電器的應用

(2016/11/08)

前幾天做了利用Transformer控制繼電器的應用(如天氣熱請開電扇、土壤乾燥請澆灌),發現利用Transformer要一直開著電腦,使用上並不是那麼方便,但如果利用MotoBlockly寫程式來控制繼電器,再將程式燒錄進入Arduino內,只要外部提供電源給Arduino就沒這個問題了,所以趕快來測試看看吧!

題目一:利用繼電器來開燈(扇)

  • 說明:利用Arduino IDE下的「序列埠監控視窗」來輸入1,啟動電扇;輸入其他來關閉電扇!

  • 「繼電器插座DIY」請參閱筆者另一篇文章「13繼電器之應用

  • 裝置圖:

    • 將上面程式轉成Arduino程式語言,並將程式複製到Arduino IDE裡面來上傳(燒錄)到板子上!

char c;void setup(){ Serial.begin(9600); pinMode(9, OUTPUT); c = '0'; Serial.println("Please input \'1\' or others ! 1: turn on the fan ; others:turn off the fan.");}void loop(){ if (Serial.available() > 0) { c = Serial.read(); } if (c == '1') { digitalWrite(9,HIGH); } else { digitalWrite(9,LOW); }}

  • 打開「序列埠監控視窗」,,輸入1或其他,來開啟或關閉電扇!測試成功!

題目二:天氣熱請開電扇

  • 說明:當LM35溫度感測器量測的溫度大於28度時會啟動電扇;否則則關閉電扇!(溫度會顯示在LCD模組上)

  • 裝置圖:

  • 將上面程式轉成Arduino程式語言,並將程式複製到Arduino IDE裡面來上傳(燒錄)到板子上!

    • #include <Wire.h>#include <motoLiquidCrystal_I2C.h>LiquidCrystal_I2C mylcd(0x3F,16,2);int tem;void setup(){ mylcd.init(); mylcd.backlight(); pinMode(9, OUTPUT); tem = 0;}void loop(){ mylcd.clear(); tem = analogRead(A3) * 0.49; delay(100); mylcd.setCursor(0,0); mylcd.print(String("Tempture:") + String(tem) + String("(C)")); if (tem >= 28) { digitalWrite(9,HIGH); mylcd.setCursor(0,1); mylcd.print("Turn on the fan."); } else { digitalWrite(9,LOW); mylcd.setCursor(0,1); mylcd.print("Turn off the fan."); } delay(1000);}

  • 當溫度大於28度時,則開啟電扇!測試成功!