Forum: Mikrocontroller und Digitale Elektronik AVR PWM Shift LED Orgel (Wohnzimmerbeleuchtung)


von Björn R. (sohiq)


Angehängte Dateien:

Lesenswert?

Hallo,
wie bereits im Betreff angekündigt habe ich vor, unser Wohnzimmer etwas 
zu verschönern. Dazu wollte die Decke mit Stoff ein paar cm "abhängen" 
und dahinter LED-Strips verlegen. Die von mir angestrebte Beschaltung 
habe ich auf dem Bild zusammengefasst. Eine Hauptplatine versorgt über 4 
Steuerkabel 24 Schieberegisterplatinen (jeweils 6 hängen 
hintereinander). Das Netzteil wird an die Lampenkabel angeschlossen, und 
der Lichtschalter funktioniert weiterhin so wie er soll, dass heißt die 
Initialwerte sind Weiß oder vll. warm weiß… Wenn man mehr will kann man 
über Bluetooth mit dem Smartphone alles einstellen(Lichtfarbe, 
Animationen, faden, pulsen, Equalizer….ich glaube damit kann man sich 
Jahre beschäftigen…)
Da ich allerdings auf ein paar Gebieten Neuland betrete, wollte ich mich 
rückversichern, dass ich nicht nach einigen investierten Euros und 
Stunden Bastelarbeit doch wieder die Glühbirne einschraube. In diesem 
Sinne bitte ich um Bestätigung, Kritik, Verbesserungsvorschläge oder 
einfach Erfahrungen zu den genannten Bauteilen. Da ich noch Student bin 
stehen mir nur recht überschaubare Finanzielle Mittel zur Verfügung 
daher sollte das Projekt den Rahmen von 300€ nach Möglichkeit nicht 
sprengen.
Netzteil: SNT MW200-12 :: Schaltnetzteil, geschlossen, 12V / 16,7A / 
200WDieses Netzteil habe ich schon mehrmals verwendet. Sind Robust, 
stark und verhältnismäßig günstig (Reichelt).

LED Stripe: RGB 12V entweder mit 60led/m oder 30led/m mal schauen. Die 
60led/m verbrauchen knapp 10W/m. Bei angepeilten 48*0.4m= ca20m 
Gesamtlänge  passt das. Kosten über EBay ca. 4-5€/m

Schieberegister: M74 HC595 B1R arbeitet bei 5V mit mehr als 20MHz 
ansonsten keine Erfahrung mit dem Teil, es hat sich nach Recherche als 
das günstigste herausgestellt

Leistungstreiber: ULN 2003A :: Darlington-Arrays, DIL-16 = KID 65003. 
Verkraftet laut Datenblatt 500mA pro Ausgang. Bei 3 Farben und 12V 
ergibt das eine maximale Leistung von 18W. Dies entspricht ca1.8m LED 
Strip. ansonsten auch keine Erfahrung, Preis hat überzeugt. ich habe 
auch nach Komplettlösungen gesucht zB. : TPIC6A595 Schieberegister und 
Leistungstreiber in einem, diese Stellten sich jedoch als deutlich 
teurer heraus.

ATMega644: habe schon ein paar AVR µC mit dem Polin-Board und PonyProg 
beschrieben. Habe mich für diesen entschieden da ich einiges an Ram 
benötige.

Bluetooth-Modul BTM222: keine Erfahrung, gibt jedoch gut dokumentierte 
Beispiele und ca. 14€ haben überzeugt.
 Flash Speicher: AT 45DB041D SO :: 4-Mbit DataFlash RapidS, SOL-8: 
benötige speziell für Animationen doch ein bisschen Speicher, dieser 
könnte aber auch anders ausgeführt werden, RAM.... Ich habe diese 
Variante gewählt da ich ein paar tut's gefunden haben die diesen 
Speicher verwenden und der recht günstig ist. Allerdings wäre mir eine 
THT variante löttechnisch lieber.

Platinen Herstellung: Insbesondere die 24 Schieberegisterplatinen möchte 
ich nicht selber über Lochstreifen "hin pfuschen" und habe auch schon 
ein Board gelayoutet kosten bei pcb-devboards ca. 50€ für alle 24 auf 
einer 290x195mm Platine

Platinen Verbindung: bei Polin gibt es 1/4m RJ45 Kabel für 45cent und 
die THT-Löt-Buchse für 20cent. Das ist denke ich, eine saubere und 
günstige Lösung(2 Platinen mit 8 Adern unter 1€ verbinden).
Die 12V Versorgungsspannung mit einigen Ampere wird über Schraubklemmen 
zu jeder Platine geführt.

An die Verbindungsstellen der LED Strips bohre ich Löcher und stecke 
diese dann auf Pins, die auf der Platine sind (lässt sich sehr gut löten 
und evtl. auftretende Belastungen müssen nicht nur über das Lötzinn 
aufgenommen werden)

Ich wäre dankbar für jede Anregung was ich verbessern könnte.
MfG Björn

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Sieht erstmal so aus, als hättest Du Dir schon einige Gedanken gemacht. 
Klingt gut. Kommst Du nicht mit einem µC aus? Ich finde zwei auf dem 
Bild.

von Karl H. (kbuchegg)


Lesenswert?

>  Flash Speicher: AT 45DB041D SO :: 4-Mbit DataFlash RapidS, SOL-8:
> benötige speziell für Animationen doch ein bisschen Speicher

