The goal of this project is to get non-blocking analogRead()'s added to Arduino core libraries.
To make the experience fit your profile, pick a username and tell us what interests you.
We found and based on your interests.
chipKIT-core 1.4.0 Non-Blocking Analog Reads.pdfOriginal foils I created after implementing in chipKIT-coreAdobe Portable Document Format - 662.13 kB - 03/23/2017 at 20:29 |
|
|
Last night I submitted a suggestion to try to impliment this on the Arduino Developers form...
https://groups.google.com/a/arduino.cc/forum/#!topic/developers/eTFLXvUiVZA
Create an account to leave a comment. Already have an account? Log In.
I rarely use a D term but good to know. Had never thought about this but a good point.
I use the D term quite a bit. It gets you a faster settling time while controlling the oscillations/overshoots. As with finite derivatives, it is unfortunately prone to noise. :(
Become a member to follow this project and never miss any updates
If you only need a single channel, just need to turn on the free running mode in the ADC, then you can grab the latest results anytime you want. Most microcontrollers have something like this. On chips with DMA, just grab and process whole block of data. Some might even let you specify the channel sequence.
For a PID loop, you want to take the ADC snapshots from a hardware timer and not a software timing loop. Jitters in the sampling time affects the D term in a PID controller. Faster isn't necessarily better.
https://www.chiefdelphi.com/forums/archive/index.php/t-83734.html