LED-Matrix mit PIC

Für ein Projekt, an dem ich arbeite, möchte ich eine einfarbige 9x9-LED-Matrix mit 9 Drucktasten bauen, um die LEDs mit dem PIC zu steuern. Bisher habe ich festgestellt, dass ich denke, dass ich Schieberegister zum Ansteuern der Kathoden und Schieberegisterchips zum Ansteuern diskreter Transistoren für die Anoden benötigen werde. Ich benötige auch Schieberegister für die Drucktasteneingänge. (Bitte korrigieren Sie mich, wenn ich falsch liege).

Ich habe Probleme, online nach relevanten Informationen zu suchen (z. B. welche Komponenten zu wählen sind). Kann mir jemand ein paar Ideen zur Recherche geben oder relevante Ratschläge wären sehr hilfreich! Danke

Antworten (1)

Ich gehe davon aus, dass Sie die gemeinsame Anode der Matrix ansteuern möchten, dh jeweils eine Anodenleitung.

Sie haben bereits die Transistoren für die Anoden erwähnt, und das ist richtig, Sie werden sie brauchen, weil Sie Strom für bis zu 9 LEDs gleichzeitig liefern müssen, und das ist zu viel für einen Logik-IC wie ein 74HC595-Schieberegister. Das werden 9 PNP-Transistoren sein.
Aber Sie brauchen auch Transistoren für die Kathoden; Sie möchten bis zu 9 Ausgänge gleichzeitig niedrig treiben, und bei 20 mA pro LED (ein typischer Wert) ist das zu viel für einen 74HC595. Das sind 9 NPN-Transistoren.

Sie müssen 18 Zeilen steuern, also können Sie dafür drei 74HC595 verwenden, wobei Sie für jede Scanzeile 18 Bit verschieben: 9 Bit, um die Anodenzeile auszuwählen, das ist 1 Bit niedrig, der Rest hoch und 9 Bit für die Kathoden , hoch für ein, niedrig für aus.

Die gute Nachricht ist, dass Sie kein separates Schieberegister für die Tasten benötigen: Verbinden Sie jeden von ihnen mit einer Anodenleitung, wobei die anderen Pins mit einem Eingang verbunden sind, und schließen Sie an diesem Eingang einen Pulldown-Widerstand an.
Jetzt können Sie jedes Mal, wenn Sie eine Anodenleitung scannen, am Eingang sehen, ob die Taste für diese Leitung gedrückt ist; Eingang High = gedrückt, Eingang Low = losgelassen.
Wenn Sie erwarten, dass Benutzer zwei Tasten gleichzeitig drücken (das werden sie immer!), müssen Sie Dioden in Reihe mit den Tasten schalten, um zu verhindern, dass andere LED-Reihen als die ausgewählte aufleuchten.

Bearbeiten Sie Ihren Kommentar
In Ihrer Skizze haben Sie die Widerstände der LEDs in den Spalten, was in Ordnung ist, wenn Sie die Anzeige jeweils eine Zeile ansteuern. Andernfalls teilt der Widerstand den Strom für alle LEDs in einer Reihe, und die Helligkeit variiert mit der Anzahl der eingeschalteten LEDs. In meinem Schema unten habe ich sie in die Reihen verschoben, sodass jede LED ihren eigenen Widerstand hat.

Geben Sie hier die Bildbeschreibung ein

Die Kreise stellen die LEDs dar. Der Eingang des Mikrocontrollers wird durch den Widerstand nach unten gezogen. Wenn eine der Tasten gedrückt wird, geht der Eingang hoch, wenn die zugehörige Spalte ausgewählt ist. So können Sie bei jedem Spaltenscan den Status einer Schaltfläche überprüfen. Die Dioden verhindern das Aufleuchten von LEDs in anderen Spalten als der aktiven, wenn mehr als eine Taste gleichzeitig gedrückt wird.

Ein Schuss ins Blaue, aber können Sie mir trotzdem helfen (nicht sicher, ob Sie diese Antwort erhalten werden).
@Daniel - Ja, ich kann dich hören (ein Benutzer wird immer über Kommentare zu seinen Beiträgen benachrichtigt). Lassen Sie mich wissen, wenn meine Antwort einer Klärung bedarf.
Ah, hatte ich gehofft, dass dies der Fall sein würde. Bisher habe ich eine etwas funktionierende LED-Matrix gebaut. Ich habe den Programmierteil nicht wirklich begonnen, aber ich bin in der Lage, LEDs innerhalb der Matrix zum Leuchten zu bringen. BEARBEITEN: Entschuldigung, neu auf dieser Seite. Ich habe versehentlich die Eingabetaste gedrückt, ich bin noch nicht fertig mit dem Schreiben
Ich bin mir nicht sicher, wie ich die Tasten verbinden würde, könnten Sie diesen Punkt bitte für mich klären? Was ich dachte, war, jeden Druckknopf mit einem msp430-E / A-Pin zu verbinden, aber es scheint, dass es nur acht gibt, und ich brauche 9 Knöpfe.
Hier ist eine schlecht gezeichnete Skizze der Schaltung. Jeder Basiswiderstand ist mit einem von drei 74HC595 verbunden und die 595er sind mit dem msp430 verbunden. Danke
@Daniel - meine Antwort aktualisiert. Ich hoffe, es ist jetzt klarer, aber Fragen sind immer noch willkommen.
Ich sehe, es macht Sinn! Ich werde mich bei Ihnen melden, wenn ich weitere Fragen habe. Danke
Hallo Steven, kennst du dich mit der msp430-Programmierung aus?
@Daniel - nur begrenzt: Ich habe den MSP430F1101 einmal verwendet, aber der hat nur 1 kB Speicher, also kannst du dir vorstellen, dass das nicht viel Code war :-)