Animationen?
Welche Animationen?
Wieviele PWM Kanäle hast du und wieviele LED werden jeweils gemeinsam 
bedient?

von Björn R. (sohiq)


Lesenswert?

hatte ich auch erst gedacht allerdings ist der der fürs PWM-shift 
zuständig ist schon gut am ackern. Ich wollte 256 Helligkeitsstufen und 
er muss jeweils 48 Bits hintereinander an den jeweils 4 
Schieberegistersträngen parallel setzen. Ich habe für jeden der 48 
"setzschritte" 10Takte kalkuliert. Die wiederholrate der PWM sollte so 
bei ca 100Hz liegen. das macht in summe:
256*48*10*100=12,3MHz. Da bekomme ich galube ich gerade noch hin das er 
die Daten die er vom anderen µC gereicht bekommt aufnehmen kann. Der 
andere kümmert sich dann um den Flashspeicher, die Bluetooth verbindung 
und die Berechnung der nächsten Farbwerte.
gruß Björn

von Björn R. (sohiq)


Lesenswert?

Die Animationsdaten sollten vom Smartphone kommen im Flash abgelgt 
werden und vom Berechnungs µC zur richtigen Zeit an den PWM µC 
weitergereicht werden. Ich dachte da an eine 25,6 sekunden schleife und 
dann für jede Farbe jedes Stripes einen Datensatz aus 4 bytes:
1. byte Startzeit in 1/10s
2. byte Startwert von 0 bis 255
3. byte endzeit in  1/10s
4. byte Endwert von 0 bis 255

Der berechnungs µC linearisiert dann die Werte zwischen start- und 
endzeit und gibt diese im richtigen zeitpunkt an den anderen µC weiter

ich möchte 48 Stripes mit je drei Farben also 144 pwm kanäle mit jeweils 
ein paar leds( wie vll genau kann ich jetzt noch nciht sagen)
gruß Björn

von picbastler (Gast)


Lesenswert?

Vorsicht: die 500mA pro Kanal beim ULN2803 gelten meines Wissens nicht 
für alle Kanäle gleichzeitig.
Ansonsten funktioniert der aber prima mit HC595 zusammen.

von Torsten C. (torsten_c) Benutzerseite


Lesenswert?

Björn Renn schrieb:
> er muss jeweils 48 Bits hintereinander an den jeweils 4
> Schieberegistersträngen parallel setzen.

Warum parallel?

> Ich habe für jeden der 48
> "setzschritte" 10Takte kalkuliert.

Mit welcher Frequenz läuft der SCLK vom "SPI serial port"? Oder 
programmierst Du das SPI-Protokoll Schritt für Schritt selbst?

> das macht in summe:
> 256*48*10*100=12,3MHz.

Du mußt m.E. nicht mit 256 multiplizieren. Wenn Du 64 Stufen kannst, 
also: 0,4,8,16, … kannst Du die Stufe 7 mit 4 - 8 - 8 - 8 - 4 - 8 - 8 - 
8 … und die Stufe 6 mit 4 - 4 - 8 - 8 - 4 - 4 - 8 - 8 … erzeugen; Oder 
meinst Du, dass das flimmert?

von Björn R. (sohiq)


Lesenswert?

> Warum parallel?
>
> Mit welcher Frequenz läuft der SCLK vom "SPI serial port"? Oder
> programmierst Du das SPI-Protokoll Schritt für Schritt selbst?
>
hatte ich eigentlich vor, deshalb kann ich auch meine 4 Ausgänge 
gleichzeitig setzen ...

>
> Du mußt m.E. nicht mit 256 multiplizieren. Wenn Du 64 Stufen kannst,
> also: 0,4,8,16, … kannst Du die Stufe 7 mit 4 - 8 - 8 - 8 - 4 - 8 - 8 -
> 8 … und die Stufe 6 mit 4 - 4 - 8 - 8 - 4 - 4 - 8 - 8 … erzeugen; Oder
> meinst Du, dass das flimmert?

das ist eine idee...
es gibt nur 32 unterschiedliche Werte die sich aber 8 mal (leicht 
unterschiedlich) wiederholen das ergibt auch 256 werte. Dafür ist der 
Berechnungsaufwand leicht größer aus 86/256 mus erstmal
 11-11-11-10-11-11-11-10 werden.

deine eigentliche idee ist zwar etwas speichereffektiver könnte 
allerdings schon flimmern grade die 7 mit 4 - 8 - 8 - 8 - 4 - 8 - 8 - 8 
da wiederholt sich die "4" dann mit 100/4=25Hz...

werde ich sehen wenn ich alles vor mir habe, bei der thematik kann man 
ja einfach die Anzahl der Stufen herrabsetzen falls es irgendwo zu 
engpässen kommt

von Björn R. (sohiq)


Lesenswert?

> Vorsicht: die 500mA pro Kanal beim ULN2803 gelten meines Wissens nicht
> für alle Kanäle gleichzeitig.
> Ansonsten funktioniert der aber prima mit HC595 zusammen.

Habe grade nochmal nachgelesen,
In dem Datenblatt von Reichelt steht das wirklich nicht so direkt worauf 
sich die 500mA beziehen, in dem von TI 
(http://www.ti.com/lit/ds/symlink/uln2003a.pdf)
steht aber eindeutig 500mA pro Ausgang und das insgesamt nicht mehr als 
2,5A fließen dürfen wird wohl sonst zu warm... Da ich nur 6 Ausgänge 
benutze, sollte ich also nicht mehr als 400mA pro Ausgang ziehen

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.