Ich verwende einen 4- bis 16-Zeilen-Decoder, um eine 4-Bit-Zahl von Arduino/Seeed/ESP32 in Treiberschaltungen wie RGB-LEDs umzuwandeln, die sonst alle meine Pins verbrauchen würden. Es gibt einige Probleme mit diesem Ansatz, die ich durch Studium der Datenblätter gelöst habe, aber eines hat mich ratlos gemacht: Beim 74HC154 kann jeweils nur ein Pin aktiv (niedrig) sein. Wenn ich also 5 RGB-LEDs mit gemeinsamer Anode anschließe, kann ich nur jeweils pulsieren R/G/B-Kathode für 1/15 der Zeit, sodass sie schwach sind.
Ich brauche eine Art 16-Kanal-Latch mit Clear-Funktion, die ich neben den Decoder stellen kann, damit ich aktive (niedrige) Pins sammeln kann, bis ich den Clear-Pin pulsiere. Das ist das, was ich benötige:
Chip links: Eingänge 0-15, Chip rechts Ausgänge 0-15 und ein Clear-Pin.
Auf diese Weise kann ich den Decoder verwenden, um den Verriegelungschip zu "programmieren" und ihn die LEDs für 1 ms oder ähnliches ansteuern lassen, dann löschen und die nächsten 1 ms ausführen. Wenn ich das schnell genug kann, kann ich sogar Software-PWM durch die Chips senden und grundlegende RBG-Funktionalität haben (statt nur R oder G oder B oder W oder Cyan oder Magenta oder Gelb oder aus).
Ich habe Buskonverter und Flipflops recherchiert, aber ich kann diese Funktionalität nicht finden, ohne viele Chips miteinander zu verdrahten. Gibt es einen solchen Chip oder kann er zusammengebaut werden? Wenn nicht, wie würden Sie das Grundproblem lösen?
Vielen Dank für Kommentarideen.
Ich könnte ein PLA oder ein CPLD verwenden, da stimme ich zu, aber darauf möchte ich jetzt nicht eingehen. Ich habe es auf drei Optionen eingegrenzt, um den Anwendungsfall anstelle des 4-zu-16-Decoders zu lösen, was für mich nicht der richtige Weg war.
Nur für LEDs gibt es den MAX7219, der 64 LEDs steuert. Vielleicht kann dies RGB auf weniger LEDs oder mehreren Chips ausführen;
Für die allgemeine Ausgabe ist die Komponente, die ich wollte, ein Schieberegister wie 74hc595;
Für LEDs gibt es Charlieplexing (könnte vielleicht an den allgemeinen Fall angepasst werden, indem Dioden in Reihe mit der Last verwendet werden) http://www.pcbheaven.com/wikipages/Charlieplexing/
Ich verdanke die Antworten diesem Artikel: https://arduino.stackexchange.com/questions/117/is-there-a-way-to-have-more-than-14-output-pins-on-arduino
Obwohl ich akzeptiere, dass dies eine Änderung des Ansatzes ist, keinen Decoder mehr zu verwenden, ist dies die Lösung für meine Frage im Geiste.
jonk
Toni M
Kartmann