Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Schieberegister-LED Matrix
Gehe zu Seite 1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 18:47    Titel: Schieberegister-LED Matrix Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 20:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 20:16    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 20:21    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 20:33    Titel: re.: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 20:41    Titel: Re: re.: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 20:42    Titel: Antworten mit Zitat

Ich muss den Code von rechts nach links auslesen......
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 20:50    Titel: Antworten mit Zitat

Oh - mein Fehler. In dem Fall kannst du bei meinem Beispiel auch

Code:
FOR i = 1 TO 12


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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 20:54    Titel: Antworten mit Zitat

es blinken ab und zu falsche leds.
circa 10-12 normale durchgänge und dann auf einmal......
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 21:00    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 21:14    Titel: Antworten mit Zitat

Ok, hier habe ich nochmal auf die schnelle einen Schaltplan der DOT Matrix zusammengestellt:

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 21:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 21:35    Titel: Antworten mit Zitat

Die Durchgänge sind auch unterschiedlich.

Jepp Pin 15 ist auf 5 Volt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 21:40    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 21:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Kai Bareis



Anmeldungsdatum: 10.09.2004
Beiträge: 545
Wohnort: Baden Würtemberg

BeitragVerfasst am: 08.10.2006, 21:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 22:00    Titel: Antworten mit Zitat

@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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.10.2006, 22:56    Titel: Antworten mit Zitat

@skilltronics = keine results
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 08.10.2006, 23:18    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 09.10.2006, 13:27    Titel: Antworten mit Zitat

Ok, dann zeig mal bitte Dein Schaltplan.

Cu Andy.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite 1, 2, 3  Weiter
Seite 1 von 3

 
Gehe zu:  
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.

 Impressum :: Datenschutz