Ich verwende einen PIC18F2420-Mikrocontroller (ich kann bei Bedarf ändern). Die Aufgabe besteht darin, bis zu 20 Leistungspegelanzeige-LEDs zusammen mit einigen anderen LED-Anzeigen und Schaltern mit PIC anzusteuern. Ich kann mir vorstellen, die Anode aller 20 LEDs mit der Schiene (~ 30 V) zu verbinden und die Kathode jeder LED mit einem PIC-E / A-Pin zu verbinden. Aber das würde bedeuten, dass 20 I/O-Pins nur dafür reserviert sind - Verschwendung von vielen I/Os. Ein externer I/O-Expander würde die Kosten erhöhen und bietet nur 8 weitere I/Os mit ICs wie MCP23008. Kosten und PCB-Platz sind ein wichtiger Gesichtspunkt. Mit Charliplexing-LEDs kann ich nur 1 LED gleichzeitig einschalten. Ich möchte sie nicht im Arbeitszyklus mit reduzierter Helligkeit fahren.
Wie kann ich bei optimaler Nutzung der PIC-E / A-Pins bis zu allen 20 LEDs EIN fahren? Brauche ich wirklich einen Controller mit so vielen Pins, dass ich jeder LED nur 1 Pin zuweisen muss? Die Zeichnung des LED-Anschlussschemas wäre hilfreich, um sie zu verstehen.
Ich möchte nicht alle 20 LEDs gleichzeitig als Gruppe ein- / ausschalten. Diese LEDs sind Pegelanzeigen, und gemäß der Benutzereingabe muss ich jede nächste Pegelanzeige-LED einschalten, indem ich alle niedrigeren Pegelanzeigen beibehalte EIN, wenn der Pegel vom Benutzer erhöht wird, und jede LED mit dem höchsten Pegel nacheinander ausschalten, wenn der Pegel vom Benutzer verringert wird.
Es scheint, dass Sie so etwas wie ein Audio-VU-Meter erstellen. Der einfachste Weg, dies zu tun, wäre, ein PWM-Signal zu erzeugen, es zu filtern und es an einen LM3914- Punkt/Balken-Anzeigetreiber zu senden . Diese treiben jeweils zehn LEDs an und können zu beliebig vielen Treibern kaskadiert werden.
WENN Sie alle 30 LEDs einzeln ansteuern möchten ...
Verwenden Sie ein Schieberegister mit hoher Strombelastbarkeit (falls erforderlich). Mit Schieberegistern können Sie eine größere Anzahl von Pins mit nur einer kleinen Anzahl von Eingangspins schalten, indem Sie Daten in den Chip serialisieren und parallel an die Anzahl von Pins ausgeben, die sich auf dem Gerät befinden. Es gibt viele Tutorials dazu, suchen Sie einfach nach Schieberegistern. Das Schöne an Schieberegistern ist, dass Sie sie miteinander verketten können, um nur wenige Ausgangspins zu verwenden, um eine große Anzahl von ihnen zu steuern, mit dem Kompromiss, wie schnell Sie die Ausgänge aktualisieren können.
Mit welcher Spannung und Stromstärke möchten Sie die LEDs betreiben? Dies begrenzt, ob Sie die LEDs von jedem herkömmlichen Schieberegister aus betreiben können oder nicht. Möglicherweise müssen Sie das Schieberegister verwenden, um einen MOSFET anzusteuern, wenn Sie große LEDs steuern möchten.
Hier ist ein Link zu einem gemeinsamen Hochstrom-Schieberegister:
Ich denke, Sie haben drei Möglichkeiten:
(1) Die direkte LED-Steuerung mit einem größeren PIC, z. B. dem 18f4620 (mit 35 E / A-Pins). Es gibt superhelle LEDs, diese leuchten mit 2-3 mA auch gut.
(2) Wie oben, aber verwenden Sie einen kleinen und billigen Transistor als Emitterfolger für jede LED und normale (sogar Hochleistungs-) LEDs.
(3) Wie 'Korozjin' oben schrieb, verwenden Sie Schieberegister. Der TPIC6B595 ist sehr gut, aber der viel billigere HC595 reicht auch aus (kann maximal 8-9 mA/Pin gleichzeitig aufnehmen/geben).
Wenn Ihre LEDs alle als Gruppe gesteuert werden sollen - alle gleichzeitig ein- und ausgeschaltet -, müssen Sie nur einen Ausgang des Mikrocontrollers verwenden, benötigen aber wahrscheinlich einen Treibertransistor, um den gesamten LED-Strom zu verarbeiten.
PMIC-LED-Treiberchip, der über I2C spricht. 24+ Kanäle sind einfach und allgemein verfügbar :)
Marla
Passant
Benutzer101095
Benutzer101095
jwsc
Benutzer101095