1

私はarduinoの初心者です。私が必要なのは、彼に特定の時間に何かをさせて、それが過度に機能しないように眠らせることです.

具体的なタスクは次のとおりです。金魚に餌をやるメカニズムを彼に開始してもらいたいので、休暇中は arduino を 10 日以上動作させる必要があります (これがスリープ モードの理由です)。

この問題を調査しているときに、時間の中断を思いつきましたが、これが最善の解決策だとは思いません。タスクを中断するのではなく、特定の時間に何かをしてもらいたいからです。

どんな種類の助けにも感謝します:)

4

4 に答える 4

0

クロックを使用してデバイスをリセットするという@Joshのソリューションが気に入っていますが、ミリ秒単位で餌を与えられないと魚が死ぬ場合の別のアイデアを次に示します。

于 2012-12-13T23:55:36.163 に答える
0

30 秒ごとに 20 秒間のイベントを開始するなど、簡単なことを試すことができます。

#include <Wire.h>
#include "RTClib.h"

RTC_DS1307 rtc;

void setup () {
  Serial.begin(57600);
#ifdef AVR
  Wire.begin();
#else
  Wire1.begin(); // Shield I2C pins connect to alt I2C bus on Arduino Due
#endif
  rtc.begin();

  if (! rtc.isrunning()) {
    Serial.println("RTC is NOT running!");
  }
}
 boolean pumpOn = false;
void loop () {
    DateTime now = rtc.now();

    if(now.second()%30==0){ pumpOn=true;}
    if(now.second()%50==0){ pumpOn=false;}
    if(pumpOn)
      Serial.println("on");
}
}
于 2015-02-11T23:57:13.727 に答える
0

millis() メソッドを使用します。50日後にリセットされますが、そんなに長く旅行されることはないと思います...

unsigned long hours4nextFeeding = 8;
unsigned long lastTime = millis();
void loop() {
    if(millis() > (lastTime + (hours4nextFeeding*3600*1000))) {
        feedTheFish();
        lastTime = millis();
    }
    delay(60000);
}

また、光センサー(超安価)を使用して、太陽が昇ったときに1日1回魚に餌をやることができます

私が書いたばかりのコードはテストされていませんが、アイデアは得られるはずです。

于 2012-12-21T19:01:09.293 に答える
0

電源レギュレーターと USB ポート (存在する場合) がかなりの電力を消費するため、標準の Arduino ボードはそれほど電力を節約しないと読みました。ただし、外部クロックを使用してデバイスのウェイクアップをトリガーする場合、使用できる単純な arduino ライブラリEnerlibがあります。

Engblaze には自分でそれを行う方法についての素晴らしい記事がありますが、arduino を初めて使用する場合は、AVR ライブラリに飛び込みたくないかもしれません。

于 2013-07-25T18:29:03.690 に答える