Do-it-yourself-Strahl aus einer LED-Matrix. Adressierbare LED-Matrizen

Manchmal ist es erforderlich, mehrere Sieben-Segment-Anzeigen oder eine LED-Matrix an den Mikrocontroller anzuschließen, während die dynamische Anzeige zur Anzeige von Informationen verwendet wird. Das Wesen der dynamischen Anzeige ist die sukzessive Anzeige von Informationen auf den Anzeigen. Das folgende Diagramm zeigt ein Beispiel für den Anschluss mehrerer Sieben-Segment-Anzeigen (z. B. mit einer gemeinsamen Kathode), um eine dynamische Anzeige zu implementieren. Unter Berücksichtigung des Punktes werden im Allgemeinen 8 Segmente erhalten, jedoch auf die altmodische Weise so genannt. Alle Abschlüsse (Anoden) der gleichnamigen Segmente sind miteinander verbunden, für insgesamt 8 Leitungen, die über Widerstände mit dem Mikrocontroller verbunden sind. Die gemeinsame Kathode jedes Anzeigers ist über einen Transistor mit dem Mikrocontroller verbunden.


Der Anzeigealgorithmus ist wie folgt: Zuerst legen wir die erforderlichen logischen Pegel auf den Leitungen fest, je nachdem, welche Segmente auf der ersten Anzeige eingeschaltet werden müssen (Anzeige von links nach rechts), mit einem hohen logischen Pegel zum Einschalten und einem niedrigen zu Schalten Sie das Segment aus. Als nächstes legen wir einen hohen Logikpegel an die Basis des Transistors VT1 an, wodurch die gemeinsame Kathode des ersten Indikators mit dem gemeinsamen Draht verbunden wird, in diesem Moment leuchten die Segmente auf, an deren Anoden sich eine logische Einheit befindet. Durch bestimmte Zeit(Pause) schalte den Indikator aus, indem du einen niedrigen Logikpegel an die Basis des Transistors anlegst, dann ändere erneut die logischen Pegel auf den Leitungen in Übereinstimmung mit der Ausgangsinformation, die für den zweiten Indikator bestimmt ist, und lege ein Einschaltsignal an den Transistor VT2. Also schalten wir der Reihe nach in einem Kreiszyklus alle Indikatoren, das ist die ganze dynamische Anzeige.

Um ein solides Bild ohne Flimmern zu erhalten, muss mit hoher Geschwindigkeit umgeschaltet werden, um ein Flackern der LEDs zu verhindern, muss die Bildwiederholfrequenz auf 70 Hz oder mehr eingestellt werden, ich stelle sie normalerweise auf 100 Hz ein. Für die obige Konstruktion wird die Pause wie folgt berechnet: Bei einer Frequenz von 100 Hz beträgt die Periode 10 ms, es gibt jeweils nur 4 Anzeigen, die Leuchtzeit jeder Anzeige wird auf 10/4 = 2,5 ms eingestellt. In einem Gehäuse befinden sich mehrstellige Sieben-Segment-Anzeigen, bei denen die gleichnamigen Segmente im Gehäuse selbst verbunden sind. Um sie zu verwenden, muss natürlich eine dynamische Anzeige verwendet werden.

Um eine dynamische Anzeige zu implementieren, ist es notwendig, Unterbrechungen beim Überlauf eines der Zeitgeber zu verwenden. Unten ist der Code, der den TMR0-Timer verwendet:

;Implementierung dynamischer Anzeige für 4 Siebensegmentanzeigen ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;; swapf STATUS,W ; clrf STATUS ; movwf STATUS_TEMP ; ; bcf ind1 ;schalte den 1. Indikator aus bcf ind2 ;schalte den 2. Indikator aus bcf ind3 ;schalte den 3. Indikator aus bcf ind4 ;schalte den 4. Indikator aus; incf shet,F ;Register shet erhöhen movlw .5 ;Registerinhalt überprüfen shet xorwf shet,W ;überprüfen, ob es gleich 5 ist btfss STATUS,Z ; goto met1 ;Nummer im Shet-Register ist nicht gleich 5 movlw .1 ;Nummer im Shet-Register ist 5: schreibe Nummer 1 movwf shet ;in Shet-Register ; met1 movlw .1 ;Registerinhalt überprüfen shet xorwf shet,W ;gleich Nummer 1 btfss STATUS,Z ; goto met2 ;Nummer im Shet-Register ist ungleich 1: springe zu met2 movf datind1,W ;Nummer im Shet-Register ist gleich 1: kopiere movwf PORTB ;Inhalt von datind1-Register nach PORTB-Register bsf ind1 ;schalte den 1. Indikator met2 ein movlw .2 ;Überprüfe den Inhalt des Registers shet xorwf shet,W ;gleich 2 btfss STATUS,Z ; goto met3 ;Nummer im Shet-Register ungleich 2: zu met3 springen movf datind2,W ;Nummer im Shet-Register ist 2: movwf kopieren PORTB ;Inhalt von datind2-Register in PORTB-Register bsf ind2 ;schalten Sie den 2. Indikator ein goto exxit ;springen zu Label exxit met3 movlw .3 ;Registerinhalt prüfen shet xorwf shet,W ;gleich 3 btfss STATUS,Z ; goto met4 ;Nummer im Shet-Register ungleich 3: zu met4 springen movf datind3,W ;Nummer im Shet-Register ist 3: movwf kopieren PORTB ;Inhalt des datind3-Registers in PORTB-Register bsf ind3 ;dritten Indikator einschalten goto exxit ;springe zu label exxit met4 movf datind4,W ;kopiere den Inhalt des datind3-Registers movwf PORTB ;in das PORTB-Register bsf ind4 ;schalte den 4. Indikator ein; movlw .100 ; schreibe 156 in das Timer-Register TMR0 movwf TMR0 ; ; movwf STATUS ; swapf W_TEMP,F ; swapf W_TEMP,W ; ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; Hauptprogramm ................ movlw b"11010011" ; OPTION_REG, dadurch Einstellung des internen ; Einstellung des Prescaler-Verhältnisses 1:16 ; clrf shet ;register shet zurücksetzen, vor dem Start Interrupts bei Überlauf TMR0, durchgeführt; clrf datind1 ;Löschen von Registern für die Ausgabe von Informationen an clrf datind2 ;Indikatoren, entspricht dem Ausschalten von clrf datind3 ;Indikatoren, da Indikatoren mit einem gemeinsamen clrf datind4 ;Kathode; bcf INTCON,T0IF ;Lösche TMR0-Überlauf-Interrupt-Flag bsf INTCON,T0IE ;Aktiviere TMR0-Überlauf-Interrupts bsf INTCON,GIE ;Aktiviere globale Interrupts; movlw b"00000110" ; 13.52 Ausgabebeispiel movwf datind1 ; movlw b"11001111" ; movwf datiert2 ; movlw b"01101101" ; movwf datiert3 ; movlwb"01011011" ; movwf datiert4 ; ; . ................; .................; .................; ; end ; Ende des gesamten Programms;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Implementierung dynamischer Anzeige für 4 Sieben-Segment-Anzeigen

;Beispiel Taktfrequenz 4 MHz, Maschinentakt 1 µs

org 0000h ;Programmausführung bei Adresse 0000h starten

gehe zu Start ;gehe zu Label Start

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Routine unterbrechen

org 0004h ;Unterprogrammausführung bei Adresse 0004h starten

movwf W_TEMP ;Schlüsselregisterwerte speichern

swapf STATUS,W ;

movwf STATUS_TEMP ;

bcf ind1 ;schalten Sie die 1. Anzeige aus

bcf ind2 ;schalten Sie die 2. Anzeige aus

bcf ind3 ;schalten Sie die 3. Anzeige aus

bcf ind4 ;schalten Sie die 4. Anzeige aus

incf shet,F ;Register shet inkrementieren

movlw .5 ; Überprüfen Sie den Inhalt des Registerblatts

xorwf shet,W ; gleich 5

btfss STATUS,Z ;

goto met1 ;Nummer im Registerblatt ist nicht gleich 5

movlw .1 ;Nummer im Shet-Register ist 5: schreibe Nummer 1

movwf shet ;um shet zu registrieren

met1 movlw .1 ; überprüfen Sie den Inhalt des Shet-Registers

xorwf shet,W ; gleich Nummer 1

btfss STATUS,Z ;

goto met2 ;Nummer im Shet-Register ungleich 1: Sprung zu met2

movf datind1,W ;Nummer im Blattregister ist 1: Kopie

movwf PORTB ; Inhalt des datind1-Registers zum PORTB-Register

bsf ind1 ;schalten Sie die 1. Anzeige ein

goto exxit ;gehe zum Label exxit

met2 movlw .2 ; überprüfen Sie den Inhalt des Shet-Registers

xorwf shet,W ; gleich Nummer 2

btfss STATUS,Z ;

goto met3 ;Nummer im Shet-Register ungleich 2: Sprung zu met3

movf datind2,W ;Nummer im Blattregister ist 2: Kopie

movwf PORTB ; Inhalt des datind2-Registers zum PORTB-Register

bsf ind2 ;schalten Sie die 2. Anzeige ein

goto exxit ;gehe zum Label exxit

met3 movlw .3 ; überprüfen Sie den Inhalt des Shet-Registers

xorwf shet,W ; gleich Nummer 3

btfss STATUS,Z ;

goto met4 ;Nummer im Shet-Register ungleich 3: Sprung zu met4

movf datind3,W ;Nummer im Blattregister ist 3: Kopie

movwf PORTB ; Inhalt des datind3-Registers zum PORTB-Register

bsf ind3 ;schalten Sie die 3. Anzeige ein

goto exxit ;gehe zum Label exxit

met4 movf datind4,W ; Inhalt des Registers datind3 kopieren

movwf PORTB ;an PORTB registrieren

bsf ind4 ;schalten Sie die 4. Anzeige ein

exxit bcf INTCON,T0IF ; TMR0-Überlauf-Interrupt-Flag zurücksetzen

movlw .100 ;Zahl 156 in Timer-Register TMR0 schreiben

