Forum: Mikrocontroller und Digitale Elektronik Laufschrift mit Tastatur und µController steuern


von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich habe mir vorgenommen ein neues Project in meiner Ausbildung zu
starten.
Undzwar eine Laufschrift mit 10 mal 5x7 Dotmatrix Elementen und einem
Atmel AT90S8515, das alles möchte ich dann so gestalten, das ich den
Text den ich auf der Matrix ausgeben will mit einer normalen PS/2
Tastatur eingebe und mit der Enter Taste bestätige.
Bis jetzt bin ich soweit das ich die Hardware nach dem Prinzip der
Schaltung die ich angehängt habe aufgebaut habe. Allerdings mit
einzelnen Veränderungen wie die PS/2 Buchse den µController und 2
weiteren Matrix Elemente.
Meine eigentlich Frage ist jedoch wie ich die Software dafür
realisieren kann (In Bascom).
Also ich weis das ich das ganze Multiplexen muss und die
Schieberegister so steuern muss das sie immer eine Splate
weiterschalten und in der gleichenzeit eben die Reihenbeschalte das es
ein Buchstabe ergibt.
Nun aber zu meiner Frage unzwar wie stelle ich es an die Buchstaben die
ich mit Tastatur eingebe dann auf der Matrix ausgebe?

Vielen Dank schon im vorraus
Daniel

von Peter D. (peda)


Lesenswert?

Für den ULN komme ich auf eine Strombelastung von ~1,2A, bist du sicher,
daß der das abkann ?

Wichtig ist, daß Du für die Schieberegister das SPI nimmst, sonst wird
Deine CPU-Zeit knapp.

Trotzdem denke ich, müßtest Du das in C oder Assembler programmieren,
damit es flimmerfrei ist.

Du brauchst einen Bildspeicher von 49 Byte, den Du zeilenweise
organisierst, d.h. im Interrupt werden dann immer 7 Byte ausgegeben.

Dann brauchst Du noch eine Zeichentabelle, die ASCII in 5*7 Code
umwandelt, d.h. mit 5 Byte je Zeichencode.

Die Anzeigen mußt Du mit Abstand plazieren, damit die 10 Buchstaben
nicht aneinander kleben oder Du kannst nur 8 Zeichen darstellen.
Dafür kannt Du die 8 Zeichen aber punktweise laufen lassen
(Laufschrift). Die Laufschrift mußt Du auch gut optimieren, damit das
ganze nicht ruckelt.

Alles in allem hast Du Dir viel vorgenommen, als
Fortgeschrittenen-Projekt aber durchaus in 3 Monaten konzentrierter
Arbeit zu schaffen. Erfahrungen mit Text-LCD und 7Segment-LED-Multiplex
setze ich dafür voraus.


Peter

von Daniel (Gast)


Lesenswert?

Hallo,
das mit dem ULN kapier ich noch nicht ganz!!
Ich benutze diese Matrix Elemente HDSP-5401

Link:
http://www.secomtel.com/UpFilesPDF/PDF/Agilent/PDF_DOCS/OPTOELEC/03_DISPL/3_200_06.PDF

Warum wird der ULN dann mit ~1,2A belastet?

Und sollte ich es erst garnicht versuchen mit Bascom zu machen und
gleich in C oder kann ich es mal versuchen? Weil meine vorherigen
Projekte habe ich alle in Bascom geschreiben.

von Peter D. (peda)


Lesenswert?

Ich habe für die LEDs 1,6V angenommen:

50 * ( 5 - 1,6 ) / 150 = 1,133A


Peter

von Peter D. (peda)


Lesenswert?

Damit das ganze effizient wird, muß man sehr viel mit Pointern arbeiten
(Pointer auf Textspeicher, auf Zeichentabelle, auf Bildspeicher).

Und soweit ich weiß, hats Basic nicht so mit Pointern.

Die Multiplexfrequenz sollte mindestens 100Hz betragen, d.h. bei 7
Zeilen mindesten 700Hz Interruptzeit.

Und bei Laufschrift sind 200..500Hz noch besser, sonst wirkt es
ruckelig (das Flimmern verstärkt sich durch die Bewegung).


Peter

von Daniel (Gast)


Lesenswert?

Warum den mal 50??
Wenn ich die doch multiplex dann läuft das doch soschnell durch das
immer nur eine LED leuchtet

von Peter D. (peda)


Lesenswert?

So wie die Schaltung ist, machst Du Zeilenmultiplex, d.h. pro Zeile sind
bis zu 50 LEDs anzusteuern.

Wenn Du aber immer nur eine LED ansteuern willst, dann hast Du ein
Tastverhältnis von 1/350, d.h. Du siehst fast nichts.

Eine LED-Matrix ist keine Bildröhre !


Peter

von Daniel (Gast)


Lesenswert?

Und wenn ich Reihenmultiplex mache das dann immer pro register die
dazugehörigen zeilenpunkte leuchten

von Daniel (Gast)


Lesenswert?

Kann mir keine Sagen ob ich auch Reihenmultiplex machen kann

von h-a-l-9000 (Gast)


Lesenswert?

