Forum: Mikrocontroller und Digitale Elektronik Lauflichtmatrix programmieren


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich bin Techniker von Beruf und arbeite mich in die Matrixprogrammierung 
ein, und zwar von ganz unten :-)

Kann mir einer mal so grob sagen, wie die angehängte Matrix programmiert 
wird, zb in welcher Sprache und über welches Programm?

Gerne nehme ich auch Vorschläge über andere Schaltungen entgegen, wenn 
jemand damit mehr Erfahrungen gemacht hat...

Gruß
Andreas

Motto: Es gibt nichts, was ich nicht kann-und wenn doch, dann wirds 
gelernt !

von Michael R. (mexman) Benutzerseite


Lesenswert?

>
> Kann mir einer mal so grob sagen, wie die angehängte Matrix programmiert
> wird, zb in welcher Sprache und über welches Programm?


Diese Matrix wird ueberhauptnicht programmiert....kein einziger 
programmierbarer Baustein wurde verwendet.
Die matrix wird nur - wie der Name schon sagt - per Parallelport 
angesteuert.

gruss

Michael

von Michael R. (mexman) Benutzerseite


Lesenswert?

Ach....und wie DU den Parallelport steuerst, ist vollkommen Dir 
ueberlassen und haengt evtl. von Deinem Betriebssystem, Deiner 
bevorzugten Programmiersprache, Deinen Kenntnissen etc. ab.

Gruss

Michael

von Turbotoni (Gast)


Lesenswert?

http://mcselec.com/index.php?option=com_content&task=view&id=225&Itemid=57

Hier ist ein beispiel für eine 8 x 48 Matrix, die durch einen µC 
angesteuert wird

MfG Turbotoni

von MaWin (Gast)


Lesenswert?

Die Schaltung ist an und für sich ganz nett.
Man schliesst sie an den LPT Parallelport eines PC an,
und steuert sie einfach in dem man auf diesen Drucker "druckt".
Sie verhält sich wie ein Drucker, jedoch ohne Zeichencodierung,
die muss man selber codieren (kann dafür jeden Pixel graphisch
ansteuern).

Du hast 5 verschiedene Speicher,
1 bis 4 speichern je 4 bit die zusammen 16 LEDs einer Zeile ergeben.
5 sagt auf welcher Zeile des Displays DIESE Zeile erscheinen soll.

Unter BASIC allgemein:

LPRINT#1 chr$(register*16+daten)

Register wird 0..4 sein, Daten 0..15 = 0000..1111.

LPRINT#1 chr(0*16+1);chr(1*16+15);chr(2*16+9);chr(3*16+3);chr(1*16+15)

lässt auf der ersten Zeile *ooo*****oo*oo** aufleuchten.
Dann muss man schnell die zweite Zeile "ausdrucken" damit der Eindruck 
eines kompletten Bildes entsteht und nicht nur die 1. Zeile kurz 
leuchtet.

Zudem zeigt diese Schaltung, daß man schon vor vielen vielen Jahren 
wenigstens so klug war, ausreichend Spannung und ausreichende 
Stromverstärkung zu verwenden, damit die Displays auch die LEDs mit 
Nennstrom betreiben können. Lider wird wohl der zulässige Spitzenstrom 
der LEDs und Ubereverse der Transistoren überschritten.

Im Schaltplan ist Anschluss 6 IC2 falsch an Anschluss 3 Nand1. 
Vermutlich gehört er an Anschluss 2.

von Andreas (Gast)


Lesenswert?

Hallo Leute,

bin voll begeistert über so viel Resonanz innerhalb so kurzer Zeit.
Dafür erst mal ein grosse DANKESCHÖN.

Die Schaltung wird nicht programmiert, sondern von einem PC gesteuert, 
das ist vollkommen richtig.