swapf STATUS_TEMP,W ; stellt den Inhalt der Schlüsselregister wieder her

swapf W_TEMP,F ;

swapf W_TEMP,W ;

retfie ;Interrupt-Routine verlassen

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Hauptprogramm

Start ................. ; Ersteinrichtung registriert

................. ;Sonderzweck

.................

bsf STATUS,RP0 ;Binärzahl 11010011 ins Register schreiben

movlw b"11010011" ;OPTION_REG, wodurch die interne

movwf OPTION_REG ; Taktquelle für TMR0

bcf STATUS,RP0 ;Prescaler vor TMR0 aktivieren

;Stellen Sie das Prescaler-Verhältnis auf 1:16 ein

clrf shet ; Zurücksetzen des Shet-Registers vor dem Start

;Überlauf-Interrupt TMR0, durchgeführt

;einmal nach dem Einschalten

clrf datind1 ; Register zum Ausgeben von Informationen löschen

clrf datind2 ;Indikatoren, äquivalent zu off

clrf datind3 ;Indikatoren, seit Indikatoren mit einem gemeinsamen

clrf dateind4 ;Kathode

bcf INTCON,T0IF ; TMR0-Überlauf-Interrupt-Flag zurücksetzen

bsf INTCON,T0IE ;aktiviert TMR0-Überlauf-Interrupts

bsf INTCON,GIE ; globale Interrupts aktivieren

movlw b"00000110" ; 13.52 Ausgabebeispiel

movlw b"11001111" ;

movlw b"01101101" ;

movlwb"01011011" ;

................. ;

................. ;

................. ;

end ; Ende des gesamten Programms

Im Hauptprogramm haben wir zuerst einen Timer mit dem OPTION_REG-Register eingerichtet, zuvor habe ich über die Verwendung von Timern für . Als nächstes löschen wir das Shet-Register, das für die Eingabe einer Zählung von 1 bis 4 für jeden Indikator vorgesehen ist. Dieses Register wird in der Interrupt-Service-Routine inkrementiert und dort angepasst (es zählt von 1 bis 4), so dass dieses Löschen einmal nach dem Einschalten durchgeführt wird. Auf der Grundlage dieses Registers werden wir bestimmen, welcher Indikator aufgenommen werden soll, und entsprechende Daten herausgeben. Der nächste Schritt besteht darin, die Informationsspeicherregister zu löschen, wobei die vier dataind1, 2, 3, 4-Register den vier Anzeigern entsprechen. Das Löschen ist gleichbedeutend mit dem Ausschalten der Anzeigen, da in der Interrupt-Service-Routine die Inhalte dieser Register in das PORTB-Register übertragen werden, mit dem die Anoden der Anzeigen verbunden sind. Dies ist notwendig, damit nach dem Aktivieren von Interrupts kein Müll auf den Anzeigen angezeigt wird. Dies ist im Prinzip nicht möglich, wenn Sie sofort schreiben richtige Information für Ausgabe. Setzen Sie als Nächstes das Timer-Überlauf-Interrupt-Flag zurück, aktivieren Sie TMR0-Überlauf-Interrupts und aktivieren Sie schließlich globale Interrupts.

In der Interrupt-Routine schalten wir zuerst alle Indikatoren aus (indem wir niedrige Logikpegel an die Basen der Transistoren anlegen), da nicht bekannt ist, welcher eingeschaltet ist. Wir erhöhen das Shet-Register und prüfen auf Gleichheit mit der Zahl 5. Wenn eine solche Übereinstimmung besteht, schreiben wir die Zahl 1 in das Register, da von 1 bis 4 gezählt werden muss. Als nächstes prüfen wir, welche Zahl sich im Shet befindet register, wodurch wir Daten von PORTB in PORTB-Informationsspeicherregister (dataind) für den entsprechenden Indikator laden und ihn einschalten. Danach setzen wir das TMR0-Überlauf-Interrupt-Flag zurück, schreiben die Zahl 100 für eine Zeitverzögerung in den Timer (die Berechnung dieses Werts ist unten angegeben) und verlassen den Interrupt-Handler. Bei der ersten Unterbrechung schaltet sich der erste Indikator ein, bei der zweiten Unterbrechung der zweite und so weiter in einem kreisförmigen Zyklus. Im Hauptprogramm müssen nur noch Daten in die Informationsspeicherregister für jeden Indikator geladen werden. Vergessen Sie in der Interrupt-Subroutine nicht, die Werte der Schlüsselregister zu speichern und wiederherzustellen, ich habe darüber in einem Artikel darüber geschrieben.

Zur Ausgabe von Zahlen verwendet man besser einen Zeichengenerator in Form einer Datentabelle. Um beispielsweise die Zahl 3456 auf den Anzeigen anzuzeigen, muss sie in Ziffern unterteilt werden, während es besser ist, separate Register zu verwenden, um die Anzahl der Ziffern (von 0 bis 9) zu speichern, und diese Register dann durch den Zeichengenerator zu führen Erhalten der korrekten Bytes (geladen in die Dataind-Register), um die jeweiligen Segmente zu zünden.

Die Frequenz des Taktgenerators nehmen wir mit 4 MHz an, der Maschinentakt beträgt 1 μs. Die Aktualisierungsrate jedes Indikators sei 100 Hz (Periode T = 10 ms), die erforderliche Zeitverzögerung sei 10/4 = 2,5 ms. Der Vorteilerfaktor für TMR0 ist auf 1:16 eingestellt, während die maximal mögliche Verzögerung 256x16 = 4096 µs beträgt und wir eine Pause von 2,5 ms benötigen. Lassen Sie uns die Zahl berechnen, die in TMR0 geschrieben werden soll: 256-((256x2,5)/4,096) = 256-156,25 = 99,75. Nach dem Runden erhalten wir die Zahl 100.

Unten können Sie ein Modell für das Proteus-Programm, Firmware und Quellcode mit der Implementierung einer dynamischen Anzeige auf einer 4-stelligen Anzeige mit einer gemeinsamen Kathode unter Verwendung des Mikrocontrollers PIC16F628A herunterladen. Beispielsweise werden die Zahlen 0000 auf dem Indikator angezeigt; 0001; 0002; 13.52; 9764.

Betrachten Sie nun den Anschluss einer Matrix mit einer Auflösung von 8x8 Pixeln (LEDs). Der Aufbau einer Matrix wird üblicherweise in Zeilen und Spalten betrachtet. Im Bild unten sind in jeder Spalte die Kathoden aller LEDs verbunden und in jeder Reihe die Anoden. Strings (8 Leitungen, LED-Anoden) werden über Widerstände mit dem Mikrocontroller verbunden. Jede Spalte (LED-Kathoden) ist über 8 Transistoren mit dem Mikrocontroller verbunden. Der Anzeigealgorithmus ist derselbe, zuerst stellen wir die erforderlichen logischen Pegel in den Zeilen ein, je nachdem, welche LEDs in der Spalte leuchten sollen, dann verbinden wir die erste Spalte (Anzeige von links nach rechts). Nach einer gewissen Pause schalten wir die Spalte aus und ändern die logischen Ebenen auf den Zeilen, um die zweite Spalte anzuzeigen, dann verbinden wir die zweite Spalte. Und so pendeln alle Kolonnen abwechselnd. Unten ist ein Diagramm zum Anschließen der Matrix an den Mikrocontroller.


Insgesamt werden zum Anschluss einer solchen Matrix 16 Mikrocontroller-Pins benötigt, was ziemlich viel ist. Um die Steuerleitungen zu reduzieren, ist es daher besser, serielle Schieberegister zu verwenden.

Das gebräuchlichste serielle Register ist die Mikroschaltung 74HC595, die enthält Schieberegister zum Laden von Daten und ein Halteregister, durch das Daten zu den Ausgangsleitungen übertragen werden. Das Laden von Daten ist einfach, setzen Sie die logische 0 am SH_CP-Takteingang, stellen Sie dann den erforderlichen Logikpegel am DS-Dateneingang ein, danach schalten wir den Takteingang auf 1, während wir den Pegelwert (am DS-Eingang) speichern. innerhalb des Schieberegisters. Gleichzeitig werden die Daten um ein Bit verschoben. Setzen Sie den Ausgang SH_CP wieder auf 0 zurück, setzen Sie den erforderlichen Pegel am Eingang DS und erhöhen Sie SH_CP auf 1. Nachdem das Schieberegister vollständig geladen ist (8 Bit), setzen Sie den Ausgang ST_CP auf 1, in diesem Moment werden die Daten zum übertragen Speicherregister und den Ausgangsleitungen Q0 ... Q7 zugeführt, wonach wir den Ausgang von ST_CP zurücksetzen. Während des sequentiellen Ladens werden die Daten von Q0 nach Q7 verschoben. Pin Q7' ist mit dem letzten Bit des Schieberegisters verbunden, dieser Pin kann mit dem Eingang der zweiten Mikroschaltung verbunden werden, sodass Sie Daten gleichzeitig in zwei oder mehr Mikroschaltungen laden können. Der OE-Pin schaltet die Ausgangsleitungen in den dritten (hochohmigen) Zustand, wenn eine logische 1 an ihn angelegt wird Der MR-Pin dient zum Zurücksetzen des Schieberegisters, dh zum Setzen von niedrigen logischen Pegeln an den Ausgängen der Registertrigger , was dem Laden von acht Nullen entspricht. Unten ist ein Diagramm zum Laden von Daten in die 74NS595-Mikroschaltung, wobei der Wert 11010001 auf den Ausgangsleitungen Q0 ... Q7 eingestellt wird, vorausgesetzt, dass anfänglich Nullen vorhanden waren:


Betrachten Sie den Anschluss einer 8 × 8-Matrix an einen PIC16F628A-Mikrocontroller mit zwei 74HC595-Schieberegistern. Das Diagramm ist unten dargestellt:


