7-Segment-Anzeige und Temperatursensor

Als erstes will ich einen Temperatursensor und die Anzeige auf einer 7-Segment-Anzeige testen. Als Temperatursensor nehme ich einen DS1820, die Anzeige ist aus Vatis Bastelkiste, zusammengebaut aus 2 Schieberegister (D718D) und 4 x 7-Segment-Anzeigen.

Jetzt gilt es das ganze mit Bascom und einen mega8 zum laufen zu bekommen.

Vorab ein paar Grundlegende Sachen.

Der DS1820 ist ein direktwandelnder Temperatursensor mit 1-wire Anschluss. Das bedeutet das das Temperatursignal direkt im DS1820 in ein digitales Signal überführt wird und das Ergebnis über die Datenleitung geschickt werden kann. Die Datenleitung ist wie der Name schon sagt nur eine Leitung die an einen I/O-Port des Mikrocontrollers angeschlossen werden muss. Der DS1820 ist klein und hat nur 3 Anschlüsse: GND, Spannung und die Datenleitung.

Der Aufbau mit dem mega8 stellt sich als recht einfach heraus. Der DS1820 erhält seine Spannung und GND, die Datenleitung wird an den mega8 angeschlossen. Die Ansteuerung über Bascom ist auch sehr einfach da in die Basic-Bibliothekt bereits Funktionen für die 1-wire Verbindung implementiert sind. Es muss nur der Kommunikationsport festgelegt werden und schon kann es losgehen. Dabei muss der DS1820 gestartet werden und etwas später kann er ausgelesen werden. Standardmäßig ist die Genauigkeit des Sensors +-0,5°C, mit etwas rumrechnen und auslesen zusätzlicher Bytes ist es aber möglich die Genauigkeit auf +-0,1°C zu erhöhen.

Ds1820 Mega8-150x150 in 7-Segment-Anzeige und Temperatursensor Ds1820-150x150 in 7-Segment-Anzeige und Temperatursensor

Die Anzeige besteht aus 2 D718D. Diese Bausteine sind 16Bit Schieberegister mit seriellem Eingang und parallelem Ausgang. Die Besonderheit sind die Ausgänge. Es sind Konstantstromsenken. Das bedeutet das die geschalteten Ausgänge auf den Strom hin begrenzt werden. Vorteil ist das die LEDs der 7-Segment-Anzeigen direkt angeschlossen werden können ohne einen Vorwiderstand anschließen zu müssen. Der Baustein ist schon etwas älter, den gibt es nicht mehr im Handel. Aber wir haben noch ein paar Restbestände.

Das Schieberegister wird neben der Betriebsspannung mit 4 Pins angeschlossen. Ein Bein ist eine Art Select Bit. Man kann ja mehrere Schieberegister im Multiplexverfahren betreiben, dazu müssten die Schieberegister nacheinander angewählt werden. Ich habe aber beide Schieberegister in Reihe angeschlossen, dieser Port muss also nicht geschaltet werden, muss aber ständig auf High gesetzt sein. Es sind somit beide Schieberegister immer gleichzeitig angewählt. In Reihe schalten bedeutet hier das die Bits die aus dem ersten Schieberegister „herausgeschoben“wurden an den Eingang des zweiten Schieberegisters weitergeleitet werden. Schickt man also 32 Bit sind beide Schieberegister „neu gefüllt“. Dies geschieht über den Pin für den seriellen Eingang des ersten Schieberegisters an dem ein Ausgang des mega8 angeschlossen ist. Die Weiterleitung erfolgt über den seriellen Ausgang des einen zum seriellen Eingang des anderen. Das dritte Bit ist das „Shift/Load“ Bit. Ist das Bit 1 so können die Bits durchgeschoben werden. Wird das Bit auf 0 gesetzt werden die eingetragenen Bits an die Ausgänge gesetzt. Das letzte Bit ist der Takteingang, dieser wird genutzt um die die Verbindung zwischen mega8 und dem Schieberegister zu synchronisieren.

Schieberegister Mega8-150x150 in 7-Segment-Anzeige und Temperatursensor Sa56 11 Ge-147x150 in 7-Segment-Anzeige und Temperatursensor Rgbg1000-137x150 in 7-Segment-Anzeige und Temperatursensor

Schließt man das ganze an den mega8 an muss die Schnittstelle konfiguriert werden. Diese Übertragungsmöglichkeit ist ein gängiges System, das „Serial Peripheral Interface“, kurz SPI. Auch dafür gibt es bereits vorgefertigte Bibliotheken in Bascom. Es müssen dafür nur noch die Schnittstellenparameter konfiguriert werden, z.B. ob der Takt bei einer High/Low Flanke oder bei einer Low/High Flanke reagieren muss. Ist dies geschafft ist die größte Hürde geschafft.

Die Programmierung ging recht problemlos. Einzige Hürde war die richtige Konfiguration für das Schieberegister zu finden da es schwierig ist Aufzeichnungen über den D718D zu finden.

Alte Anzeige Ds1820-150x150 in 7-Segment-Anzeige und Temperatursensor

Links:


Kommentar schreiben

Deine Email-Adresse wird nicht veröffentlicht

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du dich damit einverstanden. Desweiteren verwendet diese Website den Open Source Webanalysedienst Matomo. Die Datenerfassung kann über das Impressum unter dem Abschnitt Matomo deaktiviert werden.

Schließen