Forum: Mikrocontroller und Digitale Elektronik Frage AD Wandler Mega8


von Reinhard S. (schopfi)


Lesenswert?

Hallo !
Ich habe zu meiner Aquarium Mondlichtsteuerung eine 
Wassertemperaturmessung
hinzugefügt. Ich messe mit einem LM19 von NationalSemiconductor im TO92
Gehäuse.
javascript:openreq('http://www.datasheetcatalog.org/datasheet/nationalsemiconductor/LM19.pdf';)
Der Ausgang des Sensors geht direkt ohne Spannungsteiler an den PC0 des 
Mega8 und meine Referenz ist der AVCC die stabil 5,11 Volt liefert.
Bei einem Tastendruck führe ich in meinem Bascom Programm folgenden Sub 
aus :

Temperatur:
Start Adc
Waitms 200
Ada = Getadc(0)
Waitms 100
Stop Adc
Adb = Ada * 0.00499
Adg = 1.8663 - Adb
Ade = Adg / Grad
X = 6
Waitms 50
Return

Die Ausgabe ans Lcd ist die Zeile

Lowerline
Lcd Fusing(ade , "#.#") ; "Grad"

Läuft ja alles prima, nur wenn ich mehrmals hintereinander drücke habe 
ich immer unterschiedliche Temperaturen.

Die Variable "Grad" im Code ist am Anfang als Constante definiert
Const Grad = 0.001177 (Datenblatte LM19)
und der Wert 1.8663 ist die Spannung bei 0 Grad. (lt.Datenblatt)
Kann das an dem kurzen Einschalten des ADC liegen ?
Sollte ich gleich zu Anfang des Programmes den ADC Starten und immer 
laufen lassen?

Vielen Dank
lg

von CR (Gast)


Lesenswert?

Was sagt das Datenblatt???

von Reinhard S. (schopfi)


Lesenswert?

Habe gerade neu programmiert , jetzt läuft der adc ständig und ich messe 
bei 21 Grad eine spannung am pc0 von 1608mV.
So lt. Datenblatt sollte ich 1621mV bei 21 Grad (rechnerisch) haben.
+/- 0.4% Nichtlinearität macht das dann (min) 1613,3mV.
Ich habe also um 5mV wengiger am PC0.
Wenn ich im Programm vom Endwert 3 Grad abziehe passt die Temp.
hmm....

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.