Die Daten werden in den DD2-Chip geladen (Logikpegelsteuerung an den Zeilen, LED-Anoden), dann werden sie über den Q7-Pin an DD3 (Spaltensteuerung) übertragen. Zuerst laden wir das Byte, um die Spalte zu aktivieren, dann das Byte mit den logischen Ebenen in den Zeilen. Transistoren, die Matrixspalten (LED-Kathoden) schalten, sind mit den Ausgangsleitungen von DD3 verbunden. Unten ist der Programmcode zum Anzeigen eines Bildes auf einer Matrix:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Implementierung einer dynamischen Anzeige für eine Matrix mit einer Auflösung von 8x8 ;Frequenz des Taktgenerators zB 4 MHz, Maschinentakt 1 µs org 0000h ;Programmablauf ab Adresse 0000h starten goto Start ;Sprung zum Label Start ;;;;;; ;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Routine org 0004h unterbrechen ;Subroutinenausführung ab Adresse 0004h starten movwf W_TEMP ;Schlüsselregisterwerte speichern Swap STATUS,W ; clrf STATUS ; movwf STATUS_TEMP ; ; movwf FSR_osn ;in das FSR_osn-Register movf FSR_prer,W ;Wiederherstellung des zuvor gespeicherten Werts movwf FSR ;des FSR-Registers aus dem FSR_prer-Register ;;;;;;;;;;;;;;;;;;;;;;; ;;;;;; ;;;;;;;;;;;;;;;;;;;;;; ;den Inhalt des stolb-Registers in den Chip laden movf stolb,W ;den Inhalt des stolb-Registers kopieren movwf var ;in das Register var met2 btfsc var,0 ;den Ausgang ds gemäß btfss setzen var,0 ; bcf ds ; bcf sh_cp ; rrf var,F ;Schieberegister var Recht zum Vorbereiten;nächstes Bit goto met2 ;scetbit ungleich Null: springe zu Label met2 ;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;; ;den Inhalt des INDF-Registers in den Chip laden;74HC595 (serielles Schieberegister) movf INDF,W ;den Inhalt des INDF-Registers kopieren movwf var ;in das var-Register movlw .8 ;die Zahl 8 in das scetbit-Register schreiben, zum Zählen von movwf scetbit ;übertragene Bits met1 btfsc var ,7 ;Ausgang ds gemäß bsf ds setzen ;Wert des 7. Bits des Registers var btfss var,7 ; bcf ds ; bsf sh_cp ;sh_cp-Ausgang takten, um Daten zu speichern bcf sh_cp ; rlf var,F ;Schieberegister var links vorbereiten;nächstes Bit decfsz scetbit,F ;Dekrement mit Registerbedingung scetbit goto met1 ;scetbit ungleich Null: Sprung zum Label met1 ; bsf st_cp ;Takte den Ausgang st_cp , um die geladenen bcf st_cp ;Bytes zu den Ausgangsleitungen der 74HC595-Chips zu übertragen; bcf STATUS,C ;setzt das C-Bit des Registerstatus vor dem Schieben zurück rrf stolb,F ;linkes Schieberegister stolb ; incf FSR,F ;FSR-Register inkrementieren, nächstes vorbereiten ;Register zum Senden von Daten an 74HC595 decfsz shet,F ;Dekrementieren mit Registerbedingung shet goto exxit ;Shet-Register ungleich 0: Sprung zum Beenden movlw data1 ;Shet-Register gleich 0: Adresse zuerst schreiben movwf FSR ;Register zum Speichern von Informationen im FSR-Register movlw .8 ;Schreiben der Zahl 8 in das Shet-Register, um movwf zu erhalten shet ;Spalten zählen ; exxit bcf INTCON,T0IF ;Überlauf-Interrupt-Flag zurücksetzen TMR0 movlw . 124 ;Zahl 124 in Timerregister schreiben TMR0 movwf TMR0 ; ; movf FSR,W ;den aktuellen Wert von FSR speichern movwf FSR_prer ;in FSR_prer movf FSR_osn ,W ;den zuvor gespeicherten Wert wiederherstellen movwf FSR ;FSR von FSR_osn ; swapf STATUS_TEMP,W ;Inhalt der Schlüsselregister wiederherstellen movwf STATUS ; swapf W_TEMP,F ; swapf W_TEMP,W ; ; retfie ;Verlassen des Interrupt-Unterprogramms;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;Start des Hauptprogramms .................. ;Anfangseinstellung der Register .................. ;Sonderzweck..... ............ bsf STATUS,RP0 ;Binärzahl 11010011 in Register schreiben movlw b"11010010" ;OPTION_REG, dadurch internes movwf setzen OPTION_REG ;Taktquelle für TMR0 bcf STATUS,RP0 ;Vorteiler aktivieren TMR0: Stellen Sie das Prescaler-Verhältnis auf 1:8 ein; movlw .8 ;schreibe 8 in das Shet-Register, bevor movwf ausgelöst wird shet ;TMR0-Überlauf-Interrupts, ausgeführt;einmal, nach dem Einschalten movlw b"10000000" ;schreibe die Binärzahl 10000000 in movwf stolb ;stolb-Register, um die erste Spalte zu aktivieren; einmal ausgeführt , nach dem Einschalten; movlw data1 ;schreibe die Adresse des ersten Registers (Speicherregister movwf FSR_prer ;Information) in das Register FSR_prer, durchgeführt;einmal nach dem Einschalten; movlw .8 ;löscht 8 Register der Informationsausgabe an movwf tmp ;matrix, entspricht dem Ausschalten von movlw data1 ;matrix movwf FSR ; met3 clrf INDF ; incf FSR,F ; decfsz tmp,F ; gehe zu met3 ; ; bcf INTCON,T0IF ;Lösche TMR0-Überlauf-Interrupt-Flag bsf INTCON,T0IE ;Aktiviere TMR0-Überlauf-Interrupts bsf INTCON,GIE ;Aktiviere globale Interrupts; m1 movlw data1 ;R-Ausgabebeispiel movwf FSR ; movlw b"00000000" ; movwf INDF ; incf FSR,F ; movlw b"01111111" ; movwf INDF ; incf FSR,F ; movlwb"00001001" ; movwf INDF ; incf FSR,F ; movlwb"00011001" ; movwf INDF ; incf FSR,F ; movlwb"00101001" ; movwf INDF ; incf FSR,F ; movlw b"01000110" ; movwf INDF ; incf FSR,F ; movlw b"00000000" ; movwf INDF ; incf FSR,F ; movlw b"00000000" ; movwf INDF ; ; .................; .................; .................; ; end ; Ende des gesamten Programms;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Implementierung dynamischer Anzeige für eine Matrix mit einer Auflösung von 8x8

;Beispiel Taktfrequenz 4 MHz, Maschinentakt 1 µs

org 0000h ;Programmausführung bei Adresse 0000h starten

gehe zu Start ;gehe zu Label Start

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Routine unterbrechen

org 0004h ;Unterprogrammausführung bei Adresse 0004h starten

movwf W_TEMP ;Schlüsselregisterwerte speichern

swapf STATUS,W ;

movwf STATUS_TEMP ;

movf FSR,W ;aktuellen Wert des FSR-Registers speichern

movwf FSR_osn ;an FSR_osn-Register

movf FSR_prer,W ; zuvor gespeicherten Wert wiederherstellen

movwf FSR ;FSR von FSR_prer

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (serielles Schieberegister)

movf stolb,W ; Inhalt des stolb-Registers kopieren

movwf var ;um var zu registrieren

movlw .8 ;Zahl 8 in Scetbit-Register schreiben, zum Zählen

movwf scetbit ;übertragene Bits

met2 btfsc var,0 ;DS-Ausgabe entsprechend setzen

bsf ds ; 7. Bitwert von Register var

bsf sh_cp ;sh_cp-Ausgang takten, um Daten zu speichern

rrf var,F ;schieberegister var Recht auf Vorbereitung

;nächstes Bit

decfsz scetbit,F ;Dekrement mit Scetbit-Registerbedingung

goto met2 ;scetbit ungleich Null: springe zum met2-Label

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;74HC595 (serielles Schieberegister)

movf INDF,W ; Inhalt des Registers INDF kopieren

movwf var ;um var zu registrieren

movlw .8 ;Zahl 8 in Scetbit-Register schreiben, zum Zählen

movwf scetbit ;übertragene Bits

met1 btfsc var,7 ;DS-Ausgabe entsprechend setzen

bsf ds ; 7. Bitwert von Register var

bsf sh_cp ;sh_cp-Ausgang takten, um Daten zu speichern

rlf var,F ;Linksverschiebung var zur Vorbereitung

;nächstes Bit

decfsz scetbit,F ;Dekrement mit Scetbit-Registerbedingung

goto met1 ;scetbit ungleich Null: Sprung zum Label met1

bsf st_cp ;Takte den Ausgang von st_cp, um geladen zu übertragen

bcf st_cp ;Bytes pro 74HC595-Ausgabezeilen

bcf STATUS,C ; C-Bit des Statusregisters vor dem Verschieben löschen

rrf stolb,F ;linkes Schieberegister stolb

incf FSR,F ;FSR-Register inkrementieren, nächstes vorbereiten

; registrieren, um Daten an 74HC595 zu senden

decfsz shet,F ;Dekrement mit Registerbedingung shet

goto exxit ;shet register ungleich 0: springe zum exxit

movlw data1 ;Shet-Register ist 0: Schreibe die Adresse des ersten

movwf FSR ;Registrieren, um Informationen in FSR zu speichern

movlw .8 ;schreibe die Nummer 8 als Referenz in das Shet-Register

movwf-Blatt; Spaltenanzahl

movlw b"10000000" ;Schreibe die Binärzahl 10000000 in

movwf stolb ;registriere stolb, um die 1. Spalte einzuschließen

exxit bcf INTCON,T0IF ; TMR0-Überlauf-Interrupt-Flag zurücksetzen

movlw .124 ;Zahl 124 in Timer-Register TMR0 schreiben

movf FSR,W ;aktuellen Wert des FSR-Registers speichern

movwf FSR_prer ;an FSR_prer-Register

movf FSR_osn ,W ; zuvor gespeicherten Wert wiederherstellen