Es sind 256 LEDs und (bitte korrigiert mich, wenn ich mich irre) man 
benötigt einen Assembler, der eine halbwegs verständliche Sprache, wie 
zum Beispiel Basic, in 8bit-Wörter umwandelt und diese an den 
Parallel-Port sendet. Gibt es so ein Programm? Und wenn ja, wie sehen 
die Befehle aus? Man muss wahrscheinlich eingeben, welches LED gerade 
leuchten soll, wie lange es leuchten soll. Wie wäre die Syntax dafür? 
Kann mir irgendeiner ein bereits programmiertes File schicken, aus dem 
ich ersehen kann, wie es funktioniert? Habe früher als Jugendlicher in 
Basic auf dem C64 programmiert, ist aber schon lange her. Ich baue eine 
Modellkrake (das Karussel) und benötige diese LED-Matrix für den 
Krakeschriftzug. Ich habe bereits versucht, die verschiedenen Effekte 
mit Flip-Flops und ähnlichem nachzustellen, aber für 3 oder 4 Effekte 
benötigt man einen erheblichen Schaltungsaufwand. Das will ich mit 
dieser Matrix umgehen. Bin über jeden Ratschlag dankbar.

Gruß
Andreas

von Karl H. (kbuchegg)


Lesenswert?

Andreas schrieb:

> Basic auf dem C64 programmiert, ist aber schon lange her. Ich baue eine
> Modellkrake (das Karussel) und benötige diese LED-Matrix für den
> Krakeschriftzug.

Dir ist aber schon klar, dass du dann neben deinen Kraken einen PC 
postieren musst?


Und für den Rest deiner Fragen:
Besorg dir in der nächsten Buchhandlung ein Lehrbuch für die 
Programmiersprache deiner Wahl. Auch du wirst erst mal von der Pieke auf 
programmieren lernen müssen, ehe das mit deiner Anzeige was wird.

von snowfly (Gast)


Lesenswert?

Du kannst dir auch mal das hier anschauen
http://www.instructables.com/id/Led-Cube-8x8x8/
Die Leds müssen nicht in Würfelform angeordnet werden

von Andreas (Gast)


Lesenswert?

Hi,

ok, wenn es einfach nur so ist, das man zB in Basic eine Routine 
schreibt, die den Druckerport anspricht, werde ich mich wohl wieder mit 
Basic vertraut machen müssen. Allerdings kenn ich dann immer noch nicht 
die Syntax, mit der eine bestimmte LED angesprochen wird. Da gibts noch 
Klärungsbedarf.

Gruß
Andreas

von Andreas (Gast)


Lesenswert?

Hi MaWin,

bitte erkläre mir die Bedeutungen der einzelnen Befehle.
LPRINT#1 chr$(register*16+daten)

Was bewirkt die obenstehende Zeile?

LPRINT#1 chr(0*16+1);chr(1*16+15);chr(2*16+9);chr(3*16+3);chr(1*16+15)
Kannst Du mir die Wirkung dieser Befehle beschreiben, damit ich erst 
einmal grundsätzlich verstehe, was da passiert?

Gruß
Andreas

von MaWin (Gast)


Lesenswert?

> bitte erkläre mir die Bedeutungen der einzelnen Befehle.
> LPRINT#1 chr$(register*16+daten);

Das IST die Erklärung.
Ich kann dir doch nicht dein Programm hier schreiben.

von Jobst M. (jobstens-de)


Lesenswert?

Anstelle eines PCs kann hier natürlich auch ein uC treten ...


Gruß

Jobst

von Andreas (Gast)


Lesenswert?

Ein uC ist sicherlich später mal eine denkbare Alternative zum 
Uralt-Laptop, aber erst einmal muß ich es realisieren können...:-))

@MaWin: Ich will nicht, daß du mir hier ein Programm schreibst, ich 
wollte lediglich wissen, mit welchem Befehl du eine ganz bestimmte LED 
ansprichst.
Dann kann ich den Rest alleine machen.
(0*16+1): Kannst du mir das einzeln vermitteln? 0 ist wahrscheinlich das 
Register, 16 die Anzahl der LEDs im Register?? und die 1 ??

Nimms mir nicht übel, ich will doch nur lernen...:-))

von Andreas (Gast)


Lesenswert?

wo habt ihr eigentlich das "MÜ" auf eurer Tastatur???

von holger (Gast)


Lesenswert?

ALT Gr - m

von Andreas (Gast)


Lesenswert?

µµµµµµµµµµµµµµµµ


danke, Holger

von Andreas (Gast)


Lesenswert?

Hallo nochmal,

mein Layout macht grosse Fortschritte, allerdings ist mir da etwas 
unklar. Bei dem IC4508 sind Verbindungen zwischen den Pins 5 und 16, 7 
und 18, 9 und 20 und 11 und 22. Sind die im IC schon verbunden oder muss 
das auf der Platine passieren.

Gruß
Andreas

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.