質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.63%

【8時間ごとに10秒間、12番ピンをHIGH】

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,803

Shomo_

score 15

 決められた時間経過したら、HIGH信号を10秒間送りたい

今、植物に自動的に水やりを行うシステムを作っています。

ArduinoのGND・12番ピン(3.3V)をSSR(ソリッドステートリレー)につなげてます。
Arduinoの12番ピンがHIGHになったときにSSRが通電し、ポンプが駆動
するように設計しています。

問題は12番ピンがHIGHの信号を出す時間が短すぎて、ポンプが1秒未満しか駆動しない点です。
ポンプ駆動を10秒以上にするプログラムをArduinoで記述するにはどう書けばいいのか
教えてもらえませんか。

 未完成のソースコード

#define Volt3 12
unsigned long slp_time = 3600000;

void setup() 
{
  pinMode(Volt3,OUTPUT); 
}

void loop() 
{
  digitalWrite(Volt3,HIGH);
  for(int i=0;i<8;i++)
  {
     delay(slp_time);    
  }
}

 試したこと

記載しましたソースコードをArduinoに焼き込んで、実行。
ポンプがほんのマイクロ秒しか駆動しなかった。

 補足情報

ArduinoのIDEのバージョンは、1.8.3です。
IDEのボードマネージャーは、 "Arduino/Genuino Uno"です。
よろしくお願いします。

 ご回答への返答

➀LOWをどこでしているのか
コード内のloop関数内で一度HIGHにしたあと、delay関数によって8時間
の間、ピン制御ができないので実質的なLOWになってると思いました。

➁delayを入れて、Volt3をLOWに
どこにdelayを入れればいいのでしょうか。

➂ポンプの駆動回路に関して
ういいんって一回動いたのでこちらは問題ありません。
「ピンモードが始めから記述がされていないから動かないのでは」と
思われるかも知れませんが、違うプログラムで作動したためです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

  digitalWrite(Volt3,HIGH);

Highにしてるけど、Lowにはどこでしてるんでしょう

たんに10秒間のディレイを入れて、このポートをLowにするだけですね

それと、そのポートを出力に設定する命令が抜けてますね

# ポンプを駆動する回路が気になるところですが。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/11/01 21:31

    返答頂きありがとうございます。
    プログラムも電子工作も初心者なので苦労の日々ですが
    頑張ります。

    キャンセル

  • 2018/11/01 21:35

    ポートをHighにしたあと、10秒のディレイを入れて、ポートをLowにします
    その後は8時間待つことになります
    って、Highにしたままで駆動できてないってことは、、ヤバイんでは。

    キャンセル

  • 2018/11/01 22:14

    ご回答ありがとうございます。
    教えて頂いてから作動はまださせていませんが、ご指摘頂いた内容に納得し、いけそうな感じがします!
    ありがとうございました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.63%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る