movwf FSR ;FSR von FSR_osn

swapf STATUS_TEMP,W ; stellt den Inhalt der Schlüsselregister wieder her

swapf W_TEMP,F ;

swapf W_TEMP,W ;

retfie ;Interrupt-Routine verlassen

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Hauptprogramm

Start ................. ;Anfangseinstellung der Register

................. ;Sonderzweck

.................

bsf STATUS,RP0 ;Binärzahl 11010011 ins Register schreiben

movlw b"11010010" ;OPTION_REG, wodurch die interne

movwf OPTION_REG ; Taktquelle für TMR0

bcf STATUS,RP0 ;Prescaler vor TMR0 aktivieren

;Stellen Sie das Prescaler-Verhältnis auf 1:8 ein

movlw .8 ;Nummer 8 vor dem Ausführen in das Shet-Register schreiben

movwf shet ; TMR0-Überlauf-Interrupts, läuft

;einmal nach dem Einschalten

movlw b"10000000" ;Schreibe die Binärzahl 10000000 in

movwf stolb ;registriere stolb, um die 1. Spalte einzuschließen

Informationen mit logischen Pegeln für die Zeilen jeder Spalte werden in 8 Informationsspeicherregistern gespeichert, auf die zugegriffen wird. Die Adresse des ersten Registers heißt data1. Zusätzlich zum anfänglichen Schreiben der Shet- und Stolb-Register ist es notwendig, die Adresse des ersten Informationsspeicherregisters in das FSR_prer-Register zu schreiben (das Register ist data1, der Eintrag in FSR_prer wird einmal durchgeführt, dann wird es in der angepasst Handler), erst danach TMR0-Überlauf-Interrupts zulassen.

Vor dem Aktivieren von Interrupts ist es wünschenswert, die Informationsspeicherregister zu löschen. Diese Operation wird unter Verwendung des zusätzlichen tmp-Registers (als Zähler) und indirekter Adressierung ausgeführt. Das Löschen entspricht dem Ausschalten der Matrix.

In der Interrupt-Handling-Routine laden wir den Inhalt des stolb-Registers in den DD2-Chip (wenn Sie den Handler zum ersten Mal nach dem Aktivieren von Interrupts aufrufen, enthält das Register die Nummer 10000000, wie oben erwähnt). Das Laden beginnt mit dem niedrigen Bit des Stolb-Registers, das sich beim Laden in Richtung von Q0 nach Q7 (innerhalb des DD2-Chips) verschiebt. Der Ladealgorithmus wurde oben besprochen, daher denke ich, dass es nicht schwierig sein wird, den Code zu verstehen . Als nächstes laden wir den Inhalt des INDF-Registers in DD2, dies ist eines der Informationsspeicherregister, dessen Adresse im FSR steht (wenn Sie den Handler zum ersten Mal nach dem Aktivieren von Interrupts aufrufen, enthält das FSR die Adresse des ersten Informationsspeicherregister namens data1). Das Laden beginnt mit dem hohen Bit des INDF-Registers. Nach dem Laden der betrachteten 2 Bytes takten wir den Ausgang st_cp, wodurch die heruntergeladenen Daten an die Ausgangsleitungen der Mikroschaltungen DD2, DD3 übertragen werden. Somit wird am ersten Eingang des Handlers die erste Spalte der Matrix geschaltet, in der LEDs leuchten, an deren Anoden ein hoher Logikpegel anliegt, entsprechend dem Inhalt des Data1-Registers (die erstes Informationsspeicherregister).

Als nächstes verschieben wir das Stolb-Register um ein Bit nach rechts, um die zweite Spalte der Matrix für das Umschalten beim nächsten Eintrag in den Interrupt-Handler vorzubereiten. Das C-Flag des STATUS-Registers muss vor der Verschiebung gelöscht werden, da die Verschiebung durch dieses Flag erfolgt und sein Zustand zum Zeitpunkt der Verschiebung nicht bekannt ist. Nach der Verschiebung inkrementieren wir das FSR-Register und bereiten das nächste Speicherregister (nach dem data1-Register) mit logischen Zeilenpegeln für die zweite Spalte vor. Als nächstes dekrementieren wir das Shet-Register mit der Bedingung, und wenn es nicht gleich Null ist, setzen wir das TMR0-Überlauf-Interrupt-Flag zurück, schreiben die Zahl in den Timer und verlassen den Interrupt-Handler.

Wenn Sie den Handler das nächste Mal eingeben, wird die zweite Spalte der Matrix aktiviert und so weiter. Wenn das Shet-Register zurückgesetzt wird (nach dem Umschalten der 8. Spalte), wird die Zahl 8 für den nächsten Zyklus des Umschaltens der Spalten darin geschrieben, außerdem wird der Wert des Stolb-Registers korrigiert, die Adresse des ersten Informationsspeicherregisters ( data1) wird in das FSR-Register geschrieben.

Berechnen wir die Zeitverzögerung für den TMR0-Timer, die Taktfrequenz beträgt 4 MHz, der Maschinenzyklus beträgt 1 µs. Um ein Flackern der LEDs zu vermeiden, nehmen wir die Aktualisierungsrate jeder Spalte als 100 Hz (Periode T = 10 ms), die Zeitverzögerung beträgt 10/8 = 1,25 ms. Wir stellen das Vorteilerverhältnis TMR0 auf 1:8 ein, während die maximal mögliche Verzögerung 256x8 = 2048 µs beträgt. Für eine Pause von 1,25 ms sollte der Timer (256x1,25) / 2,048 = 156,25 mal zählen, aufgerundet erhalten wir 156 Zählungen. Dementsprechend muss in den Timer die Zahl 256-156 = 100 geschrieben werden, was aber nicht ganz der richtige Wert ist, da die Ausführung der Interrupt-Routine einige Zeit in Anspruch nimmt, in diesem Fall ca. 190 µs, neu gerechnet Unter Berücksichtigung des Prescaler-Koeffizienten erhalten wir 190/8 = 23,75 oder 24 Zählungen. Richtiger Wert für das Schreiben auf TMR0 ist: 100+24=124.

Im Hauptprogramm schreiben wir 8 Informationsspeicherregister in Übereinstimmung mit dem, was wir auf der Matrix anzeigen möchten. Unten ist ein Diagramm, das die Ausgabe von Informationen an die Matrix für den obigen Code erklärt.


Neben Schieberegistern gibt es spezielle Treiber zum Anzeigen von Informationen auf Siebensegmentanzeigen und LED-Matrizen. In diesem Fall implementiert der Treiber selbst die dynamische Anzeige. Es müssen nur noch Daten zur Anzeige an ihn gesendet werden. Ich habe einen dieser beliebten Treiber in einem Artikel über.

Unter dem Link können Sie die Firmware und den Quellcode für den Mikrocontroller PIC16F628A herunterladen, bei der Implementierung der dynamischen Anzeige auf einer 8x8-Matrix mit zwei 74HC595-Schieberegistern wurde das Anschlussdiagramm oben besprochen. Auf der Matrix werden abwechselnd die Buchstaben R, L, die Zahl 46, ein Smiley und nur ein Muster in Form eines Kreuzes angezeigt, diese Animation ist im Video unten zu sehen.

mit Anhängen , . Lesen .

Das Zusammenbauen eines Partyzeltes basierend auf einer LED-Matrix und Arduino ist eine einfache Aufgabe, die sogar zu Hause erledigt werden kann. Sie müssen kein Programmierer sein und über fundierte Elektronikkenntnisse verfügen, um Buchstaben auf einem LED-Display bewegen zu können. In diesem Artikel werden wir analysieren, wie man eine laufende Linie aus vorgefertigten LED-Matrizen und Arduino Nano zusammenbaut.

Was wird benötigt?

Um die Idee umzusetzen, braucht man nur wenige Angaben:

  • zwei LED-Module, bestehend aus vier Matrizen von 8 mal 8 Pixeln;
  • Halterung für eine Batterie der Standardgröße "Krona";
  • 9-Volt-Batterie (CR-9V, ER-9V oder gleichwertig);
  • zweipoliger Schalter;
  • Verbindungsdrähte;
  • Arduino-Nano-Board;
  • Heißkleber.

Planen

Auf der Leiterplatte des verwendeten LED-Moduls befinden sich 4 Matrizen mit einer Größe von 8 mal 8 Pixeln. Jede LED-Platine wird von einem integrierten Schaltkreis (IC) MAX7219 gesteuert. Dieser IC ist ein Controller zur Steuerung von LED-Anzeigen, gemeinsamen Kathodenmatrizen und diskreten LEDs in einer Menge von bis zu 64 Stück.

Für eine komfortablere Wahrnehmung der auf dem LED-Display angezeigten Informationen wird empfohlen, mehrere Module zu installieren. Dazu werden sie zu in Reihe geschalteten Gruppen zusammengefasst, dh der Ausgang des ersten Moduls (out) wird mit dem Eingang des zweiten Moduls (in) verbunden. Diese Baugruppe besteht aus zwei Modulen (16 Matrizen), deren Länge zum bequemen Lesen ganzer Sätze ausreicht.

Montage

Das Matrixmodul kann eine Stiftverbindung oder Kontakte auf der Platine in Form von Leiterbahnen aufweisen. Es kommt darauf an, wie sie verbunden sind. Im ersten Fall wird ein Kabelbaum mit Steckverbindern verwendet, um einen zuverlässigen elektrischen Kontakt zu erhalten, und im zweiten Fall müssen Jumper installiert und gelötet werden.

Aber zuerst müssen Sie beide Module mit Schmelzkleber zu einer Einheit verbinden. Thermoplastischer Klebstoff leitet keinen Strom, wodurch er sicher auf die Leiterplatte aufgetragen werden kann. Klebstoff wird von den Enden beider Bretter aufgetragen, gepresst und einige Minuten stehen gelassen. Nach dem Aushärten werden die Ausgangskontakte des ersten Blocks nach folgendem Schema mit den Eingangskontakten des zweiten Blocks verbunden:

  • VCC-VCC
  • GND-GND
  • D EIN – D AUS
  • CS–CS
  • CLK-CLK

