Zurück zum Menü 5

5.6.1 LEDs an der RS 232 ansteuern


Erstellt ab 25.07.2010




Wie viele Bastler und andere Nutzer benutzte ich zunächst Windows für meine Zwecke. Da ich aber stets Originalsoftware benutze und die Anzahl der Rechner in unserem Haushalt anstieg, wurde mir Windows zu teuer und ich stieg mit meinen eigenen Rechnern auf Linux um.

Damit musste ich mich in eine neue Programmiersprache einfuchsen. Ich schaute und schaute und das wirklich Einfachste war Gambas.

Jetzt hatte ich aber das Problem, dass es doch nicht wirklich einfach ist, die einzelnen Pins am LPT-Port unter Linux anzusprechen. Und Unter Gambas geht das wohl noch etwas komplizierter.

Also schaute ich und guckte, und machte, und fand schließlich heraus, dass man zwei Pins einer seriellen Schnittstelle (tty) gut und einfach mit Gambas ansprechen kann. Dazu ist es nicht nötig, einen Stream aufzubauen, als wenn man regulär über die Schnittstelle kommunizieren möchte.

Dieser Vorgang ist sehr viel einfacher:

1. Zunächst müssen wir ja unser neues Projekt anlegen. Dabei ist es wichtig, dass wir net.gb installiert haben. Wir müssen dieses auch bei der Erstellung des Projekts anwählen, um mit der RS232 experimentieren zu können:



2. Erst danach können wir uns eine serielle Schnittstelle auf unser Formular legen:



Tja, das war's schon. Damit haben wir die Voraussetzungen geschaffen, um mit der RS232 zwei Ausgabeleitungen und mehrere Eingabeleitungen schreiben bzw. lesen zu können.

Jetzt kommen wir aber erst einmal zur Hardware.

Möchte man später einmal Logik-ICs und µ-Controller ansprechen, so werden diese wohl meistens mit stabilisierten 5 Volt betrieben.  Dazu passt aber die RS232 so direkt nicht.

Ein Auszug aus der Wikipedia besagt Folgendes:

Wikipedia, 25.07.2010 / 16:50 Uhr

EIA-232 ist eine Spannungsschnittstelle (im Gegensatz z. B. zu
einer Stromschnittstelle). Die Information (Bit) wird durch eine elektrische Spannung kodiert.

Für die Datenleitungen (TxD und RxD) wird eine negative Logik
Bei den Steuerleitungen (DCD, DTR, DSR, RTS, CTS und RI) wird der aktive Zustand durch eine Spannung zwischen +3 V und +15 V dargestellt, der inaktive Zustand durch eine Spannung zwischen −3 V und −15 V.

Zu beachten ist jedoch, dass die hier angegebenen (und mehrheitlich benutzten) Bezeichnungen für die Steuerleitungen im Original-Standard so nicht vorkommen. Dort sind lediglich gewisse Schaltungen beschrieben, die diesen Bezeichnungen zwar zugeordnet werden können, im Standard aber anders benannt sind.

Die oben angegebenen Spannungen beziehen sich auf die Empfänger (Eingänge). Bei den Sendern (Ausgänge) muss die Spannung mindestens +5 V bzw. −5 V an einer Last von 3…7 kΩ betragen, um genügend Störabstand zu gewährleisten.

Üblich ist die Verwendung von +12 V und −12 V. verwendet, wobei eine Spannung zwischen −3 V und −15 V (ANSI/EIA/TIA-232-F-1997) eine logische Eins und eine Spannung zwischen +3 V und +15 V eine logische Null darstellt. Signalpegel zwischen −3 V und +3 V gelten als undefiniert.
 
Aha, im Prinzip geht die Spannung an einem RS232-Ausgangspin also von minus 12 bis plus 12 Volt.

Minus 12 Volt = logische "1"
Plus 12 Volt =logische "0"

Viele Bastler greifen dann zu einem IC wie z.B. MAX232.

Wir hier machen uns die Welt aber etwas einfacher.  Wir wissen doch, dass eine Z-Diode, wenn man sie in Sperr-Richtung betreibt,  genau ab ihrem Spannungswert aus dem Datenblatt durchlässig wird. Eine Z-Diode macht das sehr exakt.

Wenn wir nun beipielsweise eine Z-Diode mit einer Z-Spannung von 4,7 Volt folgendermaßen an plus 12 Volt anklemmen, so werden wir an der Diode exakt 4,7 Volt messen können:



