IR LCD

Da ich mit der ersten LCD Ansteuerung unzufrieden war, kam ich auf die Idee, die Daten zum LCD mittels Infrarot zu senden. Das vorherige LC-Display passte schlecht auf einen Roboter und die Programmierung war recht umständlich. Auch besaß der jetzt verwendete Controller noch ein paar weitere freie Ports und war recht günstig, so dass ich beschloss, einen Kasten mit integrierter Stromversorgung, einem LC-Display und 4 Tasten zum Senden von Befehlen zu bauen. Aus Kostengründen verwende ich das LC-Display aus der ersten Ansteuerung.
Die Schaltung kann sowohl Informationen von einer anderen Schaltung empfangen und anzeigen, wie auch der anderen Schaltung über die Tasten Befehle senden.

Inzwischen habe ich die Programmierung fertig, eventuell gibt es noch eine weitere Programmversion mit weiteren Features.

Verwendet wird
Es gibt zwei Versionen des Schaltplans.
Mit der Version 1.0x funktionieren die ersten drei Programmierbeispiele, mit der Version 1.1x müssten alle Programmierbeispiele funktionieren, es wurde jedoch nur iros_v06.c und iros_v07.c getestet.
Schaltplan Version 1.0x
Schaltplan Version 1.1x

Programmierbeispiele
Recive_byte-03.bas
Einfache Basic Programmierung (veraltet) , kann Zeichen empfangen, Hinweis : Das Programm ist für die Verwendung eines 4 MHZ Quarzes geschrieben
iros_v04.c C Programm, sendet, und zeigt empfangene Werte als Nullen und Einsen an, gut zur Fehlersuche, für 2 MHZ Quarz
iros_v05.c C Programm, kann senden und empfangen, für 2 MHZ Quarz
iros_v06.c C Programm, wie iros_v05.c, es wird jedoch der Power down Modus anstelle des Idle Modus verwendet. Damit der Controller aus diesem wieder aufwacht, wird die Schaltung nach Schaltplan Version 1.1x benötigt.
iros_v07.c C Programm (aktuell) Die obige Version optimiert + Störsignale verhindern jetzt nicht mehr ein Ausschalten + das Anzeigen der empfangenen Werte als Nullen und Einsen wie in Version 04 ist auch möglich (Auswahl der Zusatz Funktion: beim Start zusätzlich Taster 1 gedrückt halten), benötigt eine Schaltung nach Schaltplan Version 1.1x.

Zum Senden der Buchstaben gibt es ein Programmierbeispiel für die Universalbox1

Hinweise zur Schaltung

grün gezeichnet: IR Sendemöglichkeit
braun: 4 Taster zur Eingabe von Befehlen
hell blau: IR Empfangsmöglichkeit
schwarz, rot: LCD Verbindungen und Stromversorgung
Ursprünglich wurde die Schaltung für ein Display mit Hintergrundbeleuchtung entworfen. Da mein Display jedoch keine hat, habe ich an den Port eine grüne LED gepackt und diesen Port zusätzlich zum Senden von IR Signalen benutzt.

Strom sparen
Da ich plane, die Schaltung ständig laufen zu lassen, habe ich versucht, so viel Strom wie möglich zu sparen. Daher kann der Controller sowohl das Display, wie auch die IR Empfänger einzeln ein und ausschalten. Die IR Sendeschaltung verbraucht nur Strom, wenn sie wirklich sendet. Um den Stromverbrauch des Mikrocontrollers selbst zu senken, habe ich in dessen Stromversorgung ein 1KOhm Poti und eine LED gepackt. Weitere Einsparnisse erzielte ich durch das Ersetzen des 4 MHZ Quarzes durch einen 2MHZ Quarz. Über das Poti lässt sich die Spannung (je geringer die Betriebsspannung desto geringer auch der Strom) für den Controller auf einen Wert anpassen, bei dem er gerade noch so eben fehlerfrei arbeitet. Die LED reduziert die Spannung um einen konstanten Wert (je nach verwendeter LED). Durch die Reihenschaltung erhöht sich der Stromverbrauch nicht und die LED kann als schwache Beleuchtung für die Tasten eingesetzt werden. Besonders helle LEDs leuchten auch schon bei geringer Stromstärke recht kräftig und eignen sich daher besonders gut. Zusätzlich schaltet sich der Controller nach mehreren Minuten Inaktivität (weder Tastendruck noch IR Empfang) automatisch in den idle Modus. Mit ausgeschaltetem LCD und IR Empfänger, benötigt die Schaltung im Idle Modus 0,5mA.
Idle Mode : 0,51 mA
Normal Mode: 4,8 mA
IR Senden: 40 mA
Da mir jedoch die 0,5mA im idle Modus immer noch zu viel waren, habe ich nach Wege gesucht, stattdessen den Power Down Modus zu verwenden. Das Problem war, dass im Power Down Modus der MCU nur durch wenige Ereignisse aufgeweckt werden kann. Eine Lösung gelang mir nur durch ändern der Schaltung. In dieser führt Taster 4 einen Controller Reset aus, wenn das LCD Display nicht an ist. Ist das LCD an (bekommt Strom), führt der Taster 4 kein Reset aus. Im Power Down Modus verbraucht die Schaltung weniger als 0,001mA (Mein Messgerät hat keinen Messbereich, in dem noch ein Stromverbrauch angezeigt werden kann). Mit 500mA/h Accus würde die Schaltung somit mehrere Jahre im Power Down Modus auskommen. Da die Selbstentladung der Accus jedoch höher ist, werden mehrere Jahre in der Praxis wohl nicht erreicht werden. Die Schaltung läuft jetzt bei gelegentlicher Benutzung seit über einem halben Jahr, ohne dass die Accus neu geladen wurden.

Bilder (vergrößern durch klicken)
Oben links und rechts sind die beiden IR Empfänger. Unten sind die 4 Taster, in der Mitte der Mikrocontroller und zwischen den Tastern und dem Controller die Steckbuchsen für das LC-Display.
Sehr altes Bild ohne aufgestecktes LC-Display
Altes Bild mit eingeschalteter Schaltung
Älteres Bild der Schaltung außerhalb des Gehäuses
Älteres Bild der Schaltung im Gehäuse
Die fertige Schaltung (aktuell)
Sicht von Vorne
Ohne Acrylglas und Papier Abdeckung
Sonderzeichen des LCD


Nachbau auf eigene Gefahr, es ich garantiere nicht, dass die Schaltpläne/Programmierbeispiele fehlerfrei sind, bz. funktionieren.

Wenn ich die Schaltung nochmal bauen würde, würde ich:

Wie Programmiere ich den Mikrocontroller?

Eine kurze Einleitung gibt es Hier.

Zur Startseite

zuletzt aktualisiert: 07.04.2006