MIT Rückseite Platine mit heißgeklebtem Arduino Nano, Batteriefach und Schalter. Details sind so angeordnet, dass sie bequem genutzt werden können.
Im nächsten Schritt wird der Arduino mit dem LED-Modul verbunden, indem die Drähte mit dem Eingang der ersten Matrix verbunden werden. Je nach Version des Moduls erfolgt die Betätigung durch eine lösbare Verbindung oder durch Löten gemäß dem folgenden Diagramm:

  • VCC-5V
  • GND-GND
  • D IN - PIN 11
  • CS-PIN 10
  • CLK-PIN 13.

In der Endphase der Montage muss die Batterieleistung angeschlossen werden. Dazu wird der negative Kontakt (schwarzer Draht) vom Kronenfach mit dem GND-Pin des Arduino verbunden. Der positive Kontakt (roter Draht) wird mit dem Schalter und dann mit Arduino Pin # 30 verbunden, der dafür ausgelegt ist, Spannung von einer ungeregelten Quelle zu liefern. Im Testmodus kann ein Do-it-yourself-Ticker über Micro-USB von einem Computer mit Strom versorgt werden.
Nachdem sie sich von der Zuverlässigkeit der Befestigungselemente und der Qualität der elektrischen Verbindungen überzeugt haben, beginnen sie mit der Montage des Gehäuses. Es kann aus einem Aluminium- oder Kunststoffprofil hergestellt werden, da sich die Elemente der Schaltung nicht erwärmen. Farbe, Abmessungen, Schutzart und Befestigung des Gehäuses sind abhängig vom späteren Einsatz des Gerätes. Im einfachsten Fall eignet sich ein Schutzgitter aus einem Baukunststoff-Eckprofil mit Aussparung für einen Schalter.

Ticker-Programmierung

Die laufende Linie aus Arduino und LED-Modulen unter der Kontrolle von MAX7219 ist fast fertig. Es ist Zeit, zum letzten Programmteil überzugehen. Auf dem Rechner muss die Software (Software) für den verwendeten Arduino und der Treiber dafür installiert sein. Als nächstes müssen Sie zwei Bibliotheken und eine Skizze herunterladen (ein spezielles Programm, das vom Arduino-Prozessor geladen und ausgeführt wird). Die Bibliotheken werden bei geschlossener Arduino IDE im Ordner Documents - Arduino - Libraries installiert. Dann laden sie die Skizze herunter, führen sie aus und überprüfen das Vorhandensein von Bibliotheken und die Korrektheit anderer Daten.

Sketch-Setup:

  • "Anzahl der horizontalen Anzeigen" gibt die Anzahl der Zeilen an, in unserem Fall 1;
  • "Anzahl vertikaler Anzeigen" gibt die Anzahl der Matrizen an, in unserem Fall 8;
  • "String Tape" gibt die auf dem Display angezeigte Inschrift an;
  • "int wait" setzt die Ausgabegeschwindigkeit in Millisekunden.

Nach Überprüfung der eingegebenen Daten muss noch auf die Schaltfläche "Herunterladen" geklickt werden. Dann vom PC trennen, Akku einlegen und Gerät starten.

Abschließend möchte ich hinzufügen, dass die Do-it-yourself-Lauflinie auch ohne Kenntnisse im Umgang mit Arduino recht schnell zusammengebaut ist. Daher sollten Sie sich vor diesem filigranen Brett nicht fürchten. Es ist auch erwähnenswert, dass die Lauflinie verlängert werden kann, indem die Anzahl der LED-Matrizen erhöht wird.

Lesen Sie auch

In den letzten Jahren haben sich LED-Matrizen in der Außenwerbung und verschiedenen Informationstafeln durchgesetzt. Ziemlich hell, dynamisch - sie ziehen perfekt die Aufmerksamkeit auf sich und werden an einem sonnigen Tag nicht blind. Jeder von Ihnen sieht sie jeden Tag auf den Straßen Ihrer Stadt.
Natürlich wurde ihre Verbreitung durch den niedrigen Preis (aufgrund chinesischer Hersteller) und die einfache Montage des Bildschirms erleichtert.

Was aber, wenn Sie versuchen, solche Matrizen in Ihren Geräten auf Mikrocontrollern zu verwenden? Was ist die Austauschschnittstelle und Ausgabelogik dieser Matrizen?
Versuchen wir, das alles herauszufinden.

Die Chinesen bieten sowohl die Matrizen selbst in verschiedenen Größen und mit unterschiedlichen Auflösungen als auch Controller zum Anzeigen von Bildern darauf mit verschiedenen einfachen Effekten sowie das gesamte erforderliche Zubehör, Verbindungskabel und Rahmen an.
Matrizen sind einfarbig (weiß, gelb, rot, grün, blau) und dreifarbig (RGB). Die Bezeichnung des Matrixmodells sieht normalerweise wie Pxx oder PHxx aus, wobei xx eine Zahl ist, die den Abstand zwischen Pixeln in Millimetern angibt. In meinem Fall ist es P10. Darüber hinaus sind Matrizen einiger Standardgrößen nicht nur rechteckig, sondern auch quadratisch.

Mögliche Optionen für Matrizengrößen



Wir haben also eine weiße Matrix von 32 x 16 Pixeln mit Abmessungen von 320 x 160 mm und dementsprechend einem Pixelabstand von 10 mm. Schauen wir es uns genauer an.
Vorderansicht:

Es schien Ihnen auch, dass die LEDs eine Art Oval sind? Hast du nicht gedacht...


Über den LEDs befindet sich ein kleines Visier, das verhindert, dass Sonnenlicht die LEDs beleuchtet.

Vorderansicht mit entfernter Plastikmaske



Wir drehen die Matrix um und sehen die Tafel:


Es gibt eine Reihe von Logikchips auf der Platine. Mal sehen, was diese Mikroschaltungen sind:
1. 1 x SM74HC245D - nicht invertierender Puffer
2. 1 x SM74HC04 - 6-Kanal-Wechselrichter
3. 1 x SM74HC138D - 8-Bit-Decoder
4. 4 x APM4953 - Montage von 2 P-Kanal-MOSFETs
5. 16 x 74HC595D verriegeltes Schieberegister
Zwei 16-Pin-Anschlüsse sind Schnittstellen, einer davon ist Eingang (der Bildschirm-Controller ist damit verbunden) und der zweite ist Ausgang (die nächste Matrix in der Kette ist damit verbunden). Der Pfeil auf der Platine zeigt vom Eingangsstecker zum Ausgang.
Die Stromversorgung erfolgt über die Klemmen in der Mitte der Platine. Versorgungsspannung - 5 V, maximaler Strom (wenn alle LED-Matrizen eingeschaltet sind) - 2 A (für weiße Matrix).

Alle oben genannten Informationen sowie eine Demonstration der Matrix im folgenden Video. Darin spreche ich von 13:04 bis 15:00 Uhr über die Abhängigkeit der Bildschirmhelligkeit von der Anzahl der Matrizen. Dies liegt an einem Fehler im Algorithmus. Der Fehler wurde behoben und die Daten werden jetzt geladen, bevor sich der Bildschirm ausschaltet.

Ich werde mich auch freuen, Sie zu sehen mein Youtube-Kanal, wo ich immer noch viel Zeug mit Mikrocontrollern verbinde.

Vielen Dank für Ihre Aufmerksamkeit!

Die Zeit vergeht unmerklich und es scheint, dass kürzlich gekaufte Geräte bereits außer Betrieb sind. Nachdem die Lampen meines Monitors (AOC 2216Sa) ihre 10.000 Stunden aufgebraucht hatten, wurde ihnen eine lange Lebensdauer befohlen. Anfangs schaltete sich die Hintergrundbeleuchtung beim ersten Mal nicht ein (nach dem Einschalten des Monitors ging die Hintergrundbeleuchtung nach einigen Sekunden aus), was durch erneutes Ein- / Ausschalten des Monitors behoben wurde, im Laufe der Zeit musste der Monitor gedreht werden Aus / Aus bereits 3 Mal, dann 5, dann 10, und irgendwann konnte es die Hintergrundbeleuchtung nicht einschalten, unabhängig von der Anzahl der Versuche, sie einzuschalten. Die in das Licht Gottes gebrachten Lampen erwiesen sich als mit geschwärzten Rändern und gingen legal zum Schrott. Ein Versuch, Ersatzlampen einzusetzen (neue Lampen in geeigneter Größe wurden gekauft) war erfolglos (der Monitor konnte die Hintergrundbeleuchtung mehrmals einschalten, ging aber schnell wieder in den Ein-Aus-Modus) und die Gründe für das herauszufinden, was sein könnte Das Problem bereits in der Monitorelektronik führte mich auf die Idee, dass es einfacher sein wird, eine eigene Monitorhintergrundbeleuchtung auf LEDs zusammenzubauen, als die vorhandene Inverterschaltung für CCFL-Lampen zu reparieren, zumal es bereits Artikel im Netzwerk gab, die dies zeigten die grundsätzliche Möglichkeit eines solchen Ersatzes.

Wir zerlegen den Monitor

Zum Thema Demontage des Monitors sind schon viele Artikel geschrieben worden, alle Monitore sind sich sehr ähnlich, also kurz gesagt:
1. Wir lösen die Halterung der Monitorversorgung und die einzige Schraube an der Unterseite, die die Rückwand des Gehäuses hält


2. An der Unterseite des Gehäuses befinden sich zwei Schlitze zwischen der Vorder- und Rückseite des Gehäuses, in einen davon stecken wir einen flachen Schraubendreher und beginnen, die Abdeckung von den Riegeln um den gesamten Umfang des Monitors zu entfernen (einfach durch sanftes Drehen des Schraubendrehers um seine Achse und Anheben des Gehäusedeckels). Es ist nicht erforderlich, übermäßige Anstrengungen zu unternehmen, aber es ist schwierig, das Gehäuse nur zum ersten Mal aus den Verriegelungen zu entfernen (während der Reparatur habe ich es viele Male geöffnet, sodass sich die Verriegelungen im Laufe der Zeit viel einfacher entfernen ließen).
3. Wir haben einen Blick auf die Installation des inneren Metallrahmens vor dem Gehäuse:


