Forum: Projekte & Code low cost Voltmeter Spannungsmesser ATmega8 Assembler


von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Ein kleines Beispiel eines preiswerten Voltmeters, welches sich selber 
"kalibrieren" kann.

Besonderheit: Der Spannungsteiler (R1)(R2) ist nahezu "unkritisch", da 
durch die Kalibrierung wichtige internen Werte errechnet werden.

LED grün: Lebenslicht
LED gelb: EEPROM save
LED rot : Eingangsspannung zu unruhig, Überlauf ADC, Error

Diese Version steuert ein LCD DOGM081 im 5V SPI Modus.

Anzeige-Beispiel bei ProgrammStart:

"Bernhard" - Werbung ^^
"10/2017"  - Version
"Uref 2V"  - Referenzspannung
"^29.738"  - maximal mögliche Messspannung
"S: 212"   - Anzahl Programmstarts
"save"     - speichern im EEPROM
"--------" - bereit
"10.00 V " - Messergebnis

Kalibriervorgang:

- eine Taste schaltet die Referenzspannung um (2,5V, 5V, extern)

- definierte Eingangsspannung anlegen (5V oder 10V oder 20V)

- entsprechende Kalibriertaste betätigen

Anzeige-Beispiel bei Kalibriervorgang:

"Uref 2V"  - Referenz
"Kalibrie" - Kalibriermodus
"*10.000"  - Eingangsspannung
"ADC 0344" - ADC Wert bei Kalibrierung
"^29.738"  - maximal mögliche Messspannung
"save"     - speichern im EEPROM


Der ADC-Messvorgang:

Es werden mindestens 2 Messzyklen mit je 256 ADC Messungen durchgeführt 
und die Ergebnisse miteiander verglichen.
Sind sie ungleich, erfolgt eine weitere Messung, bis zwei Messungen 
gleich sind.

Ist die Eingangsspannung zu "zappelig" leuchtet die rote LED.

Sobald der ADC einen einzigen Maximalwert ermittelt, erfolgt eine 
Fehlermeldung "--------".

Die Anzeige des Spannungswertes wird nur nach einer Änderung neu 
geschrieben, um ein ev. Flimmern zu verhindern.




PS: Der Assemblercode ist nicht optimal, für Hinweise bin ich sehr 
dankbar.

Bernhard

: Bearbeitet durch User
von OS (Gast)


Lesenswert?

Und was willst Du uns jetzt damit sagen ?
Wenn ich das mit dem Auto Kalibrieren mal weg las, ich kann das ganze 
Modul bei Ebay für 3,95€ aus China bestellen.
Die machen das auch mit einem ATmega Controller.
Den Abgleich kann ich bei den China Modulen per Poti machen das drauf 
ist,nicht bei allen Modulen, aber ich habe so eins bekommen.

von Bernhard S. (bernhard)


Angehängte Dateien:

Lesenswert?

Das ist so ein "billig" Teil... nach einem halben Jahr schrott... weil 
billig

Und:

- für höhere Spannungen wird ein Zusatzmodul benötigt
- Ziffernhöhe ist geringer
- ohne Hintergrundbeleuchtung
- Zahlenwerte schlecht lesbar bei Dunkelheit
- leuchtet nicht so schön ^^

Trotzdem danke für den sehr lesenswerten Beitrag.

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

OS schrieb:
> Und was willst Du uns jetzt damit sagen ?

..., daß Er eine Lösung für ein sich Ihm gestelltes Problem in Assembler 
ersrbeitet hat.

Was hast Du, außerhalb des Arduino C & P - Kosmos so bisher getrieben?

Nichts gegen Arduino (wobei ein Teil Dessen Benutzer ... äh, ja), aber 
hast Du auch nur 1x ein LCD 'zu Fuß' benutzt?
Auch scheint mir eine Kalibrierung der Festwiderstände durch einen 
internen Korrekturwert sicherer, als die Stellung eines Poti.

MfG

: Bearbeitet durch User
von Frickelfritze (Gast)


Lesenswert?

Bernhard S. schrieb:
> Ein kleines Beispiel eines preiswerten Voltmeters, welches sich selber
> "kalibrieren" kann.

Unter "selbst kalibrieren" verstehe ich dass ein Gerät eine
eigene Referenz hat die es beim kalibrieren eigenständig zu-
schaltet.

von Bernhard S. (bernhard)


Lesenswert?

>...verstehe ich dass ein Gerät eine
>eigene Referenz hat die es beim kalibrieren eigenständig zu-
>schaltet.

Beide Bedingungen sind erfüllt, es besitzt eine eigene Referenz (ADC) 
und sie schaltet sich automatisch zu.

Aber Du hast Recht, eine Tastendruck ist erforderlich. Eine 
Sprachsteuerrung könnte mit einem ATmega8 schwierig werden ;-)

Und der Eingang muss mit einer hinreichend genauen Spannung gespeist 
werden,   ist aber zu schaffen ^^

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.