Stationsuhr III
- Details
- Zugriffe: 7124
In diesem Betrag wird die wohl erste Hardware-Erweiterung für die Stationsuhr in der Version V1.3 vorgestellt. Hierbei geht es um eine kleine Platine, die auf der Rückseite der Hauptplatine, auf den dafür vorgesehen Erweiterungsbuchsen aufgesteckt wird.
Dieses Aufsteckmodul beinhaltet zwei Sensoren, einen Luftdruck-/ und Fechtesensor, die über den I2C-Bus am Prozessor angeschlossen sind. Im Gegensatz zum Luftdrucksensor, eine Breakout-Platine mit einem BMP180, hat der Feuchtesensor, ebenfalls eine Breakout-Platine mit einem SHT15 Sensor, keinen echten I2C-Bus, jedoch eine ähnliche Kommunikation über zwei Leitungen, die sich mit dem I2C-Bus vertragen. D.h., beide Sensoren können parallel an einem Bus angeschlossen werden.
Bei der Programmierung ist aber darauf zu Achten, dass der aktive I2C-Bus die Portleitungen PC4/SDA und PC5/SCL nicht für andere Anwendungen zulässt. Deshalb muss der Bus für die Abfrage des Feuchtesensors einfach kurz abgeschaltet werden. Erreicht wird dies durch zwei kurze Befehlssequenzen, die das Statusregiste aufrufen, den Bus deaktivieren und dann wieder einschalten.
Im Folgen ist ein Auschnitt aus der Software zu sehen, die die Anwendung der kurzzeitigen Abschaltung verdeutlicht.
releaseBus(); sendCommandSHT(0b00011110); // Reset Sensor Humidity enableBus(); |
Und nun noch die beiden Funktionen releaseBus() und enableBus() dazu:
// Schaltet den I2C-Bus ab, so dass er auch für Anderes benutzt werden kann void releaseBus() { TWCR = _BV(~TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT); } |
// und I2C-Bus wieder aktivieren void enableBus() { TWCR = _BV(TWEN) | _BV(TWIE) | _BV(TWEA) | _BV(TWINT); } |
Ein paar Bilder zur Erweiterung zeigen die Platine und die beiden darauf befindlichen Sensoren.
Der Aufbau der Platine ist recht einfach, es wird jeweils nur die Betriebsspannung (+ 5 V, GND) und der Bus angeschlossen. Beim Feuchtesensor SHT15 werden die Leitungen DATA mit SDA und SCK mit SLC verbunden. Ein kleiner Kondensator, von 100 nF, am Betriebsspannungsanschluss des Feuchtesensors, blockt diese ab.
Die neuen Erweiterungs-Platinen für die Stationsuhr sind nun fertig und können aufgebaut werden.
Die neue Übersicht zum Funktionsumfang der Stationsuhr ab der Version V1.3:
Funktionsübersicht | ||
Taste | Taste | |
kurz (0,15 s) |
lang (> 0,5 s) |
|
Taste 1 | Hintergrundbeleuchtung für 3 Sekunden einschalten | Hintergrundbeleuchtung einschalten |
Taste 2 | Wechsel MESZ/MEZ, UTC, UTC invers | Einstellen der Bezugshöhe für die Luftdruckanzeige |
Taste 3 | Versionsinformation für 3 Sekunden | Hintergrundbeleuchtung, Aus- und Einschaltung einstellen |
Taste 4 | Alarm ein/aus | Alarm einstellen |
Drehgeber-Taste | Hintergrundbeleuchtung einschalten, wenn aus. Alarm abschalten | |
Drehgeber | Einstellen der Alarm-/ oder Hintergrundbeleuchtungszeiten und der Bezugshöhe für die Luftdruckanzeige |
Version 1.5:
In der neuen Version V1.5 ist die Statusanzeige der Sensoren (S) für Feuchte (F) und Luftdruck (P) verbessert worden. So wird nun wenn kein Sensor dieser Art vorhanden ist, ein Hinweis dazu ausgegeben, dass der bzw. die Sensoren nicht vorhanden sind. Beim Luftdrucksensor wird zusätzlich für 15 Sekunden zuvor der interne Fehler angezeigt.
Die Einstellung für die beiden unterschiedlichen Feuchtesensoren SHT11 bzw. SHT21 kann in der Software eingestellt werden.
Download: | ||
Desktop_Uhr_V01_5_web.ino.zip | ||
Libraries | ||
Library von Sparkfun.com für den BMP180-Sensor (SFE_BMP180) | ||
Library für den SHT21 über den Arduino IDE Library Manager: Sodaq_SHT21 |
Links: |
||
Teil I | Stationsuhr I | |
Teil II | Stationsuhr II |