Wir nehmen die Platine mit den Knöpfen aus den Riegeln heraus, nehmen (in meinem Fall) den Lautsprecheranschluss heraus und nehmen, nachdem wir die beiden Riegel unten gelöst haben, das innere Metallgehäuse heraus.
4. Auf der linken Seite sehen Sie 4 Drähte zum Anschließen von Hintergrundbeleuchtung. Wir nehmen sie durch leichtes Drücken heraus, weil. Um ein Herausfallen zu verhindern, ist der Stecker in Form einer kleinen Wäscheklammer ausgeführt. Wir nehmen auch ein breites Kabel heraus, das zur Matrix führt (oben am Monitor), und drücken den Stecker an den Seiten zusammen (weil es seitliche Verriegelungen im Stecker gibt, obwohl dies auf den ersten Blick auf den Stecker nicht offensichtlich ist):


5. Jetzt müssen Sie das "Sandwich" zerlegen, das die Matrix selbst und die Hintergrundbeleuchtung enthält:


Entlang des Umfangs befinden sich Riegel, die sich durch leichtes Aufhebeln mit demselben flachen Schraubendreher öffnen. Zuerst wird der Metallrahmen entfernt, der die Matrize hält, danach können Sie drei kleine Schrauben herausdrehen (ein normaler Kreuzschlitzschraubendreher funktioniert aufgrund seiner Miniaturgröße nicht, Sie benötigen einen besonders kleinen), die die Matrize halten Matrix-Steuerplatine und die Matrix können entfernt werden (stellen Sie den Monitor am besten auf eine harte Oberfläche, z monitor und heben Sie einfach das hintergrundbeleuchtete Gehäuse an, indem Sie es vertikal anheben, und die Matrix bleibt auf dem Tisch liegen. um - d Anschrauben der Steuerplatine die zusammengebaute Einheit vorsichtig anheben).
Es stellt sich die Matrix separat heraus:


Und der hintergrundbeleuchtete Block separat:


Der hinterleuchtete Block wird auf ähnliche Weise zerlegt, nur dass die Hintergrundbeleuchtung anstelle eines Metallrahmens von einem Kunststoffrahmen gehalten wird, der gleichzeitig das Plexiglas positioniert, das verwendet wird, um das Licht der Hintergrundbeleuchtung zu streuen. Die meisten Riegel befinden sich an den Seiten und ähneln denen, die den Metallrahmen der Matrix hielten (durch Aufhebeln mit einem flachen Schraubendreher öffnen), aber an den Seiten befinden sich mehrere Riegel, die sich „nach innen“ öffnen (Sie müssen darauf drücken). mit einem Schraubendreher, so dass die Riegel in das Gehäuse gehen).
Zuerst habe ich mir die Position aller zu entfernenden Teile gemerkt, aber dann stellte sich heraus, dass es nicht möglich wäre, sie „falsch“ zusammenzubauen, und selbst wenn die Teile absolut symmetrisch aussehen, die Abstände zwischen den Riegeln auf verschiedenen Seiten des Metallrahmens und die Befestigungsvorsprünge an den Seiten des Kunststoffrahmens, die die Hintergrundbeleuchtung halten, verhindern, dass sie „falsch“ montiert werden ".
Das ist eigentlich alles - wir haben den Monitor zerlegt.

LED-Streifenbeleuchtung

Zunächst wurde beschlossen, die Hintergrundbeleuchtung aus einem LED-Streifen mit weißen LEDs 3528 - 120 LEDs pro Meter herzustellen. Das erste, was sich herausstellte, war, dass die Breite des Bandes 9 mm und die Breite der Hintergrundbeleuchtung (und des Sitzes für das Band) 7 mm betrug (tatsächlich gibt es Hintergrundbeleuchtungen von zwei Standards - 9 mm und 7 mm , aber in meinem Fall waren es 7 mm). Daher wurde nach Untersuchung des Bandes entschieden, 1 mm von jeder Kante des Bandes abzuschneiden, weil. Dies berührte nicht die Leiterbahnen auf der Vorderseite des Bandes (und auf der Rückseite befinden sich entlang des gesamten Bandes zwei breite Stromkabel, die ihre Eigenschaften nicht verlieren, wenn ihre Eigenschaften bei einer Hintergrundbeleuchtung um 1 mm abnehmen Länge von 475 mm, da der Strom klein sein wird). Gesagt, getan:


Genauso ordentlich LED-Streifen Lichtüber die gesamte Länge getrimmt (das Foto zeigt ein Beispiel dafür, was vor und nach dem Trimmen passiert ist).
Wir benötigen zwei Streifen von 475 mm Klebeband (19 Segmente von 3 LEDs pro Streifen).
Ich wollte, dass die Hintergrundbeleuchtung des Monitors genauso funktioniert wie die normale (d. h. vom Monitor-Controller ein- und ausgeschaltet), aber ich wollte die Helligkeit „manuell“ einstellen, wie bei alten CRT-Monitoren, weil Dies ist eine häufig verwendete Funktion, und ich hatte es satt, jedes Mal, wenn ich ein paar Tasten drückte, das Bildschirmmenü hochzuklettern (bei meinem Monitor stellen die Rechts-Links-Tasten nicht die Monitormodi ein, sondern die Lautstärke der eingebauten Lautsprecher , sodass die Modi jedes Mal über das Menü geändert werden mussten). Dazu wurde für meinen Monitor eine Anleitung im Netzwerk gefunden (für wen es sinnvoll ist - am Ende des Artikels angehängt) und auf der Seite mit dem Powerboard laut Schema +12V, On, Dim und GND gefunden , was uns interessiert.


Ein - Signal von der Steuerplatine zum Einschalten der Hintergrundbeleuchtung (+ 5 V)
Dim - PWM-Helligkeitssteuerung der Hintergrundbeleuchtung
+ 12V stellte sich als weit entfernt von 12 heraus, aber irgendwo um 16V ohne Backlight-Last und irgendwo um 13,67V mit Unterlast
Es wurde auch entschieden, keine PWM-Anpassungen an der Helligkeit der Hintergrundbeleuchtung vorzunehmen, sondern die Hintergrundbeleuchtung mit Gleichstrom zu versorgen (gleichzeitig wird das Problem dadurch gelöst, dass bei einigen Monitoren die PWM-Hintergrundbeleuchtung nicht funktioniert eine sehr hohe Frequenz und manche Augen werden dadurch etwas müder). In meinem Monitor betrug die Frequenz der "nativen" PWM 240 Hz.
Weiterhin wurden auf der Platine Kontakte gefunden, an denen das On-Signal anliegt (rot markiert) und + 12V an der Wechselrichtereinheit (Grün markiert ist der Jumper, der abgelötet werden muss, um die Wechselrichtereinheit stromlos zu machen). (Foto kann vergrößert werden, um Notizen zu sehen):


Als Basis der Steuerschaltung wurde der Linearregler LM2941 genommen, vor allem weil er bei einem Strom von bis zu 1A einen separaten On/Off-Steuerpin hatte, der dazu verwendet werden sollte, die Hintergrundbeleuchtung mit dem On-Signal ein/aus zu steuern von der Monitorsteuerplatine. Richtig, im LM2941 ist dieses Signal invertiert (d. h. es liegt Spannung am Ausgang an, wenn der Ein-/Aus-Eingang Nullpotential hat), also musste ich einen Inverter an einem Transistor montieren, um das direkte Ein-Signal von der Steuerplatine anzupassen und der invertierte LM2941-Eingang. Die Regelung enthält keine weiteren Selbstbehalte:


Die Berechnung der Ausgangsspannung für den LM2941 erfolgt nach folgender Formel:

Vout = Vref * (R1+R2)/R1

Wo Vref = 1,275 V, entspricht R1 in der Formel R1 in der Schaltung und R2 in der Formel entspricht einem Paar Widerstände RV1 + RV2 in der Schaltung (zwei Widerstände werden für eine gleichmäßigere Helligkeitssteuerung und Reduzierung des geregelten Spannungsbereichs eingeführt durch den variablen Widerstand RV1).
Als R1 habe ich 1 kOhm genommen und die Auswahl von R2 erfolgt nach der Formel:

R2=R1*(Vout/Vref-1)

