ebps.de.vu > Schaltungen > AVR > großes RS232-LCD

großes RS232-Text-LCD

Beschreibung

Diese Schaltung habe ich gebaut, um am PC eine Wettervorhersage anzeigen zu können, die auch angezeigt wird, wenn der PC ausgeschaltet ist. Das Display bietet mit 8x40 Zeichen gerade genug Platz für das aktuelle Wetter sowie eine 3-Tages-Vorhersage (heute, morgen, übermorgen). Solange der PC eingeschaltet ist, wird die Anzeige in regelmäßigen Abständen aktualisiert, bei ausgeschaltetem PC bleibt der letzte Stand einfach stehen. Da der PC täglich läuft, ist die Anzeige immer halbwegs aktuell. Zur Stromversorgung habe ich das Display mit dem PS/2-Port verbunden, an dem bei meinem PC auch nach dem "Ausschalten" noch Spannung anliegt.

Aufbau

Als Display kommt ein billiges Grafik-LCD mit 240x64 Pixeln von Pollin zum Einsatz. Ich habe es einfach mit Doppelklebeband auf die Lötseite der Lochrasterplatine geklebt, nachdem die Schaltung aufgebaut und getestet war. Die restliche Schaltung ist einfach, neben dem AVR mit Quarz und Transistor als RS232-Pegelkonverter befindet sich noch ein kleiner Spannungswandler auf MC34063-Basis auf der Platine, der die Kontrastspannung für das LCD erzeugt. Am Poti kann der LCD-Kontrast eingestellt werden. In meinem Aufbau ist der Konverter mit den beiden parallelgeschalteten Spulen absolut lautlos, wenn er fiept, können Sie andere Spulen ausprobieren (leicht anderer Wert oder andere Bauform), auch ein anderer Kondensator (z.B. 560 pF oder 820 pF) könnte Abhilfe schaffen. Den passenden Steckverbinder für das Folienkabel vom LCD (ebenfalls bei Pollin erhältlich) habe ich flach auf die Platine geklebt und Litzen direkt an die Kontakte gelötet, da er nicht ins Raster der Lochrasterplatine passt. Die flache Anbringung hat auch den Vorteil, dass das empfindliche Folienkabel nicht noch einen zusätzlichen Knick machen muss.

Software

Die Software ist sehr einfach gehalten, spezielle Funktionen wie Scrolling oder den Cursor an eine bestimmte Stelle setzen werden nicht unterstützt – das LCD wird immer von oben nach unten mit Text gefüllt und vor der nächsten Aktualisierung komplett gelöscht. Zeichen, die bei vollem LCD eintreffen, werden ignoriert. Gesendet wird mit 38400 Baud (kann in der Assemblerdatei geändert werden), kein Parity, ein Stoppbit, als Zeichensatz wird Codepage 437 verwendet.

Folgende Steuerzeichen werden vom Controller verarbeitet:
ASCII-Code Name Funktion
0x02 STX (Start of Text) Setzt den Cursor in die linke obere Ecke. Achtung: dieser ASCII-Code hat normalerweise eine andere Funktion!
0x08 Backspace Löscht das zuletzt gesendete Zeichen in der aktuellen Zeile. Wird ignoriert, falls die aktuelle Zeile noch leer ist.
0x0a LF (Line Feed) Zeilenumbruch, die bisher gesendeten Zeichen für die aktuelle Zeile (max. 40) werden angezeigt und der Cursor wird an den Anfang der nächsten Zeile gesetzt. Befindet sich der Cursor bereits in der letzten Zeile, wird das LCD gesperrt, bis entweder STX oder FF gesendet wird. CR (Carriage Return) wird ignoriert, weshalb sowohl Texte mit Windows- als auch Linux-Zeilenumbrüchen korrekt angezeigt werden.
0x0c FF (Form Feed Löscht die Anzeige und setzt den Cursor in die linke obere Ecke. Das LCD befindet sich nun im gleichen Zustand wie direkt nach dem Einschalten.

Wettervorhersage

Um die Wettervorhersage auf das Display zu bekommen, habe ich ein Perl-Script geschrieben, welches die Wettervorhersage von Wetter.com auswertet und passend formatiert. Damit das Script automatisch startet, habe ich einen Link in ~/.kde/Autostart angelegt – das bedeutet natürlich, dass das Script erst startet, wenn ich mich einlogge.

Das Display ist dabei in vier Bereiche eingeteilt: oben links wird das aktuelle Wetter angezeigt (Datum und Uhrzeit der Daten, Temperatur und Wetterlage, Windrichtung und -geschwindigkeit sowie Luftdruck und -feuchte), darunter folgt die Vorhersage für das oben angezeigte Datum. Rechts steht oben die Vorhersage für den folgenden und darunter für den übernächsten Tag. Jede Vorhersage besteht aus drei Spalten für morgens, mittags und abends; jede Spalte enthält die Minimal- und Maximaltemperaturen (erste Zeile tatsächlich, zweite Zeile gefühlt), darauf folgt die Niederschlagswahrscheinlichkeit und die Wetterlage (stark abgekürzt).

Wenn Sie das Script auch verwenden möchten, so müssen Sie nur oben den Port und die ID für die Wetterdaten ändern (einfach bei Wetter.com die Postleitzahl eingeben und auf "7-Tage-Vorhersage" klicken, die ID erscheint dann in der URL).

Fotos

[Foto]
800 | 1280
Die Schaltung, noch ohne eingesteckted Folienkabel. Oben rechts auf der Platine befindet sich der Spannungswandler.
[Foto]
800 | 1280
Schaltung mit eingestecktem Folienkabel.
[Foto]
800 | 1280
Die Wettervorhersage auf dem LCD.