Es fließt dann der Z-Strom I_z, der natürlich mit dem Vorwiderstand R1 begrenzt werden muss. In vielen Bauanleitungen wird sogar noch R1 weg gelassen. Das kann man machen, weil die allermeisten RS232-Schnittstellen inzwischen bereits fertig eingebaute Schutzwiderstände haben und daher kurzschlussfest sind.

Man kann die RS232 also viel besser zum Basteln nehmen, als einen LPT-Port, denn dieser ist keineswegs kurzschlussfest und ist schnell mal zerstört.

Also wollen wir jetzt einmal sehen, wie wir  an die obige Konstellation eine LED angeklemmt bekommen. Nehmen wir einmal an, wir wollen eine Standard-LED betreiben und uns stehen von außen 5 Volt "Bastelspannung" mit 4 in Reihe geschalteten NiMh-Ready-To-Use-Akkus (NiMh-RTU)  zur Verfügung. Wer keine RTU-Akkus kaufen möchte (zwar hochwertig, aber etwas teurer), der nimmt einfach eine 4,5 Volt Flachbatterie für diesen Versuch.

Die separate Bastelspannung sollten wir von Anfang an mit einbeziehen und bereitstellen, denn dann haben wir es leichter, wenn wir tatsächlich einmal ein Logik-IC  anschließen wollen. Vielleicht lohnt es sich für Dich, sogar eine 5-Volt-Spannungsstabilisierung zu bauen.

Also besinnen wir uns auf einen Standardtransistor wie den BC107 oder eben den hier im strippenstrolch.de benutzten 2N2222. Das ist ein NPN-Transistor und im Falle des 2N2222 kann man damit schon recht ordentliche 800mA schalten.

Das Ganze bauen wir dann einfach als Emitterschaltung (Emitter des Transistors auf Minus) an die obige Schaltung an und "fertig ist der Lack" ...

Das sieht dann so aus:



Am besten, man baut sich einen schönen RS232-Stecker auf ein Stückchen Platine und spendiert dem Ganzen dann schöne Printklemmen. Wenn man es dann ganz komfortabel haben möchte, kann man diese Platine sogar als Ätzübung nehmen und hinterher schön beschriften:



Meine Beispielplatine ist gewiss nicht perfekt, jedoch hat sie mir schon bei so mancher
Bastelei mehr Freude bereitet, als einfach an einen Stecker drangelötete "Tüddel-Adern".

Von solch einer Platine ausgehend kann man dann das Steckbrett bemühen und die kleine Schaltung stecken. Erst jetzt können wir uns an ein erstes Gambas-Programm wagen, was erst einmal die LED ein und aus schaltet. Wer es noch sorgsamer machen möchte, der beaufschlagt den Eingang der Schaltung einmal kurz mit 12 Volt, um zu schauen, ob er seine Schaltung auch richtig gesteckt hat.

Zunächst also das Steckbrett aufbauen:




Nicht ganz ernst gemeinte Rätselfrage:
  • Welches Land ist hier als Kontur abgebildet ... ?



Und dann das Programm dazu entwerfen:



Download Beispiel-Gambas-Programm 5.6.1.1

Bedienung des Programms:
1. RS232 Port richtig in das Textfenster eintippen
2. Den Port mit dem "Verbinden-Knopf" verbinden
3. Nun kann die LED mit den beiden anderen Knöpfen geschaltet werden

Falschen Port erwischt ? LED leuchtet nicht ?

Das kann sein, denn auf manchen Motherboards sind zwar RS232
Schnittstellen aufgebaut, jedoch nicht auf ein Slotblech geführt.
Daher muss man manchmal die richtige Portnummer herausfinden.

==>

1. Den Port mit dem "Trennen-Knopf" trennen
2. Den richtigen Bezeichner für den Port in das Textfenster eintippen
3. Den Port mit dem "Verbinden-Knopf" verbinden





Eine gute Bastelfrage zum Schluss:

Wie muss die Schaltung und das Programm beschaffen sein, um die zweite LED anzusteuern ?

  • Stecke die Bauteile für die zweite LED mit auf das Steckbrett
  • Erweitere das Programm mit zwei weiteren "EIN- / AUS-Knöpfen" für die zweite LED
  • Prüfe das Ergebnis





Viel Erfolg,





Nach oben            Zurück zum Menü 5