Die maximale Spannung, die wir für das Band benötigen, beträgt 13 V (ich habe ein paar mehr als die nominalen 12 V genommen, um die Helligkeit nicht zu verlieren, und das Band wird eine so leichte Überspannung überstehen). Diese. Maximalwert R2 = 1000*(13/1,275-1) = 9,91 kΩ. Die minimale Spannung, bei der das Band noch irgendwie glüht, liegt bei etwa 7 Volt, d.h. Mindestwert R2 = 1000*(7/1,275-1) = 4,49 kΩ. Unser R2 besteht aus einem variablen Widerstand RV1 und einem Multiturn-Trimmer RV2. Wir erhalten den Widerstand RV1 9,91 kOhm - 4,49 kOhm = 5,42 kOhm (wir wählen den nächsten Wert von RV1 - 5,1 kOhm) und stellen RV2 auf etwa 9,91-5,1 = 4,81 kOhm ein (tatsächlich ist es am besten, zuerst die Schaltung zusammenzubauen, Stellen Sie den maximalen Widerstand von RV1 ein und messen Sie die Spannung am Ausgang LM2941. Stellen Sie den Widerstand RV2 so ein, dass der Ausgang die gewünschte maximale Spannung hat (in unserem Fall etwa 13 V).

Installation von LED-Streifen

Da nach dem Abschneiden des Bandes um 1 mm die Stromkabel an den Enden des Bandes freigelegt waren, habe ich an der Stelle, an der das Band geklebt wird, Isolierband auf das Gehäuse geklebt (leider nicht blau, sondern schwarz). Darauf wird ein Klebeband geklebt (es ist gut, die Oberfläche mit einem Fön zu erwärmen, da Klebeband auf einer warmen Oberfläche viel besser haftet):


Als nächstes werden die Rückseitenfolie, das Plexiglas und die Lichtfilter, die auf dem Plexiglas liegen, montiert. Entlang der Kanten habe ich das Klebeband mit Radiergummistücken gestützt (damit sich die Kanten des Klebebands nicht lösen):


Danach wird die Hintergrundbeleuchtungseinheit in umgekehrter Reihenfolge zusammengebaut, die Matrix installiert, die Drähte der Hintergrundbeleuchtung herausgeführt.
Die Schaltung wurde auf einer Steckplatine aufgebaut (der Einfachheit halber habe ich mich dagegen entschieden, die Platine zu züchten), sie wurde durch die Löcher in der Rückwand des Metallgehäuses des Monitors geschraubt:




Stromversorgung und Steuersignal Ein wurden von der Stromversorgungsplatine gestartet:


Die dem LM2941 zugeteilte geschätzte Leistung wird nach folgender Formel berechnet:

Pd = (Vin-Vout)*Iout +Vin*Ignd

Für meinen Fall ist es Pd = (13,6-13) * 0,7 + 13,6 * 0,006 = 0,5 Watt, also wurde entschieden, mit dem kleinsten Kühler für den LM2941 auszukommen (durch eine dielektrische Dichtung gepflanzt, weil er nicht von der isoliert ist Masse im LM2941).
Die Endmontage zeigte eine ziemliche Leistung des Designs:


Von den Vorteilen:

  • Verwendet Standard-LED-Streifen
  • Einfache Steuerplatine
Zu den Mängeln:
  • Unzureichende Helligkeit der Hintergrundbeleuchtung bei hellem Tageslicht (Monitor vor einem Fenster)
  • Die LEDs im Streifen sind nicht oft genug beabstandet, um kleine Lichtkegel von jeder einzelnen LED in der Nähe der Ober- und Unterkante des Monitors zu zeigen
  • Der Weißabgleich ist ein wenig daneben und wird leicht grünlich (höchstwahrscheinlich wird dies behoben, indem der Weißabgleich entweder des Monitors selbst oder der Grafikkarte angepasst wird).
Ziemlich gut, einfach und eine Budgetoption Reparatur der Hintergrundbeleuchtung. Filme schauen oder den Monitor als Küchenfernseher zu nutzen ist durchaus angenehm, für den Arbeitsalltag aber wohl nicht geeignet.

Helligkeitsregelung mit PWM

Für jene Hacker, die sich im Gegensatz zu mir nicht mit Nostalgie an die analogen Helligkeits- und Kontrastregler der alten erinnern CRT-Monitore Sie können die von der Monitorsteuerplatine erzeugte Standard-PWM steuern, ohne zusätzliche Bedienelemente nach außen zu entfernen (ohne das Monitorgehäuse zu bohren). Dazu genügt es, an zwei Transistoren am Eingang des Ein-/Aus-Reglers eine UND-NICHT-Schaltung aufzubauen und am Ausgang die Helligkeitsregelung zu entfernen (set Ausgangsspannung konstant bei 12-13V). Modifiziertes Schema:


Der Widerstandswert des Trimmerwiderstands RV2 für eine Spannung von 13 V sollte etwa 9,9 kOhm betragen (es ist jedoch besser, ihn genau dann einzustellen, wenn der Regler eingeschaltet ist).

Dichtere LED-Hintergrundbeleuchtung

Um das Problem der unzureichenden Helligkeit (und gleichzeitig Gleichmäßigkeit) der Hintergrundbeleuchtung zu lösen, wurde beschlossen, mehr LEDs und häufiger zu installieren. Da sich herausstellte, dass der Einzelkauf von LEDs teurer ist, als 1,5 Meter Klebeband zu kaufen und von dort zu löten, wurde eine kostengünstigere Option gewählt (Löten von LEDs von einem Klebeband).
Die 3528 LEDs selbst wurden auf 4 Streifen 6 mm breit und 238 mm lang platziert, 3 LEDs in Reihe in 15 parallelen Anordnungen auf jedem der 4 Streifen (die Verkabelung für die LEDs ist beigefügt). Nach dem Löten der LEDs und Drähte erhält man Folgendes:




Die Streifen werden zu zweit oben und unten mit Drähten zum Rand des Monitors in einer Fuge in der Mitte verlegt:




Die Nennspannung über den LEDs beträgt 3,5 V (Bereich 3,2 bis 3,8 V), sodass eine Anordnung von 3 LEDs in Reihe mit etwa 10,5 V versorgt werden sollte. Die Reglerparameter müssen also neu berechnet werden:


Die maximale Spannung, die wir für das Band benötigen, beträgt 10,5 V. Diese. Maximalwert R2 = 1000*(10,5/1,275-1) = 7,23 kΩ. Die minimale Spannung, bei der die Anordnung der LEDs noch irgendwie leuchtet, liegt bei etwa 4,5 Volt, d.h. Mindestwert R2 = 1000*(4,5/1,275-1) = 2,53 kΩ. Unser R2 besteht aus einem variablen Widerstand RV1 und einem Multiturn-Trimmer RV2. Wir erhalten den Widerstand RV1 7,23 kOhm - 2,53 kOhm = 4,7 kOhm und stellen RV2 auf etwa 7,23-4,7 = 2,53 kOhm ein und passen ihn in der zusammengebauten Schaltung an, um 10,5 V am Ausgang von LM2941 bei maximalem Widerstand RV1 zu erhalten.
Eineinhalb Mal mehr LEDs verbrauchen 1,2 A Strom (nominell), sodass die Verlustleistung des LM2941 gleich Pd = (13,6-10,5) * 1,2 + 13,6 * 0,006 = 3,8 Watt ist, was bereits eine solidere Leistung erfordert Kühlkörper zum Abführen von Wärme:


Wir sammeln, verbinden, wir werden viel besser:


Vorteile:
  • Ausreichend hohe Helligkeit (möglicherweise vergleichbar, möglicherweise sogar besser als die Helligkeit der alten CCTL-Hintergrundbeleuchtung)
  • Fehlende Lichtkegel an den Rändern des Monitors von einzelnen LEDs (LEDs sind recht häufig angeordnet und die Hintergrundbeleuchtung ist gleichmäßig)
  • Immer noch eine einfache und billige Steuerplatine
Mängel:
  • Das Problem mit dem Weißabgleich, der in Grüntönen bleibt, wurde in keiner Weise gelöst
  • LM2941, obwohl mit einem großen Kühlkörper, wird beheizt und erwärmt alles im Inneren des Gehäuses

Steuerplatine auf Basis eines Abwärtsreglers

Um das Erwärmungsproblem zu beseitigen, wurde beschlossen, einen Dimmer auf Basis eines Abwärtsspannungsreglers zusammenzubauen (in meinem Fall wurde LM2576 mit einem Strom von bis zu 3 A gewählt). Es hat auch einen invertierten Ein / Aus-Steuereingang, sodass derselbe Inverter an einem Transistor zum Anpassen vorhanden ist:


Die Spule L1 beeinflusst den Wirkungsgrad des Wandlers und sollte 100–220 μH für einen Laststrom von etwa 1,2–3A betragen. Die Ausgangsspannung wird nach folgender Formel berechnet:

Vout=Vref*(1+R2/R1)

Wo Vref = 1,23 V. Bei gegebenem R1 können Sie R2 mit der Formel erhalten:

R2=R1*(Vout/Vref-1)

In Berechnungen entspricht R1 R4 in der Schaltung und R2 entspricht RV1 + RV2 in der Schaltung. In unserem Fall nehmen wir zum Einstellen der Spannung im Bereich von 7,25 V bis 10,5 V R4 = 1,8 kOhm, einen variablen Widerstand RV1 = 4,7 kOhm und einen 10-kOhm-Trimmwiderstand RV2 mit einer anfänglichen Näherung von 8,8 kOhm (nach dem Zusammenbau der Schaltung Den genauen Wert stellt man am besten durch Messen der Spannung am Ausgang des LM2576 am Maximalwiderstand RV1) ein.
Für diesen Controller habe ich mich entschieden, eine Platine zu machen (die Abmessungen spielten keine Rolle, da im Monitor genügend Platz ist, um auch eine große Platine zu montieren):


Steuerplatinenmontage:


Nach der Montage im Monitor:


Alle sind hier:


Nach dem Zusammenbau scheint alles zu funktionieren:


Letzte Variante:


Vorteile:

  • Ausreichende Helligkeit
  • Abwärtsregler heizt nicht auf und heizt den Monitor nicht auf
  • Kein PWM, was bedeutet, dass bei keiner Frequenz etwas blinkt
  • Analoge (manuelle) Helligkeitsregelung
  • Keine Mindesthelligkeitsbegrenzung (für diejenigen, die gerne nachts arbeiten)
Mängel:
  • Leicht verschobener Weißabgleich in Richtung Grüntöne (aber nicht viel)
  • Bei niedriger Helligkeit (sehr niedrig) ist aufgrund der Streuung der Parameter ein ungleichmäßiges Leuchten von LEDs verschiedener Baugruppen sichtbar

Upgrade-Optionen:

  • Der Weißabgleich ist sowohl in den Monitoreinstellungen als auch in den Einstellungen fast jeder Grafikkarte einstellbar
  • Sie können versuchen, andere LEDs einzusetzen, die den Weißabgleich nicht merklich beeinträchtigen
  • Um ein ungleichmäßiges Ausleuchten der LEDs bei geringer Helligkeit zu vermeiden, können Sie verwenden: a) PWM (Helligkeit einstellen, indem PWM immer die Nennspannung liefert) oder b) alle LEDs in Reihe schalten und mit einer regelbaren Stromquelle speisen (falls vorhanden). Wenn Sie alle 180 LEDs in Reihe schalten, benötigen Sie 630 V und 20 mA), dann muss der gleiche Strom durch alle LEDs fließen, und jede hat ihren eigenen Spannungsabfall. Die Helligkeit wird durch Ändern des Stroms und nicht der Spannung geregelt.
  • Wenn Sie eine PWM-basierte Schaltung für den LM2576 erstellen möchten, können Sie die NAND-Schaltung am Ein / Aus-Eingang dieses Abwärtsreglers verwenden (ähnlich der obigen Schaltung für den LM2941), aber es ist besser, einen Dimmer einzusetzen in der Lücke des negativen Drahtes der LEDs durch den Mosfet mit Logikpegel

