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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.