Thermometer mit AD22100            

von Ludwig Schüler        
Elektronik-Labor  Projekte   AVR   T13-Contest



Dieser Wettbewerb kam gerade recht. Ich wollte mich schon seit einiger Zeit wieder einmal mit dem ATtiny13 beschäftigen. Also wurde das Lernpaket Mikrocontroller ausgepackt und das zugehörige Handbuch überflogen. Einige erste Versuche zur Programmierung des Controllers mit BASCOM-AVR [1] und das „Brennen“ mit LPMikro funktionierten auf Anhieb. Das macht Mut Neues zu probieren. Da für ein Arduino-Projekt der Temperatur-Sensor AD22100 von Analog Devices [2]zur Verfügung stand, sollte es also ein Thermometer werden. Um mich mit dem AD-Wandler vertraut zu machen, wurde zunächst ein Potentiometer gemäß Schaltbild angeschlossen.



Das zugehörige Programm zeigt im Terminal die eingestellte Spannung in mV an.


' ADC-Versuch
' Ludwig Schüler 27'04'2013
'
$regfile = "attiny13.dat"
$crystal = 1200000
Baud = 9600

$hwstack = 16
$swstack = 8
$framesize = 10

Dim N As Word

Config Adc = Single , Prescaler = Auto
Start Adc

Open "comb.1:9600,8,n,1,INVERTED" For Output As #1

Do
N = Getadc(2) 'ADC2 = PB4 = PIN3
N = N * 4.887
Print #1 , N ; " mV"

Wait 3
Loop

End



Die ursprüngliche Berechnung des Ausgabewertes N = (N * 5) / 1023 * 1000 wurde verkürzt zu der Gleichung N = N * 4,887 , da die Länge des BASIC - Programms bereits der 75%-Marke des Flash-Speichers bedrohlich nahe kam.




Nun wurde das Poti durch den Temperatur-Sensor AD22100 [3] und zwei weitere Bauteile ersetzt, so wie es das Datenblatt von Analog Devices vorschlägt. Hier findet sich auch die Gleichung zur Berechnung der Temperatur aus dem gemessenen Spannungswert T = (U – 1,375) / 0,0225. Da ich aber den Spannungswert in mV berechnen ließ, lauten die zugehörigen Zeilen im Programm N  =  N  –  1375  und  N  =  N  /  22,5.

' Thermometer mit AD22100
' Ludwig Schüler 28'04'2013
'
$regfile = "attiny13.dat"
$crystal = 1200000
Baud = 9600

$hwstack = 16
$swstack = 8
$framesize = 10

Dim N As Word

Config Adc = Single , Prescaler = Auto
Start Adc

Open "comb.1:9600,8,n,1,INVERTED" For Output As #1

Do
N = Getadc(2) 'ADC2 = PB4 = PIN3
N = N * 4.887
N = N - 1375
N = N / 22.5
Print #1 , N ; " °C"

Wait 3
Loop

End


[1] BASCOM-AVR www.mcselec.com
[2] Analog Devices www.analog.com
[3] Reichelt-Elektronik www.reichelt.de




Elektronik-Labor  Projekte   AVR   T13-Contest