Flame Sensor Not Triggering Setup
-
I have a 10µF capacitor soldered onto the board of the nRF24.
@OldSurferDude Swap them with 100uf. That improves communication a lot. You might even be able to get rid of the delays
I just hate delays in code.
-
I will consider it for future designs. For now, "if it ain't broke, don't fix it."
(I, too, hate delays)
-
I will consider it for future designs. For now, "if it ain't broke, don't fix it."
(I, too, hate delays)
@OldSurferDude I believe we started with 4.7 Uf, then it was 10Uf and eventually it become 100uf.
Although I still wanna try if0.1 1 and 10 uf in parallel will work better. I believe EEVLOG gave an explanation why that is the best. But I forgot
-
FWIW I am using 47uF * ceramic smd caps but always use delay to allow the data and power line to stablilse between sends.
*I like being different!
@skywatch If I may, how do you introduce a delay between one broadcast and another?
-
I use a message queue, I implemented a long time ago. But all of this shouldn't be needed, as there's a retry built into the MySensors Core.
I do it to give other Nodes the time to send as well. Because sometimes the traffic is really bursty -
ok grazie
-
@skywatch If I may, how do you introduce a delay between one broadcast and another?
@sindrome73 From a recent upgraded node I do it like this....
if (dustAverage > 20.0 && dustAverage < 500.0) {
send(msgDust.set(dustAverage, 2));
wait(200);
}
send(msgQuality.set(dustStrings[x]));
wait(200);
send(msgTemp.set(temperature, 2));
lasttemperature = temperature;
wait(200);
send(msgHum.set(humidity, 2));
wait(200);
send(msgVOC.set(VOC, 2));
wait(200);
send(msgNOX.set(NOX, 2));
}Hope this is clear!
Ciao.
-
@sindrome73 From a recent upgraded node I do it like this....
if (dustAverage > 20.0 && dustAverage < 500.0) {
send(msgDust.set(dustAverage, 2));
wait(200);
}
send(msgQuality.set(dustStrings[x]));
wait(200);
send(msgTemp.set(temperature, 2));
lasttemperature = temperature;
wait(200);
send(msgHum.set(humidity, 2));
wait(200);
send(msgVOC.set(VOC, 2));
wait(200);
send(msgNOX.set(NOX, 2));
}Hope this is clear!
Ciao.
-
@skywatch When I have time I will give you a library. I like code the best when there's no wait or delay in it.
Giving a library means I have to take it out of my code and make it decent xd
@TheoL That is kind of you, but no rush. I have not been building for a while now due to circumstances outside my control.
Maybe you could think of putting it on this site to help others too? Just a thought.
I will be interested to see what you have done and how it is working. :)
-
@sindrome73 From a recent upgraded node I do it like this....
if (dustAverage > 20.0 && dustAverage < 500.0) {
send(msgDust.set(dustAverage, 2));
wait(200);
}
send(msgQuality.set(dustStrings[x]));
wait(200);
send(msgTemp.set(temperature, 2));
lasttemperature = temperature;
wait(200);
send(msgHum.set(humidity, 2));
wait(200);
send(msgVOC.set(VOC, 2));
wait(200);
send(msgNOX.set(NOX, 2));
}Hope this is clear!
Ciao.
@skywatch @sindrome73 This is what I do, too.
Note that it is wait(), which is a MySensors function and not delay(), an Arduino function. wait() checks for MySensors messages, delay() halts all process, thus a message might be missed.