PulseCounter

Mono Wireless Inc.

PulseCounter

パルスカウンターを用いたアクト例です。

パルスカウンターは、マイコンを介在せず信号の立ち上がりまたは立ち下りの回数を計数するものです。不定期のパルスを計数し一定回数までカウントが進んだ時点で無線パケットで回数を送信するといった使用方法が考えられます。

アクトの機能

アクトの使い方

必要なTWELITE

役割
親機 MONOSTICK BLUEまたはRED
アクトParent_MONOSTICKを動作させる。
子機 1.TWELITE DIP
2.BLUE PAL または RED PAL +環境センサーパル AMBIENT SENSE PAL

アクトの解説

setup()

// Pulse Counter setup
PulseCounter.setup();

パルスカウンターの初期化を行います。

begin()

void begin() {
    // start the pulse counter capturing
    PulseCounter.begin(
          100 // 100 count to wakeup
        , PIN_INT_MODE::FALLING // falling edge
        );

    sleepNow();
}

パルスカウンターの動作を開始し、初回スリープを実行します。PulseCounter.begin()の最初のパラメータは、起床割り込みを発生させるためのカウント数100で、2番目は立ち下がり検出PIN_INT_MODE::FALLINGを指定しています。

wakeup()

void wakeup() {
    Serial  << mwx::crlf
            << "--- Pulse Counter:" << FOURCHARS << " wake up ---"
            << mwx::crlf;

    if (!PulseCounter.available()) {
        Serial << "..pulse counter does not reach the reference value." << mwx::crlf;
        sleepNow();
    }
}

起床時にPulseCounter.available()を確認しています。availableつまりtrueになっていると、指定したカウント数以上のカウントになっていることを示します。ここではfalseの場合再スリープしています。

カウント数が指定以上の場合はloop()で送信処理と送信完了待ちを行います。

loop()

uint16_t u16ct = PulseCounter.read();

パルスカウント値の読み出しを行います。読み出した後カウンタはリセットされます。