NTC-Temperaturlogger mit TINY13

von Wolfram Herzog
 aus ELO 2008
Elektronik-Labor  Labortagebuch  ELO  Mikrocontrolle

1


Für ein Schulprojekt im naturwissenschaftlichen Unterricht wurde eine Lösung zum Erfassen von Temperaturen über mindestens 24 Stunden gebraucht. Also wurde diese Anwendung mit dem Lernpaket Mikrocontroller realisiert. Ein Temperaturlogger, der mittels eines NTC-Widerstandes die Temperatur misst und die Werte im EEPROM des TINY13 speichert.

 

Die Hardware:

Stückliste:
Neben dem Lernpaket werden folgende Bauteile benötigt:

1 NTC Widerstand 1 k
1 Widerstand 1k5
1 Drahtbrücke rot
1 Drahtbrücke blau

 

Hier das Schaltbild:

 


 

Bedienung:

Der Messmodus ist aktiviert, wenn die blaue Drahtbrücke fehlt. Wird die Platine mit Strom versorgt, beginnt die LED im Minutentakt zu leuchten. Damit befindet sich die Schaltung im Messmodus und macht alle 60 Minuten eine Messung, deren Ergebnis im EEPROM gespeichert wird. Es können maximal 32 Messungen gespeichert werden. Sind 32 Messungen gemacht, stoppt der Messvorgang und die LED hört auf zu blinken.

Natürlich kann die Schaltung auch mit einer Batterie betrieben werden. Dazu beachte man die Seite 145 des Handbuches zum Lernpaket. Dort sieht man wie mit einer 9-V-Blockbatterie eine externe Versorgung realisiert werden kann. Der 10-k-Widerstand zwischen PIN3 und 5 ist dabei wichtig, sonst läuft die Software nicht an.

Um die erfassten Messwerte auf den PC zu übertragen, muss der Ausgabemodus aktiviert werden. Dazu wird die im Schaltplan blau eingezeichnete Drahtbrücke gesteckt. Dann wird die Platine wie gewohnt mit dem PC verbunden.

Das LPmikros-Programm wird in den Terminalmodus gebracht. Durch Ein- und Ausklicken des RTS Kästchens wird der Auslesevorgang gestartet. Die Messwerte erscheinen im Fenster „Bytes empfangen".

 

 

Da der AD-Wandler mit 10 bit misst, wird jeder Messwert in 2 Byte gespeichert. Die Daten können dann z.B. in EXCEL weiterverarbeitet werden. Dazu wird das erste Byte mit 256 multipliziert und der zweite Wert addiert. Dies ergibt den Messwert des AD-Wandlers. Bei 5 V ergibt dies eine Spannung von 0,0048 Volt pro Bit. Ein Messwert von 568 ergibt dann 2,773 Volt. Über die NTC Kennlinie kann die dazugehörige Temperatur von ca. 25,4 Grad ermittelt werden.

Beispielmessung

 

Statt des NTC Widerstandes kann z.B. auch ein LDR angeschlossen werden, um z.B. Helligkeitswerte aufzuzeichnen. Hier sind der Phantasie keine Grenzen gesetzt.

 

Die Software:

Das Programm ist in Assembler geschrieben und mit vielen Kommentaren versehen. Nach der Initialisierung der Ports wird PB0 abgefragt. Ist die blaue Drahtbrücke gesteckt, geht das Programm in den Ausgabemodus. Hier werden alle 64 Bytes des EEPROM seriell ausgegeben. Die Routinen dafür wurden aus den Beispielen des Lernpaketes übernommen.

Fehlt die Drahtbrücke, wird der Timer und der AD-Wandler initialisiert. In einer Interruptroutine wird eine zweistufige Zählschleife realisiert, die in der ersten Stufe die LED im Minutentakt blinken lässt. In der zweiten Stufe wird die eigentliche Messroutine aufgerufen. Hier kann mit der Variablen „messintervall" eingestellt werden, nach wie viel Minuten eine Messung erfolgt. Standardmäßig sind hier 60 Minuten eingestellt. Es wird also Wert pro Stunde ins EEPROM geschrieben.

 

Download der Firmware