Da dann die LEDs einer Spalte nur ein fünfzigstel der Zeit leuchten
würden, müssten sie mit der 50fachen Leistung angesteuert werden, um
genauso hell zu leuchten. Ich glaub ja nicht, dass die LEDs einen
Stromimpuls von ~ 1A lange aushalten...

von Daniel (Gast)


Lesenswert?

Ne ich meinete es so das Schieberegister setzt die erste reihe auf low
dann setz ich die dazugehörigen anoden auf high dann sind ja immer
maximal 7 an weil es ja sieben reihen hat oder geht das nichts. Anders
gesagt es is ja ein 5x7 element. Ich gehe die fünf immer mit dem
schieberegister weiter und die 7 reihen steuer ich an dann sind ja
keine 50 über den ULN an sondern nur 7

von Dominik (Gast)


Lesenswert?

Ich habe so ein Projekt in meiner Ausbildung schon realisiert,
allerdings mit 256 * 8 LED's (10mm). Wir haben die Anzeige in 4 Module
unterteilt. Jedes Modul 32 * 8 LED's und einen Mega16. Die Module haben
über ein eigenes Protokoll kommuniziert und waren über 8 Datenleitungen
und Steuerleitungen mit einer weiteren Platine (Steuereinheit mit
Mega32 ) verbunden.
Ich hätte folgende Verbesserungsvorschläge:

- erst mal nen größeren Controller (keinen AT90S2313), dann hast du
auch Platz für nen Zeichensatz, vielleicht nen Mega8 oder Mega16

- Spalten multiplexen und das Multiplexen aufteilen, d.h. in 2 mal 5
Anzeigemodule, dann kannst du die LED's mit 1/25 pulsen. Du brauchst
allerdings dann auch 2 mal 7 IO Ports für die Zeilen.

- den ULN2003 direkt an einem PORT, kostet zwar 7 IO PIN's, ist aber
wesentlich bequemer/schneller

- beim Spalten multiplexen die Vorwiderstände für die LED's hinter dem
ULN2003, sonst leuchten die LED's unterschiedlich hell bzw. abhängig
davon wie viele LED's in einer Spalte an sind

Gruß, Dominik

von Daniel (Gast)


Lesenswert?

Vielen Dank!1
Ich denke mal das ich das dann auch so in der Art machen werde :-)

von Daniel (Gast)


Lesenswert?

Noch ne Frage brauche ich dann auch 2 mal den ULN oder?

von Dominik (Gast)


Lesenswert?

Ja, das ist doch nen PNP Array oder?

für die Spalten würde ich keine Transistor Arrays nehmen. Hier brauchst
du Transistoren, die im max. Fall ja den 25 fachen Strom (natürlich 1/25
Pulsverhältnis) für 8 LED's aushalten müssen.
Für die Selektierung der Spalten haben wir bei der 256 * 8 Laufschrift
für jedes Modul zwei 4Bit hexadezimal Decoder (4 Eingänge -> 16
Ausgänge) gewählt. Aber mit nem Dezimalzähler (4017) oder
Schieberegistern ist es nicht viel anders.

von Peter D. (peda)


Lesenswert?

Die Schaltung ist schon vollkommen richtig, bloß der ULN ist zu schwach.
Nimm einfach statt dessen 7 Power MOSFET und gut is.
Und statt des HC259 einfach einen HC164, das macht die Software
einfacher.

Das Tastverhältnis von 1/7 auf 1/25 zu verringern bringt nur noch mehr
Probleme.
Dann bräuchtest Du nämlich auch hinter den HC595 noch 50
Treibertransistoren.


Peter

von Daniel (Gast)


Lesenswert?

Ok dankeschön dann wäre da nur noch die Frage mit den eingelesenen Daten
von der Tastatur wie ich das anstelle das es das dann ausgibt

von Daniel (Gast)


Lesenswert?

Also wenn das Tastverhältnis 1:50 ist so werd ich es denk ich mal machen
immer eine spalte unddann die reihen durch. Dann brauch ich ja den
50fachen strom das heißt wenn eine LED 2mA braucht dann sind das 100mA
wenn eine anwäre bei allen 7 700mA aber die 74HC595 können nur 500mA
dann müsst ich da ja andere nehmen oder versteh ich da was falsch

von BlackMike (Gast)


Lesenswert?

Werf mal einen Blick in das Datenblatt von Maxim MAX7219CNG.

Zu beziehen bei reichelt.

Das Ic´chen ist mein Favorit beim ansteuern von LED Matrixen,- mit 4
von den Teilen hab ich mir auch mal meine LED Uhr gebaut.

greetz,- Black

von Daniel (Gast)


Lesenswert?

Hab ich schon das Prob ist nur das ich keine Ahnung hab wie ich den
ansteuern muss und wie das dann mit dem geht das es ne Laufschrift wird

von BlackMike (Gast)


Lesenswert?

der 7219 hat eine 8*8 matrix. Anbindung an den Controller über den SPI
Bus...

MOSI,MISO & SCLK sollte klar sein. Mit einem Signal an LOAD übernimmt
der 7219 die über SPI übertragenen Daten in das entsprechende
Register.... ist gar nicht so schwer....

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.