www.jb-electronics.de » Elektronik » Digitaltechnik » RS232-PWM-Dimmer
Manchmal kann es wirklich praktisch sein, eine Schaltung mit dem Computer zu verbinden. Warum? Um etwa Messwerte zum Computer zu schicken, der sie dann abspeichert, oder etwa, um die Schaltung vom Computer aus steuerbar zu machen.
Ein sehr einfaches Protokoll ist das der seriellen RS232-Schnittstelle. Es ist in Form der USART-Schnittstelle in vielen Mikrocontrollern bereits fertig als Modul implementiert, sodass sich der Benutzer um die Hardware schon fast gar keine Gedanken mehr machen muss.
USART steht für Universal Synchronous / Asynchronous Receiver / Transmitter. Es ist ein allgemeines Modul, das so konfiguriert werden kann, um mittels RS232 Daten zu übertragen.
Die Schaltung, die hier vorgestellt wird, ist sehr minimalistisch, aber sie soll auch nur ein einfaches Test-Beispiel für die Verwendung der seriellen Schnittstelle darstellen.
Was soll unsere Test-Schaltung leisten?
Zum einen benötigen wir natürlich einen Mikrocontroller, wobei ich mich hier natürlich für einen PIC entscheide: der PIC16F627A wird verwendet. Es kann natürlich auch jeder andere mit einem USART- oder UART-Modul verwendet werden.
Die RS232-Schnittstelle arbeitet mit negativen Pegeln, die zudem größer sind als unsere 5V-TTL-Pegel. Wir brauchen also einen Pegelwandler in beide Richtungen, denn sowohl müssen eingehende Signale auf verträgliche 0- bzw. 5V-TTL-Pegel gewandelt werden, als auch ausgehende Signale von TTL zu RS232-Pegeln. Dazu gibt es den sehr bekannten IC namens MAX232. Mittels einer Ladungspumpe stellt er die negative Spannung bereit und arbeitet ansonsten genügsam als Black Box; er benötigt nur einige externe Kondensatoren.
Und das war es schon! Es ist gar nicht viel, was benötigt wird. Hier ist der Schaltplan zu sehen:
Hier ist der Schaltplan in höherer Auflösung zu finden.
Im Programmcode des Mikrocontrollers muss dann nur noch das PWM-Modul aktiviert werden und das USART-Modul auf RS232 konfiguriert werden. Nähere Erklärungen im Lexikon.
Entscheidend ist eigentlich nur das Quarz, da es in einem gewissen Rahmen die Baudrate bestimmt, also die Geschwindigkeit, mit der die Daten übertragen werden. Ich entschied mich für eine recht geringe Rate von 1200 Baud.
Um diese Schaltung am Computer zu testen, verwendet mensch am besten ein Terminalprogramm. Damit können kontrolliert Daten über die serielle Schnittstelle versendet und empfangen werden. Ich entschied mich für das kostenlose Programm HTerm von Tobias Hammer. Hier ein Screenshot mit allen Einstellungen (von mir nachträglich durch den grünen Kasten hervorgehoben):
Diese Einstellungen habe ich vorgenommen: 1200 Baud, 8 Data-Bits, 1 Stop-Bit, keine Parität, kein Flow-Control.
Auf dem Bild sieht mensch zudem einige gesendete Daten, die ausnahmslos alle auch wieder vom Controller zurückgesendet wurden. 0 entspricht hier "LED ganz aus", und 255 entspricht "LED ganz eingeschaltet", und Zahlen dazwischen entsprechen den Dimmstufen.
Hier ein Bild des fertigen Dimmers:
Es folgen ein paar Fotos des verwendeten weiblichen SUB-D-Adapters mit den relevanten Anschlussbelegungen. Ich selber musste die Belegung mit meinem Oszilloskop nachprüfen, weil mich etliche Skizzen im Internet etwas verwirrt hatten - es ist nun einmal auf Skizzen, die mangelhaft beschriftet sind, nicht ohne Weiteres zu erkennen, ob die Ansicht nun von vorne oder von hinten zu verstehen ist.
Für alle Interessierten gibt es hier den C-Quellcode und das fertig kompilierte HEX-File: RS232_PWM_Dimmer.zip (2 KB)
www.jb-electronics.de » Electronics » Digital Technology » RS232 PWM dimmer
There is no English translation of this page available yet. It will take some more time for me to translate the whole website.
If you have a particular interest in this page getting translated as fast as possible, please contact me; I will see what I can do. Please click here for the German version.