Forum: Mikrocontroller und Digitale Elektronik LED Matrix Schaltung gesucht sowie Bsp Programm


von Snayer I. (Firma: Audi GmbH) (snayer2311)


Angehängte Dateien:

Lesenswert?

Guten Abend zusammen,

ich suche für meine Pic Hausaufgabe eine geeignete LED-Matrix Schaltung. 
Zwar ist das nur ein kleiner Bruchteil meiner Hausaufgabe aber da würdet 
Ihr mir schon sicherlich viel helfen.

Und zwar müssen 16 LEDs verschaltet werden jeweils zwei LEDs(rot und 
grün) für eine Tür oder eines Fensters. Die Bedeutung der Farben der 
beiden LEDs hoffe ich mal ist jedem klar ansonsten wiederhole ich das 
lieber mal hier. Also es soll simuliert werden wenn ein Fenster auf ist 
dann soll entweder die rote oder die grüne led leuchten. Welche von 
beiden leuchtet wenn das Fenster oder die Tür geöffnet ist ist 
geschmacksache.

Da ich nicht viele Pins verfügbar habe weil ja auch andere Dinge am MCU 
angeschlossen werden müssen wollte ich dies mit I2C ansteuern. Maximal 
steht mir nur der PortB beim PIC16F88 verfügbar für die Leds. Falls das 
nicht mit I2c hinhauen sollte. Hoffe ich mal nicht.

Ich suche eine einfache Schaltung mit der ich über I2C diese Matrix 
ansteuern kann. Aus einem Forum von dieser Seite link hier-> 
Beitrag "8x32 LED-Matrix-Lauflicht per I2C"
wurden einige solcher Schaltungen gezeigt.

Beispielsweise diese Schaltung (Link im Anhang) sieht einfach Aufgebaut. 
Jetzt weiss ich nicht ob man mit dem HT1632C die LEDs ohne Vorwiderstand 
beschalten kann. Wie es im Schaubild abgebildet ist?

Was mir auch Kopfverbrechen macht ist was die Pins WR, RD, DATA und CS 
machen. Eigentlich brauch ich doch nur Data und WriteClock? Was machen 
die anderen Pins. Das habe ich nicht so richtig aus dem Datenblatt 
verstanden.

Ein weiteres Problem ist wie spreche ich das Bauteil im Programm an. 
Zwar weiss ich wie I2C funktioniert aber ich weiss nicht welche befehle 
ich ihm schicken soll. Aus dem Datenblatt S. 21 fand ich zwar eine 
Befehlsübersicht aber ich weiss nicht wie ich damit anfangen soll.

Wie könnte da z.b ein Beispielprogramm in C ausehen wenn ich nur eine 
Led ansteuern sollte. Sollte nur ein kleines sein damit ich weiss welche 
Befehle ich senden soll.

Ich hoffe Ihr nimmt jetzt meinen langen Text nicht übel.
Auf Ratschläge oder Antworten bin ich sehr dankbar. Vielen Dank im 
voraus.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Adrian H. schrieb:
> Jetzt weiss ich nicht ob man mit dem HT1632C die LEDs ohne Vorwiderstand
> beschalten kann

Nein, sollte man nicht. Den "ROW Sink Current" darfst Du per Widerstand 
auf maximal 16mA einstellen.

Adrian H. schrieb:
> Wie könnte da z.b ein Beispielprogramm in C ausehen wenn ich nur eine
> Led ansteuern sollte.

Ist hier jemand, der für Adrian ein C-Programm schreibt? ;-)

@Adrian: Das ist kein I²C (TWI). Das Protokoll ist idiotensicher im 
Datenblatt beschrieben.

Hast Du die ICs schon da? Ich könnte Dir ein paar zum ausprobieren 
schicken. Schicke mir ggf. 'ne PN. Technische Fragen aber bitte nicht 
per PN.

: Bearbeitet durch User
von Adrian (Gast)


Lesenswert?

Noch nicht da ich noch am überlegen bin ob ich diese Schaltung aufbauen 
sollte. Wenn ja dann greife ich darauf gerne zurück.

Wenn ich richtig verstanden habe wird dieser Baustein nicht über I2C 
gesteuert?.
Ich hab ein Arduino Beispiel gefunden in dem wurde es mit I2C 
angesteuert, falls man dies als "Grundlage" nehmen könnte.
Deswegen irretiert mich dieser Satz einwenig:D

>@Adrian: Das ist kein I²C (TWI). Das Protokoll ist idiotensicher im
Datenblatt beschrieben.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Adrian schrieb:
> Wenn ich richtig verstanden habe …?

Das hast Du.

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Adrian H. schrieb:
> Da ich nicht viele Pins verfügbar habe … wollte
> ich dies mit I2C ansteuern.

Neben I²C geht ja z.B. auch SPI. Wenn es minimal billig gein soll, nehme 
den FD9802.

Ansonsten siehe "Spezielle_ICs" im Artikel LED-Matrix.

: Bearbeitet durch User
von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Adrian H. schrieb:
> Und zwar müssen 16 LEDs verschaltet werden

Also nur ein/aus? Dann reichen also 127 Helligkeitsstufen.

Adrian H. schrieb:
> Da ich nicht viele Pins verfügbar habe ...

Der LPD8806 braucht z.B. nur einen einzigen Pin. Du musst für 16 LEDs 
halt 3 Stück hintereinander schalten.

Adrian H. schrieb:
> ... LEDs ohne Vorwiderstand beschalten ...

Beide (FD9802 und LPD8806) haben Konstantstromausgänge und brauchen 
keine Vorwiderstände.

: Bearbeitet durch User
von Adrian (Gast)


Lesenswert?

Also würdest du mir den(FD9802 und LPD8806) für meine LED matrix 
empfehlen?
Ich hab mir eher an so einer 6x3 Matrix gedacht. Würde ja mit diesem 
Bauteil hinauen. Er hat ja 6 Outputs laut Datenblatt.

Kurze Frage warum ich nach einem C Beispiel gefragt habe natürlich nicht 
ohne Hintergedanke. Ich muss leider alles in assembler schreiben 
deswegen weil ich das mit I2c in C am einfachsten geht dachte ich wird 
das auch in assembler so sein.
Also empfielt es sich lieber über spi zu programmieren?.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Adrian schrieb:
> Ich muss leider alles in assembler schreiben

Dann ist SPI wohl noch am einfachsten: Keine Umschaltung der GPIOs 
zwischen Input und Output und keine zeitkritischen Protokolle, da es 
separate Clock- und Latch-Pins gibt.

Du kannst Dir alternativ zum FD9802 auch mal die TLC5921, TLC5922, 
TLC5926, TLC5927, TLC5940, STP16CPC05 oder STP16CPC26 anschauen. Alle 
recht ähnlich, die Liste ist fast endlos.

Ich habe mir halt wegen des Preises für 16€ 100 Stück von den FD9802ern 
gekauft.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.