diff --git a/mini_beieli_node.h b/mini_beieli_node.h index 47f6d9c..4a3d322 100644 --- a/mini_beieli_node.h +++ b/mini_beieli_node.h @@ -56,7 +56,7 @@ enum { | \****************************************************************************/ -static const int32_t fwVersion = 20200527; +static const int32_t fwVersion = 20200528; static const byte INIT_PACKAGE_INTERVAL = 100; // send an init package every 100 packages; static const byte MAX_VALUES_TO_SEND = 8; diff --git a/mini_beieli_node_nau7802.h b/mini_beieli_node_nau7802.h index 1342909..3a014f2 100644 --- a/mini_beieli_node_nau7802.h +++ b/mini_beieli_node_nau7802.h @@ -96,9 +96,11 @@ long ReadScale(char channel) long readings[num_scale_readings]; // create arry to hold readings for (int i = 0; i < num_scale_readings; i++) { //while (digitalRead(interruptPin) == LOW) { + long mytimer = millis(); while (! myScale.available()) { // we set a timeout of 10 seconds for the measurement... - if ((millis() - startTime) > 10000) { + if ((millis() - mytimer) > 10000) { + // Timeout reading scale... Wire.endTransmission(true); if (debug_level > 0) { gCatena.SafePrintf("Timeout while reading scale...\n"); @@ -107,11 +109,14 @@ long ReadScale(char channel) } delay(1); } - long reading = myScale.getReading(); + long reading; + if (myScale.available()) { + reading = myScale.getReading(); + readings[i] = reading; + } if (debug_level > 0) { gCatena.SafePrintf("Reading: %d\n", reading); } - readings[i] = reading; // fill the array with instantaneous readings from the scale delay(10); }