|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 19:47 Titel: Schieberegister-LED Matrix |
|
|
Hallo zusammen,
ich hab mir mal eine Buchstabenmatrix zusammengebaut.
Diese besteht aus folgendem:
5 Leds in der Spalte
Insgesamt sind es 7 Zeilen.
Demnach habe ich 35 LEDS verwendet.
Nun kann ich bei 5 Spalten eine Spannung anlegen.
Bei den 7 Zeilen mache ich Transistoren "Typ BC547" leitend.
So delle.
Insgesamt verwende ich dann 12 Ausgänge.
Demnach habe ich 2 Schieberegister des Typs 4094 verwendet.
Also ein seriell -> parallel Wandler.
Wenn ich nun folgenden Programmiercode verwende:
Code: |
cls
'DATA =OUT &H3FB, 64
'CLOCK =OUT &H3FC, 1
'STROBE =OUT &H3FC, 2
OUT &H3FB, 0
OUT &H3FC, 0
do
bi11$ = "100010000001"
bi12$ = "100010000010"
bi13$ = "100010000100"
bi14$ = "111110001000"
bi15$ = "100010010000"
bi16$ = "100010100000"
bi17$ = "100011000000"
FOR i = 1 TO 12
binaer$ = RIGHT$(bi11$, i)
binaera$ = left$(binaer$, 1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
out &H3FC,2
out &H3FC,0
FOR i = 1 TO 12
binaer$ = RIGHT$(bi12$, i)
binaera$ = left$(binaer$, 1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
out &H3FC,2
out &H3FC,0
FOR i = 1 TO 12
binaer$ = RIGHT$(bi13$, i)
binaera$ = left$(binaer$, 1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
out &H3FC,2
out &H3FC,0
FOR i = 1 TO 12
binaer$ = RIGHT$(bi14$, i)
binaera$ = left$(binaer$, 1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
out &H3FC,2
out &H3FC,0
FOR i = 1 TO 12
binaer$ = RIGHT$(bi15$, i)
binaera$ = left$(binaer$, 1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
out &H3FC,2
out &H3FC,0
FOR i = 1 TO 12
binaer$ = RIGHT$(bi16$, i)
binaera$ = left$(binaer$, 1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
out &H3FC,2
out &H3FC,0
FOR i = 1 TO 12
binaer$ = RIGHT$(bi17$, i)
binaera$ = left$(binaer$, 1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
out &H3FC,2
out &H3FC,0
loop
sleep
|
zeigt es mir zwar den Buchstaben an, jedoch flackert es noch bei anderen LEDS.....
Woran kann dies liegen....
Mit freebasic, flackert es bis zum geht nicht mehr.
Cu Andy
Editiert durch Moderator: Code-Tags hinzugefügt (A.K.) |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 21:10 Titel: |
|
|
Hallo
Auf den ersten Blick habe ich keinen Fehler gefunden, vielleicht liegt es an der Schaltung. Ich habe dein Programm mal etwas umgeschrieben. Die Funktion ist exakt die gleiche geblieben, nur musst du nach jeder Zeile eine Taste drücken. So kannst du mal versuchen, das Flackern etwas genauer zu analysieren. Vielleicht kannst du so den Fehler etwas genauer beschreiben.
Code: | CLS
'DATA =OUT &H3FB, 64
'CLOCK =OUT &H3FC, 1
'STROBE =OUT &H3FC, 2
bit$(1) = "100010000001"
bit$(2) = "100010000010"
bit$(3) = "100010000100"
bit$(4) = "111110001000"
bit$(5) = "100010010000"
bit$(6) = "100010100000"
bit$(7) = "100011000000"
DO
FOR zeile = 1 TO 7
FOR i = 1 TO 12
binaer = VAL(MID$(bit$(zeile), i, 1))
OUT &H3FB, 64 * binaer
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
NEXT
PRINT
OUT &H3FC, 2
OUT &H3FC, 0
DO: LOOP WHILE INKEY$ = "" 'Hier wird bei jeder Zeile gewartet
NEXT
LOOP |
Du kannst so eine 5x7-Matrix übrigens auch mit einem 4094 ansteuern, dazu später mehr wenn du willst.
Gruss
Skilltronic _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 21:16 Titel: |
|
|
Mit kommt es bei meinem Code vor, als würden die Daten manchmal falsch übertragen werden.
Deswegen vielleicht auch diese ab und zu woanders flackernden LEDS.
Der Buchstabe wird jedoch korrekt dargestellt.
Ich hoffe Du kannst mir noch auf die schnelle helfen. |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 21:21 Titel: |
|
|
Hast du meinen Code mal ausprobiert? Mach das mal, schau' dir genau an, was passiert und beschreibe dann den Fehler. Wie gsagt habe ich an der Funktion des Programms nichts geändert, ich habe es nur kürzer gemacht und es sollte genauso flackern. Ich bin noch ne Weile hier... _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 21:33 Titel: re.: |
|
|
So den Code habe ich auch noch mal ändern müssen......
Code: |
CLS
'DATA =OUT &H3FB, 64
'CLOCK =OUT &H3FC, 1
'STROBE =OUT &H3FC, 2
bit$(1) = "100010000001"
bit$(2) = "100010000010"
bit$(3) = "100010000100"
bit$(4) = "111110001000"
bit$(5) = "100010010000"
bit$(6) = "100010100000"
bit$(7) = "100011000000"
DO
FOR zeile = 1 TO 7
FOR i = 1 TO 12
binaer$ = RIGHT$(bit$(zeile), i)
binaera$ = LEFT$ (binaer$,1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
PRINT
OUT &H3FC, 2
OUT &H3FC, 0
DO: LOOP WHILE INKEY$ = "" 'Hier wird bei jeder Zeile gewartet
NEXT
LOOP
|
also hier findet man irgendwie nicht den Fehler.....
wenn ich es jetzt aber nur in eine Schleife mache, dann leuchten auch ab und zu andere LEDS auf, was dafür steht, dass irgendwas beim Übertrag zu den Schieberegistern nicht stimmt.
hier der Code:
Code: |
CLS
'DATA =OUT &H3FB, 64
'CLOCK =OUT &H3FC, 1
'STROBE =OUT &H3FC, 2
bit$(1) = "100010000001"
bit$(2) = "100010000010"
bit$(3) = "100010000100"
bit$(4) = "111110001000"
bit$(5) = "100010010000"
bit$(6) = "100010100000"
bit$(7) = "100011000000"
DO
FOR zeile = 1 TO 7
FOR i = 1 TO 12
binaer$ = RIGHT$(bit$(zeile), i)
binaera$ = LEFT$ (binaer$,1)
if binaera$ = "1" then
OUT &H3FB, 64
OUT &H3FC, 1
OUT &H3FC, 0
OUT &H3FB, 0
else
OUT &H3FC, 1
OUT &H3FC, 0
end if
NEXT
PRINT
OUT &H3FC, 2
OUT &H3FC, 0
'DO: LOOP WHILE INKEY$ = "" 'Hier wird bei jeder Zeile gewartet
NEXT
LOOP
|
Apropo ich habe gerade auch festgestellt, dass bei der Tastenwahl es ab und zu zu falschen Darstellungen führt. |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 21:41 Titel: Re: re.: |
|
|
Andy19312 hat Folgendes geschrieben: | also hier findet man irgendwie nicht den Fehler..... |
Was heisst das? Werden die einzelnen Zeilen so richtig angezeigt? Und warum hast du den Code ändern müssen?
VAL macht übrigens aus einer Text-"1" die Zahl 1 und mit MID$ kann man einzelne Zeichen auch aus der Mitte von Strings auslesen, nicht nur von links und rechts. _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 21:42 Titel: |
|
|
Ich muss den Code von rechts nach links auslesen...... |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 21:50 Titel: |
|
|
Oh - mein Fehler. In dem Fall kannst du bei meinem Beispiel auch
auch gegen
Code: | FOR i = 12 TO 1 STEP -1 |
ersetzen. Trotzdem nochmal. Was passiert den nun genau wenn du's Zeile für Zeile anzeigen lässt? Blinken da auch falsche LEDs oder geht es dann? _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 21:54 Titel: |
|
|
es blinken ab und zu falsche leds.
circa 10-12 normale durchgänge und dann auf einmal...... |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 22:00 Titel: |
|
|
Mach' es doch nicht so spannend. Welche LEDs und was heisst ab und zu? Immer die gleichen in der gleichen Zeile oder wie? Wenn du das nicht etwas genauer beschreibst, kann ich dir auch nicht helfen. Wenn ich mir mit meinen Antworten Mühe geben soll, dann tue das doch bitte auch bei deinen... Kannst du mir einen Schaltplan oder ein Bild deiner Schaltung schicken, auf dem man erkennt, wie sie verdrahtet ist? _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 22:14 Titel: |
|
|
Ok, hier habe ich nochmal auf die schnelle einen Schaltplan der DOT Matrix zusammengestellt:
|
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 22:27 Titel: |
|
|
Ich meinte eigentlich ein Bild bzw. Foto der echten Schaltung, das Prinzip ist mir klar, ich habe sowas auch schon gebaut. Nochmal zurück zu den falsch blinkenden LEDs. Du schreibst nach ca. 10-12 Durchgängen. Meinst du damit 10-12 mal werden alle 7 Zeilen richtig angezeigt und dann fängt es an zu spinnen? Wiederholt sich der Fahler, also passiert jedesmal das gleiche oder sind es manchmal 10, dann wieder 12 Durchgänge? Hast du Pin 15 (output enable) auf +5V gelegt? _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 22:35 Titel: |
|
|
Die Durchgänge sind auch unterschiedlich.
Jepp Pin 15 ist auf 5 Volt |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 22:40 Titel: |
|
|
Also es wird ca. 10-12 mal das Zeichen komplett (alle 7 Zeilen) richtig angezeigt und dann fangen die Problem an? Bald hast du mich soweit, dass ich mir die Schaltung selbst mal zusammenstöpsle... _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 22:45 Titel: |
|
|
Unterschiedlich jepp... Mal nach 8 durchläufen, mal nach 20 durchläufen usw.
Ok, wenn es zu einem gemeinsamen Projekt hinläuft.....
Hier die Binärwerte für alle Buchstaben und Zahlen vorerst einmal "natürlich auch alles selbst zusammengestellt".
http://home.arcor.de/andy.bos/Matrizejpg/
Die nächste Frage:
Bis wann hättest du es selbst zusammengestöpselt? |
|
Nach oben |
|
|
Kai Bareis
Anmeldungsdatum: 10.09.2004 Beiträge: 545 Wohnort: Baden Würtemberg
|
Verfasst am: 08.10.2006, 22:53 Titel: |
|
|
Also ich würde die Spalten multiplexen und nicht die zeilen das hat den vorteil das man sich so zeit erspart. und sowas was du gemacht hast hab ich auch mal gebaut allerdings direkt mit den LPT pins angesteuert. ansonsten müsste ich mal so ein LED Matrix Modul nehmen und 2 x4094 und ein paar transistroen dranbasteln. _________________ MfG Kai Bareis
Es ist noch kein Meister vom Himmel gefallen! Warum einfach wens auch umständlich geht! |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 08.10.2006, 23:00 Titel: |
|
|
@KB: wenn man die Zeilen multiplext, kommt man mit 8 Ausgängen aus, wenn man einen binär zu dezimal Decoder benutzt. 5 Bit für die LEDs einer Zeile, 3 für die Zeilen 0-6. Siehst du einen Fehler im Programm?
@ Andy19312: Bin schon am Stöpseln, 1/4 Stunde vielleicht. Koche aber auch gerade noch parallel... _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 08.10.2006, 23:56 Titel: |
|
|
@skilltronics = keine results |
|
Nach oben |
|
|
Skilltronic
Anmeldungsdatum: 10.09.2004 Beiträge: 1148 Wohnort: Köln
|
Verfasst am: 09.10.2006, 00:18 Titel: |
|
|
Also so schnell schnell zwischen kochen und essen wird das nichts. Meine zusammengesteckte Schaltung zickt auch rum. So langsam werde ich auch müde. Ich mache jetzt Schluss für heute und melde mich morgen wieder.
EDIT: So, ich habe es jetzt doch noch nachgebaut und es funktioniert bei mir mit dem Programm einwandfrei. Der Fehler muss wohl, wie schon vermutet, an deiner Schaltung liegen. Vielleicht hast du dich irgendwo verlötet. _________________ Elektronik und QB? www.skilltronics.de ! |
|
Nach oben |
|
|
Andy19312
Anmeldungsdatum: 22.10.2005 Beiträge: 428
|
Verfasst am: 09.10.2006, 14:27 Titel: |
|
|
Ok, dann zeig mal bitte Dein Schaltplan.
Cu Andy. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|