Schriftliche Problemlösung
Beispiel zum Einsatz des AD-Wandlers (Automatisierungstechniker AT06)
ATmega8-Frequenz 3,686411 MHz

(.pdf) zum Öffnen auf die Grafik klicken
Quelle: Daniel K. AT06
ADCSRA = 0b11000110; // AD-Wandler aktiviert; Single Conversion eingestellt und
// und Teilungsfaktor 64 (62,5 KHz )
ADMUX = 1; // Aufruf ADC1 an PORTC 1
while (bit_is_set(ADCSR,6)); // Warten bis Umwandlung von PINC1 erfolgt ist.
{
; // Tue nichts
}
x = ADCW; // WERT der AD-Wandlung wird in x geschrieben
|
Mikrocontroller ATmega8 bei unserem
ASURO mit Taktfrequenz 8 MHz
|
|
Spannung AD-Wandler-
Eingang
|
Dezimalzahl AD-
Wandler
Ausgang
|
Binärzahl AD-Wandler-
Ausgang
|
|
|
|
0,0
V auf Masse gelegt
|
0
|
0000000000 |
|
|
|
0,015
V (Taster K1)
|
3
|
0000000011 |
|
|
|
0,026
V (Taster
K2)
|
5
|
0000000101 |
|
|
|
0,047
V (Taster
K3)
|
9
|
0000001001 |
|
|
|
0,087
V (Taster
K4)
|
17
|
0000010001 |
|
|
|
0,168
V (Taster
K5)
|
33
|
0000100001 |
|
|
|
0,33
V
(Taster K6)
|
65 |
0001000001 |
|
|
|
4,74
V
kein Taster
|
933 |
1110100101 |
|
|
|
5,2
V
VCC angelegt
|
1023 |
1111111111 |
|
|
ASURO's "Gehirn" hat sechs ADC-Eingänge die einzeln mit einem Multiplexer auf einen AD-Wandler mit 10 Bit Auflösung geschaltet werden können.
Was macht so ein ADC eigentlich?
Er wandelt ein analoges Eingangssignal (Spannung) in einen digitalen Zahlenwert um. Hierzu benötigt man eine Referenzspannung, welche gleich der maximal zu messende Spannung ist. Diese wird nun in 1024 (entsprechend 10 Bit Auflösung) Stufen aufgeteilt. Eine an den entsprechenden ADC-Eingangspin angelegte Spannung wird mit diesen gestuften Spannungen verglichen und bekommt den Wert zugewiesen, welcher am nächsten liegt.
Hierzu eine kleines Beispiel:
Die Referenzspannung betrage 5.2V. Die zu messende Spannung 4,74V.:
(nicht 933,4154! Der ADC liefert nur Stufen, also ganze Zahlen!)
Der analoge Spannungswert 4,74V wird vom ADC in den digitalen Wert 933 abgebildet.
|
|