A/D conversie fout?

Software die niet past in bovenstaande onderwerpen
Berichten: 6
Geregistreerd: 26 Apr 2021, 22:31

A/D conversie fout?

Berichtdoor jawih » 22 Mei 2022, 21:05

ik heb een probleempje:
wanneer ik een analoge ingang een aantal keren achter elkaar uitlees om een nauwkeurig gemiddelde te bepalen blijkt dat de eerste waarde na een reset beduidend lager is dan alle volgende.
Als voorbeeld dit stukje:

void loop() {
for (i = 0; i < 5; i++) {
Serial.print("nr. " );
Serial.print(i+1);// print volgnummer van i
Serial.print(", A4 is " );//tab
Serial.print(analogRead(A4)); //print waarde A4
Serial.print("\t" );//tab
}
Serial.println("" );

De output ziet er dan als volgt uit:

Analoog-IN-4
nr. 1, A4 is 827 nr. 2, A4 is 861 nr. 3, A4 is 861 nr. 4, A4 is 862 nr. 5, A4 is 860
nr. 1, A4 is 859 nr. 2, A4 is 862 nr. 3, A4 is 861 nr. 4, A4 is 862 nr. 5, A4 is 861
Analoog-IN-4
nr. 1, A4 is 829 nr. 2, A4 is 855 nr. 3, A4 is 861 nr. 4, A4 is 860 nr. 5, A4 is 860
nr. 1, A4 is 860 nr. 2, A4 is 860 nr. 3, A4 is 861 nr. 4, A4 is 860 nr. 5, A4 is 857
Analoog-IN-4
nr. 1, A4 is 827 nr. 2, A4 is 861 nr. 3, A4 is 863 nr. 4, A4 is 859 nr. 5, A4 is 859
nr. 1, A4 is 859 nr. 2, A4 is 861 nr. 3, A4 is 863 nr. 4, A4 is 857 nr. 5, A4 is 859
Analoog-IN-4
nr. 1, A4 is 827 nr. 2, A4 is 862 nr. 3, A4 is 862 nr. 4, A4 is 860 nr. 5, A4 is 860
nr. 1, A4 is 860 nr. 2, A4 is 860 nr. 3, A4 is 864 nr. 4, A4 is 854 nr. 5, A4 is 861
Analoog-IN-4
nr. 1, A4 is 829 nr. 2, A4 is 857 nr. 3, A4 is 861 nr. 4, A4 is 861 nr. 5, A4 is 862
nr. 1, A4 is 859 nr. 2, A4 is 860 nr. 3, A4 is 861 nr. 4, A4 is 859 nr. 5, A4 is 859
Analoog-IN-4
nr. 1, A4 is 829 nr. 2, A4 is 861 nr. 3, A4 is 855 nr. 4, A4 is 861 nr. 5, A4 is 859
nr. 1, A4 is 859 nr. 2, A4 is 859 nr. 3, A4 is 860 nr. 4, A4 is 863 nr. 5, A4 is 856
Analoog-IN-4
nr. 1, A4 is 829 nr. 2, A4 is 861 nr. 3, A4 is 861 nr. 4, A4 is 861 nr. 5, A4 is 862
nr. 1, A4 is 862 nr. 2, A4 is 860 nr. 3, A4 is 860 nr. 4, A4 is 863 nr. 5, A4 is 860
Analoog-IN-4
nr. 1, A4 is 831 nr. 2, A4 is 861 nr. 3, A4 is 861 nr. 4, A4 is 861 nr. 5, A4 is 860
nr. 1, A4 is 860 nr. 2, A4 is 859 nr. 3, A4 is 862 nr. 4, A4 is 857 nr. 5, A4 is 860
nr. 1, A4 is 859 nr. 2, A4 is 861 nr. 3, A4 is 859 nr. 4, A4 is 862 nr. 5, A4 is 860


"Analoog-IN-4" wordt direkt na een rest geprint.

In mijn testopstelling maak ik gebruik van de 3,3V op een Nano, een spanningsdeler en dan met de interne referentiespanning.

Het lijkt er op dat de A/D converter eerst een run moet maken voordat het goed werkt maar dat lijkt mij niet de juiste manier.

Wie kan mij hier meer over vertellen?

Advertisement

Berichten: 121
Geregistreerd: 26 Aug 2015, 11:57

Re: A/D conversie fout?

Berichtdoor Frits1956 » 22 Mei 2022, 22:54

Om vertraging tussen het lezen van de poort uit te sluiten zou ik het wat anders benaderen.
Eerst 5x de poort uitlezen en de waarde in een array bewaren en dan pas de waarde naar de monitor schrijven.
Waarom? Een serial.print kost relatief gezien best wat tijd en je maakt er de eerste loop 3x gebruik van en daarna elke 5x voor de volgende read. .....
Mogelijk dat daardoor verschillen zijn

Berichten: 3845
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: A/D conversie fout?

Berichtdoor shooter » 25 Mei 2022, 19:31

Sorry maar dat is normaal, komt door de multiplexer die dus even tijd nodig heeft om op niveau te komen, vaak is tweemaal al genoeg dus lezen en dan nog een keer lezen. en zelfs dan heb je nog instabiele lezingen dus een gemiddelde is altijd beter.
paul deelen
shooter@home.nl

Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast