Datenlogger mit PIC

nur Projekt (keine Software)

zurück zu Projekte , PIC-Prozessoren , Elektronik , Homepage


Allgemeines
Der 16F876 besitzt einen 8k großen Flash-Programmspeicher auf den er auch schreibend zugreifen kann. Das ist für ausreichend, um darin neben einem Programm auch große Datenmengen unterzubringen. Ein Gerät, das während eines langen Zeitraums Daten misst oder empfängt und speichert ist ein Datenlogger. Der 16F876 eignet sich ideal dazu einen solchen Datenlogger mit minimaler Hardware aufzubauen.
Um die Daten aus dem Datenlogger wieder auszulesen, bietet sich die RS232-Schnittstelle des 16F876 an.
Nach dem Zuschalten der Betriebsspannung überträgt der PIC die im Flash abgelegten Daten.(dauert 10 Sekunden) danach beginnt er mit einer neuen Aufzeichnung.



Temperatur-Logger
Wie kalt war es letzte Nacht im Garten? Zur Beantwortung dieser Frage gibt es aufwendige 'Wetterstationen' mit Funktemperatursensoren und grobauflösenden, grafischen Displays (Bargraphanzeige). Eine gute Anzeige des Temperaturverlauf bieten aber nur Geräte mit PC-Anschluss ab 250 €.
Diese Geräte können in der Regel deutlich mehr als nur eine Temperaturmessung, wodurch ihr Preis durchaus gerechtfertigt ist. Will man aber nur die Temperatur aufzeichnen (um z.B. zu prüfen, ob bei Tiefkühlkost die Kühlkette nicht unterbrochen wird) ist ein Temperatur-Logger die bessere Lösung.

Einen kleiner Temperatur-Logger kann man auch direkt zwischen die Kohlköpfe im Garten legen, und ihn nach Stunden oder Tagen wieder einsammeln und am PC auslesen. Wird jede Minute eine Messung durchgeführt, reicht der Flash-Speicher des 16F876 (je nach gwählter Auflösung) wenigstens für 4 Tage, bei Bedarf aber auch eine Woche.

Um den Hardwareaufwand gering zu halten, kann man die von Microchip in der AN828 vorgeschlagene Temperaturmessung über den WDT benutzen. Sie nutzt die Temperaturabhängigkeit der Frequenz des WDT-RC-Oszillators zur Temperaturmessung, kommt also ohne jegliche externe Bauelemente aus. Microchip erreichte bei einem 16F84A im Temperaturbereich von -40°C bis +55°C eine Genauigkeit von 1°C. Für den Garten sollte das reichen, für Tiefkühlkost auch.

Um den Stromhunger des PIC zu minimieren, muss ein kleiner PIC-Takt oder der Sleep-Modus gewählt werden:

Der hier gezeigte Temperaturlogger ist mit einem Temperatursensorchip LM75 ausgestattet. Dieser Chip ist über einen I2C-Bus an den 16F876 angeschlossen.
Die Schaltung ist für einen möglichst geringen Stromverbrauch optimiert. Zwischen 2 Messungen wird der LM75 abgeschaltet, und der PIC geht in den Sleep-Modus. Dabei bleibt der Timer1 aktiv, und wird asynchron mit dem Takt des Uhrenquarzes an RC0/RC1 getaktet.
Timer1 weckt den PIC regelmäßig aus dem Slepp-Modus auf, um eine Messung durchzuführen.

Während der Datenerfassung bleibt der RS232-Treiber abgeschaltet, um Strom zu sparen.

Stromlaufplan für einen Temperaturlogger
Die Stromaufnahme im Sleep-Modus liegt bei 30 µA, während der Messung bei ca. 5 mA. Die Speisung erfolgt direkt aus einer Batterie (3 x  1,5V). Auf einen Spannungsregler wird verzichtet, da er mehr Strom verbrauchen würde als der Rest der Schaltung.


Tastaturlogger
 
Das sollte eher eine Warnung als ein Vorschlag sein!

Ein PIC16F876 in einem kurzen Adapterkabel zwischen PC-Tastatur und PC. verschwindet unauffällig an der PC-Rückseite. Hier hat der PIC keine Stromversorgungsprobleme (+5V liegen im Kabel) und kann in aller Ruhe 6000 Tastanschläge aufzeichnen (im Flash-Speicher), in der heutigen mausdominierten Windowswelt reicht das über mehrere Tage. Schon weiß man, was die eigenen Kinder im Inernet suchen, oder jemand anders weiß welches Passwort Sie vorhin eingetippt haben.

Für das Passwort reicht auch ein kleiner 12F629, der immerhin 128 Tastanschläge in seinem EEPROM speichern kann und dabei praktisch ohne externe Bauelemente auskommt

Wie man die Daten einer PS2-Tastatur mit einem PIC einlesen kann, ist in der Microchip-Application TB056 beschrieben. Von mir gibt es dafür natürlich keine Software.

Überprüfen Sie doch mal gleich das Tastaturkabel ihres PCs!

Stromlaufplan eines PS-2-Loggers



Spannungslogger

Wer langsame Spannungsänderungen aufzeichnen muss (z.B. die Entladungskurven von Akkus) kann dazu einen Digitaloszi, oder einen PC mit AD-Wandlerkarte benutzen. In beiden Fällen ist teure Technik für lange Zeit blockiert. (Sicherlich könte man auf dem PC parallel andere Dinge erledigen, aber bitte nichts kompliziertes. Nach einem Absturz wären die Akku-Daten verloren.)

Der PIC16F876 hat 5 Analogeingänge, mit denen er sich zum Spannungslogger eignet. Die 10-Bit  ADC-Werte des PIC passen sogar komplett in jeweils eine Flash-Zelle.
Werden 4 Akkus überwacht, und wird von jedem Akku alle 15 Sekunden die Spannung gemessen, reicht ein 16F876 für eine mehr als 6-stündige Aufzeichnung. (belegt ca. 3/4 des Flash-Speichers)
Die nebenstehende Schaltung ist auf höhere Genauigkeit und minimalen Stromverbrauch optimiert.
Auf einen der Analogeingänge wird verzichtet, dafür wird RA3 als Eingang für eine externe Referenzspannung verwendet. Die Referenzspannung wird (zum Strom sparen) über RC4 ein- und ausgeschaltet. An allen 4 Spannungseingängen können Spannungen von 0V bis 2,5 V gemessen werden.

Zur Komunikation wird eine RS232-Schnittstelle verwendet, die über RC5 ein/ausgeschaltet wird. 
Der 32,768-kHz-Uhren-Quarz an RC0/RC1 taktet den Timer1, und bildet das Zeitnormal. Der PIC wird zwischen den Messungen in den SLEEP-Modus versetzt, und vom Timer1 wieder geweckt.
Während der Messung verbraucht der PIC ca. 1,5 mA und der LM385 ca. 1 mA. Im Sleep-Mode benötigt der PIC ca. 30 µA.

Stromlaufplan des Spannungsloggers


zurück zu Projekte , PIC-Prozessoren , Elektronik , Homepage
Autor: sprut
erstellt: 23.10.2002
letzte Änderung: 17.02.2003