Ik heb een projectje gestart om iets met een motorfader te doen. Op het moment loop ik tegen het probleem aan dat de waarden welke ik met de interne ADC van een PIC18F8722 niet echt constant zijn.
Ik lees op de loper van de fader een spanning tussen de 0 en 5v uit. Tussen de loper en ground heb ik een 100nF condensator gezet.
Het eerste probleem waar ik tegenaan loop is het bereik wat ik kan inlezen. Bij 4.6V heb ik de maximale digitale waarde al bereikt en ik krijg de digitale waarde nooit 0. Dit heeft waarschijnlijk te maken met de zeners die intern bij de ADC van de PIC zitten. Ik heb gemerkt dat ik dit kan oplossen door de Vref spanningen anders in te stellen. Door Vref- iets boven 0V en Vref+ iets onder 5V te leggen wordt het bereik van de digitale waarde van 0 tot maximaal. Nu komt het: Ik wil eigelijk geen gebruik maken 'aparte' Vref spanningen. Het is uiteindelijk de bedoeling dat het gaat draaien op een PIC welke geen mogelijkheid heeft om de Vref apart in te stellen. Ik ben totaal niet geweldig met analoge elektronica, vandaar de vraag of hier iemand een oplossing voor heeft .
Het volgende punt is de waarde zelf. Van de 10 bits gebruik ik er maar 8. De analoge waarde schommelt niet veel (rond de 10mV) maar blijkbaar toch te veel om een constante digitale waarde op te leveren. Ik heb geprobeerd om met een circulaire buffer samples op te slaan en daar het gemiddelde van te nemen zonder de hoogste en laagste waarde mee te rekenen. Met 10 samples in de buffer rammelt de berekende waarde nog steeds met 1 op en neer. Berekening over 100 samples werkt, de digitale waarde rammelt niet. Echter bij het bewegen van de fader veranderd de digitale waarde niet met de zelfde snelheid mee omdat eerst de buffer compleet moet worden herschreven.
Het doel is dat de fader een constante waarde tussen 0 en 255 opleverd, zonder dat deze op en neer rammelt wanneer de fader stil staat. Heeft hier een goede oplossing voor (digitaal of analoog)?