Martin's Bastelstube: Displays für XYZ-Tisch
Für eine präzise Positionssteuerung über drei Achsen ist es notwendig,
die genaue Lage jeder Achse anzuzeigen – sowohl die Anzahl der Schritte
als auch die Position relativ zum Nullpunkt in Millimetern.
|
|
|
|
|
Das verlangt nach einem Großaufgebot an Displays.
Ich nehme eine Kombination aus VFD-Anzeigen für Text und Messwerte und LED-Anzeigen
für die Achsbezeichnungen und Richtungssymbole.
Rechts seht ihr einen Testaufbau, der die Lage der einzelnen Teildisplays zueinander ausprobiert.
|
|
|
|
|
Um die vielen Displays anzusteuern, habe ich ein Display-Verteilerboard gebaut.
Es besitzt keine eigene Intelligenz, nur etwas Logik zur Auswahl der unterschiedlichen Einzeldisplays
und viele Stecker.
|
VFD-Anzeigen:
VFD-Zifferanzeigen mit Steuerung über ATMega8
Version 1a mit sechs 7-Segment-Ziffern und ½-Symbol
Version 2a mit sieben 7-Segment-Ziffern und Dezimalbruch-Symbol
VFD-Anzeige mit eingebautem Controller
Version 4c mit zwölf 14-Segment-Ziffern
LED-Anzeigen:
Die LED-Anzeigen sollen einerseits kennzeichnen, für welche Bewegungsachse die Messwerte
auf der zweizeiligen VFD-Anzeige dargestellt werden, andererseits sollen sie auf einer
kleinen Punktmatrix symbolisch darstellen, in welche Richtung sich der Motor gerade bewegt.
Die Punktmatrix für die Achsen X und Y steht waagerecht, für Achse Z und Funktion Q senkrecht.
Der Stecker wird auf der Unterseite angelötet, damit die Anschlusskabel später nicht
den optischen Gesamteindruck der Anzeigetafel stören.
|
|
|
|
|
Der Treiberbaustein MAX7219 wird über eine SPI-Schnittstelle angesprochen.
Er ist ursprünglich dafür konzipiert, eine LED-Anzeige aus bis zu acht 7-Segment-Ziffern anzusteuern.
Er kann allerdings auch jede andere LED-Matrix aus bis zu 8x8 einzelnen LEDs nutzen.
Jetzt haben aber eine 16-Segment-Anzeige mit einer gemeinsamen Kathode auf der Platine.
Wie soll man die denn an den MAX7219 anschließen?
|
|
|
|
|
|
Ich habe das Problem für die Achsen X, Y und Z recht pragmatisch gelöst:
Die 16-Segment-Anzeige ist erst einmal gar nicht mit Leiterbahnen an den MAX7219 angeschlossen,
stattdessen sind die Segmente auf der Platine als Lötflächen ausgeführt.
Weil die Achsen ihren Namen nie ändern, kann man die benötigten Segmente mit Fädeldraht
an den MAX7219 anschließen. Der muss dann einfach nur alle Segmente dieser Ziffer einschalten, und der
richtige Buchstabe erscheint.
|
|
|
|
|
|
Für die Sonderfunktion Q wird's dann doch etwas schwieriger:
Die soll so flexibel einsetzbar sein, dass ich mich im voraus nicht auf einen Buchstaben festlegen will.
Hier habe ich den Aufwand getrieben, sämtliche Segmente der Anzeige über Analog-Multiplexer MAX394
an die Segmentausgänge des MAX7219 anzuschließen. Ein Zifferntreiber-Ausgang des MAX7219 wird für
die Umschaltung der Multiplexer verwendet, und die gemeinsame Kathode der 16-Segment-Anzeige wird über
Dioden an zwei Zifferntreiber-Ausgänge des MAX7219 angebunden.
Diese Methode funktioniert tatsächlich! Die Anzeige wird dadurch kein bisschen schwächer —
die Segmentausgänge des MAX7219 besitzen Konstantstromquellen, damit wird der Einfluss der Dioden und
Multiplexer ausgeglichen.
|
|
|
LED-Anzeigen mit MAX7219, 16-Segment-Ziffer und 5x7 Punktmatrix
Version 2a für Achsen X + Y
Version 2b für Achse Z
Version 2c für Sonderfunktion Q
Display-Verteilerboard:
Das XYZ-Controllerboard ist mit den Steckplätzen für die Motorplatinen schon so
belegt, dass man dort nicht auch noch die ganzen Displays anschließen kann.
Also brauchen wir noch eine Art Verteilerplatine, die in der Nähe der Displays sitzt
und von dort aus alle Anzeigen direkt ansteuert.
|
|
|
|
|
Die meisten Displays werden über eine SPI-Schnittstelle angesteuert.
Ein 1-aus-8-Multiplexer 74LS138 wählt die anzusteuernde Anzeige aus.
Die VFD-Anzeige mit 1x40 Zeichen hat einen parallelen Anschluss.
Die seriellen Daten werden in einem Schieberegister aufgefangen, auf diese Weise
kann man auch dieses Display über dieselbe SPI-Schnittstelle ansprechen.
|
|
|
|
Die VFD-Anzeige mit 2x20 Zeichen hat einen asynchronen seriellen Anschluss.
Sie wird von einem der UARTs auf dem Controllerboard angesteuert.
Ich hatte keinen Platz für einen richtigen RS-232-Pegelwandler,
deshalb habe ich einen einfachen Inverter mit Einzeltransistoren aufgebaut.
Die negative Spannung (-12 Volt) wird parasitär aus den Empfangsleitungen
der Schnittstelle abgezogen.
|
|
Display-Verteilerboard, Version 1d
LCD-Grafikdisplay:
Wer beim Display-Verteilerboard genau hingesehen hat, wird einen Stecker X13 mit der Beschriftung
"Graf-Display" gefunden haben. Was soll das denn?
Hier könnte in ferner Zukunft mal ein LCD-Grafikdisplay angeschlossen werden
– so eins in der Art, wie sie bei den
Power-Boards oder auf dem
Display-Board für Raspberry Pi benutzt werden.
Aber aufpassen! Die Logikleitungen haben hier einen Pegel von 5 Volt.
Sie müssen erst noch mit Spannungsteilern auf 3.3 Volt heruntergesetzt werden.
Tschüß, euer Martin S.
|
E-mail:
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
|