Sie können über den Link herunterladen:

  • AOC2216Sa Wartungshandbuch
  • Datenblätter LM2941 und LM2576
  • Schaltpläne des LM2941-Reglers im Proteus 7- und PDF-Format
  • Platinenlayout für LEDs im Format Sprint Layout 5.0
  • Diagramm und Verdrahtung der Reglerplatine auf dem LM2576 im Proteus 7- und PDF-Format

LEDs nehmen zunehmend ihren Platz unter den Lichtquellen ein.
Geringer Stromverbrauch und Helligkeit ermöglichten es LEDs, herkömmliche Glühlampen zu ersetzen und durchaus selbstbewusst mit Energiesparlampen zu konkurrieren.
Dem allgemeinen Trend folgend, entschied ich mich, mit meinen eigenen Händen zu fühlen und die LED-Matrix mit eigenen Augen zu betrachten, die keine separaten Treiber benötigt, sondern direkt an das 220-Volt-Netz angeschlossen wird. Wer sich für dieses Thema interessiert, bitte unter die Katze.
Aus diesem Grund habe ich mich für folgende Instanz entschieden:

Aus der Beschreibung auf der Seite geht hervor, dass diese Lichtquelle:
- hergestellt mit LED-COB-Technologie;
- Versorgungsspannung 220 Volt;
- Leistungsaufnahme 30 Watt;
- Farbtemperatur 2500-3200K;
- Material des Substrats (Basis) Aluminium;
- Gesamtabmessungen 40*60mm;

Während das Paket unterwegs war, studierte ich die Theorie.
Was ist LED-COB-Technologie?

Bis etwa 2009 gab es bei LED-Produkten nur eine Entwicklungsrichtung – die Erhöhung der Leistung der LED oder Power-LED. Die Verbesserung dieser Technologie hat es ermöglicht, die Leistung einer LED auf dem Niveau von 10 Watt zu erreichen.
Wie sich herausstellte, ist eine weitere Leistungssteigerung aufgrund der hohen Kosten für die Herstellung einer separaten Hochleistungs-LED nicht sinnvoll. Eine wichtige Rolle bei der Suche nach einem anderen Entwicklungsweg spielte auch die Tatsache, dass die LED eine Punktlichtquelle ist und es sich als nicht einfach und nicht sehr billig herausstellte, eine große Fläche mit hoher Leistung zu beleuchten Leuchtdioden. Um mehr oder weniger akzeptable Ergebnisse zu erzielen, war der Einsatz optischer Systeme erforderlich, um das Licht diffus zu machen.
Der nächste Schritt war die Verwendung von SMD-LEDs, um akzeptable diffuse Lichtquellen zu schaffen - eine große Anzahl von LEDs wurde auf eine Platine gelötet. Die Nachteile sind die Gesamtarbeitsintensität des Prozesses - die Herstellung einzelner LEDs (jede auf ihrem eigenen Keramiksubstrat + persönlicher Phosphorschicht usw.). Nachteile des Verfahrens waren außerdem die geringe Zuverlässigkeit einzelner LEDs und die Notwendigkeit einer Reparatur, wenn mindestens eine von ihnen ausfiel.
Als Ergebnis kamen die Ingenieure auf die Idee, LEDs ohne persönliche Attribute zu produzieren und sie auf der gleichen Platine anzubringen Kurzedistanz voneinander unter einer gemeinsamen Leuchtstoffschicht, d.h. LED-COB-Technologie. Letztendlich war es dadurch möglich, die Kosten für das gesamte Leuchtmittel zu reduzieren und bei Ausfall einzelner LEDs das gesamte Modul (Matrix) auszutauschen.

Das Paket kam in einem gelben Umschlag mit Luftpolsterfolie an. Die Matrix selbst ist in einem entsprechenden Plastikbeutel eingeschlossen.





Wie Sie sehen können, befinden sich die LEDs tatsächlich nahe beieinander, bedeckt mit einer gemeinsamen Phosphorschicht und geschützt durch eine Masse, die einem Kunststoffkleber ähnelt.
Die weiße Substanz rund um die Matrix und die Schutzschaltung des Treibers sieht aus wie Gummi oder Heißkleber – keine feste, elastische Masse. Dadurch konnte es aus den prominentesten Fällen entfernt und festgestellt werden, dass es sich bei einem davon um eine MB10S-Diodenbrücke mit einer maximalen konstanten Sperrspannung von 1000 Volt und einem maximalen Durchlassstrom von 0,5 Ampere handelt.
Datenblatt:

Abmessungen entsprechen denen in der Beschreibung angegebenen.



Die Dicke des Substrats beträgt 1 mm und das Gewicht der Matrix beträgt bis zu 8 Gramm.

Natürlich benötigen auch Matrizen wie Hochleistungs-LEDs einen Kühlkörper. Daher wurde ein Kühlkörper vom Prozessor gewählt.


Mit selbstschneidenden Schrauben wurde die Matrix durch die Wärmeleitpaste KPT-8 am Kühler befestigt.
In dieser Abfolge von Aktionen wurde ein Fehler gemacht - der Draht hätte gelötet werden müssen, bevor die Matrix am Kühler befestigt wurde - die Wärme des Lötkolbens ging in den Kühlkörper über. Das Lötergebnis ist auf dem Foto zu sehen. Die Drähte wurden jedoch sicher gehalten, und ich begann nicht, die Matrix zu entfernen.


Die erste Aufnahme machte einen unauslöschlichen Eindruck - um "hell" zu sagen, um nichts zu sagen. Auch bei Betrachtung aus der Ferne in einem leichten Winkel zur Ebene der Matrix sind "Hasen" vorhanden. Im Vergleich zu dem, was verfügbar ist Energiesparlampen Bei einer Temperatur von 2800 K ist das Licht weiß und es gibt viel davon.

Zimmer von 14 qm Meter mehr als gut ausgeleuchtet.







Nach 20 Minuten stieg die Temperatur auf 85 Grad. Außerdem habe ich die Matrix nicht auf Stärke getestet, obwohl Steuerchips den Strom durch die LEDs bei starker Erwärmung steuern können.

Weitere Tests wurden unter Verwendung von Zwangskühlung mit einem Standardkühler von diesem Radiator und einer Steuerplatine für die Lüftergeschwindigkeit durchgeführt. Ich habe das letzte aus dem alten PC-Netzteil entfernt.





Die Temperatur stieg anderthalb Stunden lang nicht über 31,5 Grad, und der Lüfter arbeitete mit niedriger Geschwindigkeit, ohne zu beschleunigen.



Danach wurde die Steuerplatine für die Lüftergeschwindigkeit aus dem Design herausgenommen und die Stromversorgung durch eine 9-Volt-Stromversorgung ersetzt.

Durch die Erhöhung der Spannung im Netz konnte sichergestellt werden, dass der deklarierte Stromverbrauch der Wahrheit entspricht.



Auf das Flimmern der Matrix reagierte die Kamera erwartungsgemäß mit einer Frequenz von 100 Hertz. Ich habe kein Video gemacht, aber ich konnte Folgendes aufnehmen

Es wäre möglich, Welligkeiten zu überwinden, indem ein Kondensator an die Diodenbrücke gelötet wird. Dies würde eine Spannungserhöhung auf 220 * 1,41 = 310,2 Volt bewirken und es wäre notwendig, mit den BP5132H-Begrenzungswiderständen zu spielen, aber da mir zunächst bewusst war, dass diese Lichtquelle nichts für Wohnräume ist, habe ich diesen Kampf nicht begonnen.
Der Geltungsbereich der Matrix ist allgemeine Straßenbeleuchtung, Hauswirtschaftsräume etc., daher können Pulsationen vernachlässigt werden.
Mit Hilfe von LATR konnte festgestellt werden (das Experiment wurde am Arbeitsplatz durchgeführt und kein Foto gemacht, um die Fragen nicht zu beantworten: „Warum?“), Dass die untere Schwelle, bei der die Matrix noch emittiert Licht ist 130-ungerade Volt. Ich habe nicht mehr als 250 Volt geliefert, aber in diesem Fall stört die Schweißermaske nicht).
Da diese Lichtquelle eine hohe Leistung und sozusagen eine erhöhte Lichtdichte hat, ist eine Streuscheibe vor der Matrix keineswegs überflüssig.

Zu den Nachteilen gehören daher:
- erhöhte Wärmeableitung (Kosten der Technologie, aber nicht des Designs) und die Notwendigkeit, einen Kühlkörper zu verwenden (vorzugsweise aktive Kühlung);
- ziemlich hohe Kosten.

Diese Nachteile werden jedoch durch die Helligkeit dieser Matrix, die Fähigkeit, eine große Fläche auszuleuchten, und die Einhaltung der deklarierten Eigenschaften mehr als ausgeglichen.
Das Flackern kann nicht auf negative Merkmale zurückgeführt werden, da der Anwendungsbereich der Matrix KEINE WOHNRÄUME ist.
Unabhängig davon möchte ich mich den Anhängern des Ordens "Hasser von Punkt 18" zuwenden. Freunde, ich bitte Sie, bei der Bewertung der in der Rezension präsentierten Informationen objektiv zu sein, zumal es ziemlich viel Mühe und Zeit gekostet hat, sie zu sammeln, zu systematisieren und zu präsentieren.

Das Produkt wurde vom Shop zum Verfassen einer Rezension zur Verfügung gestellt. Die Bewertung wird gemäß Ziffer 18 der Website-Regeln veröffentlicht.

Ich plane, +44 zu kaufen Zu den Favoriten hinzufügen Die Rezension hat gefallen +60 +111

Wird geladen...
Spitze