Forum: Mikrocontroller und Digitale Elektronik Fragen zum Design einer RGB-Led Pyramide


von Nils S. (kruemeltee) Benutzerseite


Lesenswert?

Ich möchte mir eine RGB-LED Pyramide bauen und habe mich bis jetzt mal 
ein wenig schlau gemacht, nun ein paar Fragen :)

Ich habe die Zeichnung gerade nicht zur Hand und schreibe ausm Kopf, die 
Zahlen der LEDs können also doch um +/- 1..2 variieren, tut aber ja 
jetzt nicht viel zur Sache.

Die Pyramide soll aus 6 "Stockwerken" bestehen, ich glaube ich hatte 56 
RGB-Leds ausgerechnet.

Der Controller, der ich verwenden möchte ich ein mega644, da der 6 
PWM-Channels hat, pro "Stockwerk" einen. Geschwindigkeit am Limit, 
20Mhz, dass es nicht eng wird.

Frage 1)
Die unterste Ebene besteht aus 21 LEDs. Mit PWM ist doch dann ein 
74HC595 mit #G für PWM um einiges schneller als I2C Expander wie der 
PCF8574(A), oder?
So wie ich das sehe brauche ich dann ja 21*3=63 Pins für die unterste 
Ebene, insgesamt also dann 56*3=168 Pins die ich steuern muss. Dann wohl 
168/8=*21* Shift Register?
Mit den PCFs würde ich an einem I2C Bus damit ja auch gar nicht mehr 
hinkommen...

Frage 2)
Wie stelle ich das mit den Shift Registern dann am besten an? Je Farbe 
ein extra "Shift-Register-Array"?
Ich kann ja dann nur eines per Hardware SPI ansteuern, die anderen 
beiden müssen so dann ja per Software-SPI gesteuert werden.

Reicht dabei die Geschwindigkeit und kann mir da mal jemand sagen, wie 
ich sowas zu berechnen habe? Da bin ich noch nicht hintergestiegen...

Oder kann ich einfach alle Shift Register kaskadieren und die 
Geschwindigkeit reicht doch noch aus?

Frage 3)
Zum "Blink-Programm"... Wie mache ich es am besten Blink-/Musterfolgen 
fest im Gerät zu speichern? Mit ins Flash ist mir weniger lieb, da muss 
man bei Änderungen immer umflashen. Reicht ein I2C EEprom oder 
vielleicht eine SD-Karte?

Zusätzlich soll die Steuerung "live" per Uart <-> Bluetooth mit BTM222 
<-> PC möglich sein.

Der Datenverbrauch lässt sich dafür ja relativ simpel berechnen.
Angenommen 50Hz Wiederholrate bei 3 Farben macht das 3Bit*56Leds = 168 
Bit = 21Byte*50 = 1050 Byte pro Sekunde. Das packt der UART ja ohne 
Probleme und eine SD Karte, denke ich auch mal. Beim I2C EEprom glaube 
ich das weniger...

Allerdings weiss ich nicht, ob es dann noch hinhaut wenn ich die 
einzelnen Bits aus den Bytes rauspfriemeln muss.
Wenn ich für jedes Bit ein Byte übertrage liegt der Datenverbrauch bei:
3Byte*56 Leds = 168Byte * 50 = 8400 Byte.
Nun passen aber über 8KB nicht mehr in den RAM.
Reicht die Rechenleistung aus um das direkt vom UART an die LEDs 
weiterzugeben?


Ich hoffe ich hab das einigermassen verständlich geschrieben und nicht 
vergessen...

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.