- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: LED Matrix Logikproblem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Hi,
    das was du beschrieben hast ist zwar ein toller Ansatz, aber ich glaube nicht ganz das Problem was ich meinte.
    Mir ging es darum das ich jetzt ja quasi die Werte jeder einzelnen Zeile in einer Tabelle oder von mir aus auch in einem Array hinterlegt habe.

    Dann sieht das array für das Zeichen "X" z.b. so aus:

    Zeile1: &B100000001
    Zeile2: &B010000010
    Zeile3: &B001000100
    Zeile4: &B000101000
    Zeile5: &B000101000
    Zeile6: &B001000100
    Zeile7: &B010000010
    Zeile8: &B100000001
    ________^
    Spalte

    Ich lasse jetzt Spalte für Spalte durchlaufen. d.h. ich müsste jetzt für die Spalte 1 ein Byte erzeugen aus den Bits, die an der Stelle des Pfeiles in der Tabelle stehen (das wäre von oben nach unten &B10000001). Dieses Byte wird dann ausgegeben. Dann für die 2. Stelle / Spalte. usw. usw.
    Um so das bild aufzubauen.
    Mir geht es jetzt nicht um einen Effekt um das Zeichen einlaufen zu lassen oder ähnliches, sondern wirklich nur um den Bildaufbau beim Multiplexen.

    Gibt es da einen eleganteren Weg um das Zeichen zu hinterlegen oder bzw. das Multiplexen durchzuführen, ohne das ich aus dem Bytearray für jede Zeile ein neues Byte erstellen muss?

    Viele Grüße
    Geändert von demmy (05.05.2014 um 14:15 Uhr) Grund: Verschrieben

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo,
    warum schreibst Du nicht gleich alle Bits, die durch den Pfeil markiert sind, in ein Byte? Dann steht das Zeichen nicht wie jetzt aufrecht, sondern 90° verdreht.

    Ich wüßte jetzt nicht, wie man das sonst einfach machen könnte außer umsortieren der einzelnen Bits mit
    Byte.0 = Byte_ar(Zeile1).0
    Byte.1 = Byte_ar(Zeile2).0
    .
    Byte.7 = Byte_ar(Zeile8 ).0
    (falls sich die Arrayelemente auch so bitweise ansprechen lassen - noch nicht probiert)

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Mhh stimmt, das bringt mich gerade auf eine Idee!

    Was wäre wenn ich die Zeilen anstelle der Spalten durchrollieren lasse? Dann wird das Bild von oben nach unten aufgebaut und nicht von links nach rechts und ich könnte in dem Bytearray zeilenweise das Bild hinterlegen so wie oben beschrieben!
    Dann könnte ich das ganze Byte so wie es in der Tabelle hinterlegt ist einfach ins Schieberegister schieben!
    Das müsste doch so ohne großen Aufwand funktionieren oder?

    Viele Grüße!

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Zitat Zitat von demmy Beitrag anzeigen
    Was wäre wenn ich die Zeilen anstelle der Spalten durchrollieren lasse? ...
    Das müsste doch so ohne großen Aufwand funktionieren oder?
    Na klar. Du hast ja an den Kathoden und den Anoden Schieberegister. Mußt also sowieso jedes Mal 16 Bit für Zeilenbyte und Spaltenbyte seriell hineinschieben. Welche Reihenfolge ist da ja egal. Ich nehme an die Schieberegister sind kaskadiert also hintereinandergeschaltet.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von demmy Beitrag anzeigen
    Mir geht es jetzt nicht um einen Effekt um das Zeichen einlaufen zu lassen oder ähnliches, sondern wirklich nur um den Bildaufbau beim Multiplexen.
    Dazu noch ein paar Tipps:

    - Damit es nicht gross flimmert solltest du etwa 25Hz Bildfrequenz anstreben. Mit deiner 8x Matrix musst du also mit 200Hz die Zeilen updaten.

    - Wenn eine falsche LED auch nur ein paar µs angesteuert wird, ergibt das einen Schatten im Bild. Du musst also sicherstellen, dass beim einschieben der Daten, die die LEDs nicht ansteuern. Also entweder musst du Schieberegister mit Buffer verwenden und nach dem Schieben die Daten in deren Ausgangsbuffer transferieren oder du musst während dem Schieben das Display dunkel tasten.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Ja die Schieberegister sind kaskadiert!

    Also bei den von mir verwendeten Schieberegistern gibt es einen Pin mit dem ich die Bits nach dem Schreiben ausgeben lassen kann. Ich denke das ist das was du meinst oder?
    Zu der Bildfrequenz hatte ich mir überlegt, einen Timer zu verwenden der alle 20ms das ganze Bild aufbaut. Das wären dann 50 Bildaufbauten / Sekunde.
    Das müsste doch ausreichen oder hab ich einen Denkfehler?

    Vielen Dank schon mal für euere Hilfe!

    Viele Grüße

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von demmy Beitrag anzeigen
    Also bei den von mir verwendeten Schieberegistern gibt es einen Pin mit dem ich die Bits nach dem Schreiben ausgeben lassen kann. Ich denke das ist das was du meinst oder?
    Jain, das können nur Tri-State Buffer sein oder halt noch ein zusätzliches Register.
    Welche Schieberegister hast du vorgesehen?

    Zitat Zitat von demmy Beitrag anzeigen
    Zu der Bildfrequenz hatte ich mir überlegt, einen Timer zu verwenden der alle 20ms das ganze Bild aufbaut. Das wären dann 50 Bildaufbauten / Sekunde.
    Das müsste doch ausreichen oder hab ich einen Denkfehler?
    Jo.
    Es kann immer nur eine einzelne Zeile leuchten.
    Du kannst also nicht ein ganzes Bild aufs mal ausgeben.

    Wenn du einen 4ms Interrupt erzeugst, kannst du bei jedem Interrupt eine Zeile ausgeben.
    Nach 8 Zeilen hast du ein ganzes Bild. Fürs Auge muss jede Zeile gleich lang eingeschaltet sein, damit alle LEDs scheinbar gleich hell leuchten.
    Jede Zeile leuchtet dann 1/8 der Zeit, aber entsprechend musst du mit dem LED Strom rauf, sonst hast du einen Dimmer.

    Und wie ich schon schrieb, wenn eine LED für ein paar µs aufblitzt, sieht man das mit dem Auge als leichtes glimmen, ergibt eine sehr unschöne Anzeige.

    Ich habe schon viele 7-Seg Anzeigen per Software gemultiplext, ist das selbe wie bei dir, nur die LEDs sin anders angeordnet.

    Meist direkt von einem I/O-Port angesteuert.
    Da muss man erst das Digit ausschalten, dann die Segmente für das nächste ausgeben und dann das nächste Digit einschalten.
    Wenn erst das Digit umschaltet und dann die neuen Segmentdaten ausgibt, hat man einen Schatten der vorigen Anzeige auf dem nächsten Digit.
    Das sind zwar nur ein paar µs während derer die falschen Daten ausgegeben werden, aber man sieht es ....

    Das Schattenproblem hat mich nur bei meinem ersten Versuch überrascht, aber das ist schon über 30 Jahre her.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    29.07.2011
    Beiträge
    348
    Hi,

    also verwenden wollte ich das 74HC 595 Schieberegister.

    Danke für die nützlichen Infos.

    Ich wollte ursprünglich in dem Timer in einer Schleife alle Zeilen nacheinander aufbauen, und das eben alle 20ms.
    Aber ich denke das ist das was du gemeint hast, wenn die LED's dann nur kurz aufblitzen sieht es unschön aus.
    Also wäre es besser wenn ich bei jedem Timerüberlauf nur eine Zeile ausgebe.

    Ich hoffe ich hab das so richtig verstanden?

    Viele Grüße

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2013
    Ort
    Region Basel
    Alter
    67
    Beiträge
    2.435
    Hallo,
    Zitat Zitat von demmy Beitrag anzeigen
    also verwenden wollte ich das 74HC 595 Schieberegister.

    Ich wollte ursprünglich in dem Timer in einer Schleife alle Zeilen nacheinander aufbauen, und das eben alle 20ms.
    Aber ich denke das ist das was du gemeint hast, wenn die LED's dann nur kurz aufblitzen sieht es unschön aus.
    Also wäre es besser wenn ich bei jedem Timerüberlauf nur eine Zeile ausgebe.

    Ich hoffe ich hab das so richtig verstanden?
    Der 595 ist gut.
    Da kannst du die Bits durchschieben ohne, dass sich die Ausgänge verändern.
    Wenn du dann fertig mit schieben bis, kannst mit einem Impuls die Bist ins Register übernehmen.

    Den Rest du scheinbar richtig verstanden.

    MfG Peter(TOO)
    Manchmal frage ich mich, wieso meine Generation Geräte ohne Simulation entwickeln konnte?

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von Searcher
    Registriert seit
    07.06.2009
    Ort
    NRW
    Beiträge
    1.715
    Blog-Einträge
    133
    Hallo demmy,
    Zitat Zitat von demmy Beitrag anzeigen
    Also wäre es besser wenn ich bei jedem Timerüberlauf nur eine Zeile ausgebe.
    Man muß auch auf die Hardware achten. Bisher habe ich Dein gepostestes Bild als Prinzip verstanden. Als reale Schaltung brauchen die LEDs Vorwiderstände um ihren Strom zu begrenzen.

    Die 74H595 können nur so ca 25mA oder 35mA (kommt wohl auf den Hersteller an) liefern. Wird zB eine Spalte angesteuert und gleichzeitig in dieser Spalte mehrere Zeilen LED, muß das Spaltenschieberegister für alle diese Zeilenleds (maximal 8 ) den Strom liefern. Das wären zB 20mA * 8 = 160 mA. Es muß also noch ein Transistor oder ein anderer Treiber in der Schaltung sein.

    Wird bei jedem Multipleximpuls nur eine einzige LED angesteuert, wären die 74HC595 stark genug. Es muß dann aber mit wesentlich höherer Frequenz gemultiplext werden. Da dann jede einzelne LED aber nur ein Achtel der vorherigen Zeit leuchten würde, würde das Bild aber auch recht dunkel erscheinen.

    Gruß
    Searcher
    Hoffentlich liegt das Ziel auch am Weg
    ..................................................................Der Weg zu einigen meiner Konstruktionen

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. LED Matrix anzeigen
    Von Naturp im Forum Suche bestimmtes Bauteil bzw. Empfehlung
    Antworten: 2
    Letzter Beitrag: 03.04.2013, 21:43
  2. LED Matrix
    Von Zwerwelfliescher im Forum Elektronik
    Antworten: 3
    Letzter Beitrag: 02.09.2011, 19:54
  3. LED Matrix
    Von Tanne123 im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 3
    Letzter Beitrag: 13.10.2010, 22:20
  4. LED MATRIX
    Von Beta im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 01.06.2009, 21:47
  5. LED Matrix
    Von .Johannes. im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 30.08.2006, 21:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress