Zeile 52: | Zeile 52: | ||
Do | Do | ||
W = Getadc(channel) | W = Getadc(channel) | ||
− | Print " | + | Print "ADC-Pin " ; Channel ; ": Wert " ; W |
Incr Channel | Incr Channel | ||
If Channel > 7 Then Channel = 0 | If Channel > 7 Then Channel = 0 |
Version vom 2. Mai 2006, 13:56 Uhr
Abkürzung des englischen Begriffs Analog to Digital Converter, im deutschen Sprachgebrauch A/D-Wandler (Analog nach Digital Wandler) oder A/D-Umsetzer genannt.
Allgemeines
Da es in der digitalen Welt nur zwei Zustände gibt um Informationen darzustellen, benötigt man einen A/D-Wandler um analoge Größen in digitale Werte umzuwandeln.
- Merkmale eines A/D-Wandlers
- Auflösung in Bit
- Geschwindigkeit der Umwandlung
- Spannungsbereich in dem Gemessen werden kann
- Größe der Referenzspannung
- Wiederholgenauigkeit
In der Regel werden verschieden hohe Spannungen analysiert und je nach Genauigkeit des Wandlers (Auflösung) ein entsprechender Wert als Zahl zurückgegeben.
- Beispiel der Auflösung eines Wandlers
- liegt der Messbereich zwischen 0V und 5V, bei einer Genauigkeit von 8 Bit, und einer Referenzspannung von ebenfalls 5V, so ergibt der analoge Wert von 0V am Eingang den digitalen Wert 0. Entsprechend 5V am Eingang den Wert 255. Der kleinste messbare Spannungsunterschied liegt so bei ca. 0,02 Volt. Bei einer Auflösung von 10 Bit verringert sich dieser Wert schon auf etwa 0,005 Volt, also 4mal genauer weil 2 Bit mehr Auflösung.
- Beispielgeräte mit integriertem A/D-Wandler
- Soundkarten
- ISDN-Telefone
- DVD-Brenner
- Scanner
- Fax-Geräte
- TV- und Videokarten
In vielen Microcontrollern sind A/D-Wandler enthalten, meistens mit mehreren Eingängen und einer Genauigkeit von 8 bis 10 Bit. Es gibt aber auch eigenständige Bausteine (ICs) die es mit einer Vielzahl von verschiedenen Schnittstellen gibt um an das digitale Ergebnis zu kommen, wie u.a. I2C.
ADC des AVR
In den Atmel AVRs wird das Funktionisprinzip der Sukzessiven Approximation [1] angewandt. Bei einer Auflösung von 10 Bit und einer Frequenz von max. 200kHz. Daraus ergibt sich eine Samplingrate von etwa 15kHz. Eine höhere Frequenz (bis zu 1MHz) ist zwar möglich, resultiert aber in einer Verringerung der Genauigkeit.
AVR ATMega32 Programmierbeispiel
Das Programm misst die Spannung am ersten ADC Pin des Mikrocontrollers und gibt sie über ein Terminal aus. Dann wartet es 800ms und gibt die Spannung am zweiten Pin aus, wartet wieder 800ms, usw.
$baud = 9600 $crystal = 1000000 $regfile "m32def.dat" Config Adc = Single , Prescaler = Auto Start Adc Dim W As Word , Channel As Byte Channel = 0 Do W = Getadc(channel) Print "ADC-Pin " ; Channel ; ": Wert " ; W Incr Channel If Channel > 7 Then Channel = 0 Waitms 800 Loop End
Die gemessene Spannung wird in der Variablen W gespeichert. Channel ist der Pin, an dem die Spannung gemessen werden soll.
Weblinks
- Analog-digital-Umsetzer - hier wird genauer erklärt wie ein AD-Wandler funktioniert, und welche Funktionsprinzipen es gibt.
- [2] - Informationen über Referenzspannungsquellen