Der Analog-Digital-Wandler

Der Atmega hat einen eingebauten Analog-Digital-Wandler mit 10bit Auflösung. Die Eingangsspannung darf nur zwischen 0V und +5V (gemessen gegen die Bezugsmasse GND liegen, höhere Spannungen zerstören den Microcontroller. Zur Sicherheit ist deshalb eine Eingangsdiode, ein Schutzwiderstand und eine Zenerdiode eingebaut, so dass die Spannung sicher unter den +5V bleibt.

Ohne Schutzschaltung entspricht der Wert 0V dem digitalen Wert 0 und +5V dem Wert 1024. Bevor man mit dem ATMEGA nun Spannungen messen kann, muss man ihn eichen. Dazu gibt es zwei Möglichkeiten:

Entweder legt man eine externe Spannung von genau 5V an und bestimmt den Wert den der ADC zurückgibt. Im Beispiel wäre das 1008. Nun teilt man 5V durch 1008 und erhält so den Eichfaktor. Diesen multipliziert man dann mit dem Messwert und erhält dan den zugehörigen Wert in der Einheit Volt.

Man kann auch die Betriebsspannung des Atmega-Boards benutzen. Diese liegt bei rund 4,7V (mit einem guten Messgerät nachmessen). Die Vorgehensweise ist dann identisch wie bei dem ersten Eichexperiment.

Config Adc = Single , Prescaler = Auto , Reference = Avcc
 Diese Grundeinstellungen sind in der Vorlgagendatei enthalten
Start Adc
 Startet den ADC (nur einmal verwenden)
Spannung = Getadc(0)
 Der Variabel Spannung wird der Messwert des ADC zugeordnet

Ein Beispielprogramm für ein einfaches Voltmeter ist in der Datei adc_atmega.bas zu finden.

Ein Hinweis zur Messgenauigkeit:
Die Auflösung von 10bit entspricht ungefähr einer digitalen Genauigkeit von 0,005V bei 5V, die Genauigkeit des ADC selbst wird mit +/-2Digit angegeben, damit lassen sich Spannungen ungefähr +/-0,02V genau messen. Das reicht für viele Anwendungen aus. Der erweitere Messbereich von 50V wird durch einen Spannungsteiler erreicht. Damit lassen sich dann Spannungen +/-0,2V genau bestimmen.