決められた時間経過したら、HIGH信号を10秒間送りたい
今、植物に自動的に水やりを行うシステムを作っています。
ArduinoのGND・12番ピン(3.3V)をSSR(ソリッドステートリレー)につなげてます。
Arduinoの12番ピンがHIGHになったときにSSRが通電し、ポンプが駆動
するように設計しています。
問題は12番ピンがHIGHの信号を出す時間が短すぎて、ポンプが1秒未満しか駆動しない点です。
ポンプ駆動を10秒以上にするプログラムをArduinoで記述するにはどう書けばいいのか
教えてもらえませんか。
未完成のソースコード
Arduino
1#define Volt3 12 2unsigned long slp_time = 3600000; 3 4void setup() 5{ 6 pinMode(Volt3,OUTPUT); 7} 8 9void loop() 10{ 11 digitalWrite(Volt3,HIGH); 12 for(int i=0;i<8;i++) 13 { 14 delay(slp_time); 15 } 16} 17
試したこと
記載しましたソースコードをArduinoに焼き込んで、実行。
ポンプがほんのマイクロ秒しか駆動しなかった。
補足情報
ArduinoのIDEのバージョンは、1.8.3です。
IDEのボードマネージャーは、 "Arduino/Genuino Uno"です。
よろしくお願いします。
ご回答への返答
➀LOWをどこでしているのか
コード内のloop関数内で一度HIGHにしたあと、delay関数によって8時間
の間、ピン制御ができないので実質的なLOWになってると思いました。
➁delayを入れて、Volt3をLOWに
どこにdelayを入れればいいのでしょうか。
➂ポンプの駆動回路に関して
ういいんって一回動いたのでこちらは問題ありません。
「ピンモードが始めから記述がされていないから動かないのでは」と
思われるかも知れませんが、違うプログラムで作動したためです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/01 12:31
2018/11/01 12:35
2018/11/01 13:14