Forum: Mikrocontroller und Digitale Elektronik ADC 8/10Bit Spannung Messen


von Martin F. (martin_f70)


Lesenswert?

Hallo, hier mein Code:
1
    ADMUX = 0x00;
2
    ADCSRA = (1<<ADEN)|(1<<ADPS2);
3
    ADMUX = (1<<REFS0)|(1<<ADLAR);
4
    ADMUX |= PC4;
5
6
    ADCSRA |= (1<<ADSC);
7
    while(ADCSRA&(1<<ADSC));
8
 
9
    uint8_t ad = ADCH;

Reicht dies aus um eine Spannungsänderung von 0,2 Volt zu messen?

von Dennis R. (dennis_ec) Flattr this


Lesenswert?

Was sagt das Datenblatt dazu?

von Martin F. (martin_f70)


Lesenswert?

Kannst du mir ne Seite nennen?
Ich kann nicht so gut Englisch und komme mit den Dingern nicht so gut...

von L. P. (lpg)


Lesenswert?

So,
Sag uns doch mal WAS für einen AVR du hast. Dann wär auch noch dein 
Schaltplan ganz nett.

Lg.

von Martin F. (martin_f70)


Lesenswert?

Ich nutze einen ATmega8 und habe am PC5 eine Leitung einer pH-Elektrode 
dran mit einem Pull-Up Widerstand an GND.

von ich (Gast)


Lesenswert?

Martin Fischer schrieb:
> Ich nutze einen ATmega8 und habe am PC5 eine Leitung einer
> pH-Elektrode
> dran mit einem Pull-Up Widerstand an GND.

Entweder du meinst einen PullDown, dann liegt er an GND. Oder es ist ein 
Pull-Up, dann geht er an VCC.
Was macht die pH-Elektrode? Erzeugt die eine Spannung oder ist das ein 
variabler Widerstand?

von L. P. (lpg)


Lesenswert?

Martin Fischer schrieb:
> Ich nutze einen ATmega8 und habe am PC5 eine Leitung einer pH-Elektrode
> dran mit einem Pull-Up Widerstand an GND.

Die Versorungsspannung des Systems wät auch noch gut zu kennen...

von Daniel K. (h3x4g0n)


Lesenswert?

Zu deinem Code:

Martin Fischer schrieb:
> uint8_t ad = ADCH;

Das alleine wird dir nicht viel bringen, da sind nur die oberen 2bit des 
10bit-Ergebnisses drin (bzw. bei 8bit Wandlungen nichts)... Nimm ADC 
oder ADCW und statt uint8_t dann uint16_t...

Außerdem solltest du vor der eigentlichen Messung eine Dummy-Wandlung 
durchführen, damit der ADC "warmlaufen kann"...

Heißt: ADSC 2x schreiben, zweimal while(...), das zweite mal dann den 
ADC Wert auslesen!

Viele Grüße


Anmerkung meinserseits: Hab übersehen, dass du ADLAR = 1 setzt... Dann 
sind im ADCH die Bits 9-2... damit könntest du 0,2V messen... Trotzdem 
lieber ganz auslesen und ganz verarbeiten...

Außerdem: mit welcher Frequenz läuft dein AVR? Vorteiler so wählen, dass 
der ADC mit 50-200kHz läuft!

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.