Digital Precisionstabell såg med Arduino översampling (4 / 7 steg)
Steg 4: Lärande punkt - översampling på i Arduino IDE
Som sagt, hade jag ett mål av 0,001" noggrannhet. De flesta Arduinos har en 10 bitars analog till digital omvandlare (ADC). Någon signal uppmätt bryts i vissa antal nivåer. I det här fallet antalet är 2 ^ 10 (eller 1024). Min valda potentiometern är 750 mm långa. Gör math visar 10 bitars upplösning bara ge mig 0.732 mm (0.028")-steg. Som utgår från en full 5 volt droppe över potentiometern.
Detta lämnade två alternativ. Antingen köpa en av hyllan högre bitars ADC, eller försök igen översampling i jakten på lärande.
Efter Snabb googling hittade jag "RCguy" hade redan utfört översampling och skrev ett trevligt bibliotek för att utföra den. Efter hans länkar hittade jag den ursprungliga ATMEL släppa beskriver det. Jag tror jag har framgångsrikt följt deras dokumentation och genomfört det här och visas i koden ovan.
Samtidigt kanske manipulera det något, bild jag det som PWM i omvänd ordning. Med tiden växlar din signal source och krets brus i behandlingen mellan två eller flera nivåer. Fungerar ett glidande medelvärde över tid kan du summera alla dina avläsningar vilket resulterar i en mycket högre effektiv antal bitar.
En varning, de mer bitarna din nöd, de mer prover (tid) som krävs.
I ATMEL'S lingo, bör jag använda 16 effektiva antalet bitar som jag tror ger mig 0.011 mm (0.00045").