PulseCounter
A pulse counter counts the number of rising or falling edges of a signal without involving a microcontroller. It can be used to count irregular pulses and send the count via wireless packet when the count reaches a certain number.
Act Functions
- Counts pulses connected to the child device’s DIO8 and sends wireless transmission after a certain time has elapsed or a certain count is detected.
- The child device operates while sleeping.
How to Use the Act
Required TWELITE
Role | Example |
---|---|
Parent | MONOSTICK BLUE or RED Run the act Parent_MONOSTICK . |
Child | 1. TWELITE DIP 2. BLUE PAL or RED PAL + Environmental Sensor PAL AMBIENT SENSE PAL |
Explanation of the Act
setup()
// Pulse Counter setup
PulseCounter.setup();
Initializes the pulse counter.
begin()
void begin() {
// start the pulse counter capturing
PulseCounter.begin(
100 // 100 count to wakeup
, PIN_INT_MODE::FALLING // falling edge
);
sleepNow();
}
Starts the pulse counter operation and performs the initial sleep. The first parameter of PulseCounter.begin()
is the count number 100
to trigger the wakeup interrupt, and the second parameter specifies falling edge detection 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();
}
}
Checks PulseCounter.available()
on wakeup. If available is true
, it means the count has reached or exceeded the specified count. If false
, it goes back to sleep.
If the count is above the specified value, the sending process and waiting for send completion are performed in loop()
.
loop()
uint16_t u16ct = PulseCounter.read();
Reads the pulse count value. The counter is reset after reading.