Stap 1: Probleem en oplossing
U zal niet zitten kundig voor krijgen goede kalibratie uit een eenvoudige Arduino met grastrimmers om deze reden: er is geen Low Pass filter op de AVCC ingang op Arduino boards Arduino boards, echte of niet. De enige variatie van de Arduino die ik vond dat heeft het wordt beschreven in dit instructable.
Op de gebruikelijke Arduinos, is de ingang van de AVCC rechtstreeks verbonden met de normale VCC ingang, waardoor spanning fluctuaties wanneer de Arduino is iets anders terwijl het controleren van de analoge ingangen. Meer in het bijzonder, leidt dit tot veel lawaai in de lezingen van de analogRead wanneer de test LEDs op.
Zoals u zal niet kundig voor installeren een spoel op de ingang van de AVCC op de Arduino zitten, hebt u het gebruik van sommige andere bypass. Er zijn drie eenvoudige manieren om het te doen.
1. zet een condensator van 100nF tussen AREF pin en GND. In feite, deze benadering is duidelijk omschreven in het Atmega-gegevensblad, maar een of andere manier het niet maken om de Arduino docs. Het is een goed idee om het GLB er als u ADC (analogReads) in uw projecten, zoals het maakt lezingen meer betrouwbaar. Echter, 'betrouwbaarder' betekent niet 'exacte' – je zult nog steeds wat ruis, maar niet een kritische. Vooral, kunt u nog steeds niet kunnen krijgen van nullen en 1023s in de uitvoer, en, in feite deze fouten elke keer dat u de Arduino aansluit in zal variëren.
2. gebruik een aparte 5v voeding voor de ADC-ingangen. Namelijk, sluit hem aan op de rail die de grastrimmers krijgen hun 5v uit; Vergeet niet de GNDs van beide voedingen om elkaar te verbinden. Zorg ervoor dat u verbinding maakt met de externe voeding na het aanzetten van de Arduino, voor het geval. Deze methode zorgt voor nog beter lezingen, enkele fouten zijn echter mogelijk als gevolg van het verschil tussen de exacte spanningen van twee leveringen zoals (4.98v op Arduino) en 5.23v van de externe energievoorziening. Deze methode is betrouwbaarder, u zal zitten kundig voor zien van nullen en 1023s, maar zal er ruis (check de screenshot hierboven).
Het is mogelijk om deze externe spanning verbinden met de AREF pin, instellen van analogReference() naar externe (dus het veranderen van het ADMUX-register dienovereenkomstig). Een woord van waarschuwing: Ik beveel het niet zoals het is mogelijk om schade van de Atmega-chip, als je iets verkeerd doen. Raadpleeg de instructies hier.
3. de beste resultaten worden bereikt als twee aparte Arduinos worden gebruikt, één voor ADC spullen, de tweede voor test LEDs. Het kan lijken op een overkill, maar in feite is het de beste optie is om twee redenen. Ten eerste, allermeest ons Arduino hobbyisten zijn altijd een stelletje goedkope Chinese Nanos rondslingeren, recht? Ten tweede, en belangrijker, is de praktijk van verschillende controllers wijden aan verschillende taken eigenlijk een aanbevolen. Vooral als deze taken zo verschillend zoals in ons geval zijn: een proberen om exacte voortvloeit uit een nogal zwak Atmega ADC, de andere running power-honger LEDs. Controleer de gestage uitvoer op de screenshot hierboven.