Bauplan Schaltplan Firmware für Geigerzähler Datenlogger Atmel Mega168
Eine Mikrocontroller Schaltung benötigt natürlich immer ein entsprechendes Programm, um eine sinnvolle Aufgabe zu verrichten. Die hier vorgestellte Datenlogger Platine macht da selbstverständlich keine Ausnahme.

Da ich diese Schaltung im Hinblick auf eine Verwendung als Geigerzähler / Datenlogger entworfen habe, bietet die hier vorgestellte Software logischerweise genau diese Funktionalität. Sie enthält alle Funktionen die nötig sind, um autarke Langzeitmessungen der Umgebungsradioaktivität durchzuführen.

Ein ähnliches Projekt, allerdings wegen des WLAN Anschlusses eher für stationäre Messungen rund ums Haus oder in Anlagen habe ich bereits hier vorgestellt, Teile der Software finden sich nun auch in diesem Projekt wieder.

Die Software (Quellcode auf Anfrage) wurde für einen Atmel 168 PA Prozessor entwickelt, als IDE diente ECLIPSE. Die Software müsste auch auf einem Arduiono lauffähig sein, die Echtzeituhr und den Speicher könnte man zB auf einem Shield anbringen.

Am Anfang der Software steht die Initialisierung der seriellen Schnittstelle, darüber läuft sämtliche Kommunikation mit einem PC.

Als zweiter Schritt wird der I2C Bus initialisiert und die RV3029 Echtzeituhr konfiguriert. Der Uhrenbaustein wird so eingestellt, dass er an seinem Taktausgang ein 1Hz Signal liefert. Dieses 1Hz Signal dient als Interruptquelle für den Controller, auf Basis dieses Taktsignals läuft dann der Zähvorgang über den Hardwaretimer 1. Die Uhrzeit wird nur zum Start der Firmware aus der Echtzeituhr gelesen und danach in einer Software-RTC weitergezählt (deren Takt ja genau dem 1Hz Takt der RTC entspricht). Damit ist nach der Initialisierung der I2C Bus wieder komplett frei für etwaige eigene Anwendungen.

Nachdem alle Subsysteme initialisiert wurden, begibt sich der Prozessor in den IDLE-Modus und wartet auf Ereignisse. Jede Sekunde wird der Zählerstand von Timer T1 gelesen und aufsummiert. Mit Beginn einer neuen Minute wird dann der aufsummierte Zählerstand als 16 Bit Wert in den Dataflash Speicher geschrieben.

Für jeden Tag werden so 1440*2 Bytes benötigt, welche in 12 Dataflash Speicherseiten Platz finden, pro Speicherseite werden 240 Bytes für genau 2 Stunden abgelegt. In Speicherseite 2047 steht dabei eine Tabelle welche die Tage angibt, die den einzelnen 12 Seiten "Slots" zugeordnet sind.

Die Kommunikation zum PC läuft, wie schon erwähnt, über die serielle Schnittstelle ab. Hierzu werden vom PC Kommandos im ASCII-Format gesendet und von der Firmware interpretiert. Die Firmware sendet iherseits Daten zurück zum PC, und zwar in einer Art XML-Struktur. Damit kann das Auswerte-Programm immer genau erkennen, welches Ereignis auf dem Controller eingetreten ist und entsprechend darauf reagieren. Die Firmware unterstützt verschiedene Kommandos , etwa zum Einstellen der Echtzeituhr, zum Abrufen von einzelnen Speicherseiten oder ganzer 12er Blöcke für einen Tag.

Die Kommunikation läuft dabei im Klartext ab und kann auch mit einem Terminalprogramm beobachtet werden.


Ausgabe des Datenloggers
Die Graphische Darstellung der gemessenen Werte sowie weitere Konfigurationen können dann über ein speziell für diese Schaltung entwickeles Programm vom PC durchgeführt werden.
Bauteile für dieses Projekt - Anzeigen:
Aktive Bauelemente

Passive Bauelemente


Weitere Informationen,Grundlagen,Bauanleitung,Schaltplan, Links zum Thema
Anzeigen:

Neueste Artikel
Anzeigen:
Aktuelle Newsbeiträge
Sie sind Besucher Nr. 1214376