Stap 4: Leren Point - Oversampling op in de Arduino IDE
Zoals gezegd, had ik een doel van 0,001" nauwkeurigheid. Meeste Arduinos hebben een 10 bit analoog naar digitaal converter (ADC). Een signaal dat gemeten is onderverdeeld in een aantal niveaus. In dit geval is dat nummer 2 ^ 10 (of 1024). Mijn gekozen potentiometer is 750 mm lang. Doen de wiskunde shows 10 bit resolutie slechts verlenen mij 0.732 mm (0.028") stappen. Die wordt ervan uitgegaan dat een volledige 5 volt daling in de potmeter.
Dit liet twee opties. Of koop een van de plank hogere bit ADC, of opnieuw in de achtervolging van leren probeer oversampling.
Na snelle googling vond ik "RCguy" oversampling al had uitgevoerd en schreef een mooi bibliotheek voor het uitvoeren van het. Na zijn banden vond ik de originele release van ATMEL detaillerend het. Ik denk dat ik heb sucessfully volgde hun documentatie en het hier en weergegeven in de bovenstaande code uitgevoerd.
Terwijl misschien het iets te simpel, beeld ik als PWM in omgekeerde richting. Na verloop van tijd knevels uw signaal-ruis voor bron- en circuit de lezing tussen twee of meer niveaus. Uitvoeren van een voortschrijdend gemiddelde na verloop van tijd kunt u al uw lezingen, wat resulteert in een veel hogere effectieve aantal bits optellen.
Een waarschuwing, hoe meer bits uw behoefte, de meer monsters (keer) nodig.
In ATMEL's lingo, moet met behulp van 16 effectieve aantal bits die naar mijn mening ik me 0.011 mm (0.00045").