Faster temperature sampling and moving average #1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is a large noise in the temperature readings. That makes the projected temperatures unreliable.
Here we add a moving average of 10 samples on top of the temperature readings. The value of 10 is a compromise between noise and latency: ideally we would need at least 100 samples to get a nice smooth signal (according to the measurements from previous runs), but that would be too much latency: MAX6675 needs 200 ms to convert. Assuming the noise is high-frequency, averaging 10 samples should produce smoother temperature readings. The added latency is around 2 seconds, which should be ok.
The heatings controls are updated every 2 seconds. The logic is not changed.
We add an element to the serial output to log which heater has been chosen.