Aus RN-Wissen.de
Wechseln zu: Navigation, Suche
Rasenmaehroboter Test

(AVR ATMega32 Programmierbeispiel)
Zeile 41: Zeile 41:
 
Das Programm misst die Spannung am ersten ADC Pin des Mikrocontrollers und gibt sie über ein Terminal aus.
 
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.
 
Dann wartet es 800ms und gibt die Spannung am zweiten Pin aus, wartet wieder 800ms, usw.
 
 
   
 
   
 
  $baud = 9600
 
  $baud = 9600
Zeile 57: Zeile 56:
 
   Waitms 800
 
   Waitms 800
 
  Loop
 
  Loop
  End
+
  End  
+
  
 
Die gemessene Spannung wird in der Variablen W gespeichert.
 
Die gemessene Spannung wird in der Variablen W gespeichert.
 
Channel ist der Pin, an dem die Spannung gemessen werden soll.
 
Channel ist der Pin, an dem die Spannung gemessen werden soll.
 
 
  
 
== Weblinks ==
 
== Weblinks ==

Version vom 2. Mai 2006, 17:38 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

LiFePO4 Speicher Test