PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LED-Ansteuerung mit AVR



joerg2712
14.07.2007, 10:23
Hallo zusammen,
ich lese schon einige Zeit bei Euch mit und muss sagen, das RN wurde mein Lieblings-Forum. Tolle Beiträge, ein einzigartig breites Wissen der Mitglieder und meist eine gute Kommunikationskultur. Klasse und weiter so.

Ich plane i.M. zwar keinen Roboter, dafür eine komplexere LED-Beleuchtung. Ich würde mich freuen, wenn die Controller-Spezialisten und natürlich auch alle anderen User hier kurz ihre Meinung (Tips, Verbesserungsvorschläge, Alternativen) zu diesem Projekt schreiben könnten.

Meine Planung
- 8 unabhängige LED-Lampen mit je einer RGB-LED und einer gelben und einer weißen LED (Superfluxe)
- Immer 2 Lampen bestrahlen eine opalisierte Plexiglasplatte (sieht gut aus)
- Je Lampe 5 PWM (rot-grün-blau-gelb-weiß), realisiert in einem kleinen AVR-Controller
- PWM-Auflösung 4 Bit = 16 Helligkeitsstufen je Farbe = theoretisch 4096 Farben für die RGB-LED

Nun zur Steuerung der ganzen Farbenpracht:
- In jedem Controller liegen 32 fixe Farbdefinitionen.
- Farbauswahl im Stand-alone-Betrieb über einen Taster (einfach durchtasten)
- Zusätzliches kleines Bediengerät mit eigenem AVR-Controller, evtl. mit IR-Fernbedienung.
- Im Bediengerät einige Kompositionen aus verschiedenen Farbkombinationen der einzelnen Lampen, nenne ich hier mal "Programm" definieren
- Ansteuerung der einzelnen Lampen über Lampen-ID (3 Bit) und Farbsollwert (5 Bit) einfach möglich

Die 32 Farben und einige Kombinationen (Programme) reichen in der Praxis allemal, schließlich will ich keine kitschige Multi-Color-Atmosphäre, kein Disko-Feeling und keine Regenbogen-Fadings sondern ein eher gemütliches Ambiente mit interessanten Lichtschattierungen schaffen.


Was haltet Ihr davon?

Und noch eine direkte Frage an die Controller-Spezialisten:
Das übergeordnete Bediengerät soll als Master die 8 Lampen (Slaves) ansteuern. Dazu benötige ich eine geeignete Kommunikationstechnik (Bussystem?). Da sich die Kommunikation auf 8 Bit reduziert, könnte ich das sogar mit I/Os machen. Das wäre m.E. einfach und flexibel, aber natürlich zum Verkabeln nicht so der Hit. Die Entfernungen zwischen den Controllern betragen außerdem bis zu einigen Metern. Lieber wäre mir ein serieller Bus. Ich habe da an den I²C-Bus gedacht und den mit Bus-Extendern (Philips P82B715 oder P82B96) versehen. Dann wäre alles relativ einfach.

Ich freue mich über jede Antwort und alle Tipps.
Vielen Dank im Voraus und viele Grüße

Jörg

Hanni
14.07.2007, 18:46
- 8 unabhängige LED-Lampen mit je einer RGB-LED und einer gelben und einer weißen LED (Superfluxe)
- Immer 2 Lampen bestrahlen eine opalisierte Plexiglasplatte (sieht gut aus)
- Je Lampe 5 PWM (rot-grün-blau-gelb-weiß), realisiert in einem kleinen AVR-Controller
- PWM-Auflösung 4 Bit = 16 Helligkeitsstufen je Farbe = theoretisch 4096 Farben für die RGB-LED

Soetwas ist problemlos möglich.
Da du ja nur 5 PWM Kanäle je Lampe brauchst, würde ich dir einen ATmega 48 / 88 empfehlen. Dieser hat schonmal 6 PWM Ausgänge sowie diverse Schnittstellen. Übrigens würde ich schon eine 8 Bit Auflösung wählen. Man hat einfach mehr Möglichkeiten und die Hardware PWM gibt es auch her.


Die Entfernungen zwischen den Controllern betragen außerdem bis zu einigen Metern. Lieber wäre mir ein serieller Bus. Ich habe da an den I²C-Bus gedacht und den mit Bus-Extendern (Philips P82B715 oder P82B96) versehen. Dann wäre alles relativ einfach.

Ich selbst würde ein RS 485 Bus System bevorzugen. Zum einen ist die Seielle Schnittstelle sehr einfach anzusprechen und zum anderen dürfte man etwas weniger Störungen auf der Leitung haben wie bei TWI.

Grüße,
Hanni

stefan_Z
15.07.2007, 04:06
Ja, das is alles machbar... Wenn du mit 4xPWM auskommen kannst, dann geht auch der Tiny2313 gut - der kostet nicht viel und man bekommt ihn überall... Das ganze Programm könnte man als Einsteiger gut in bascom-Basic machen - oder eben direkt viel komfortabler in C (wenn man kann).
Damit kann man auch einfachst RC5 IR-Fenbedienung machen. Ist ein super Einsteigerprojekt - aber du solltest bei Superflux-LEDs noch Transistoren einplanen, damit du dir den AVR nicht durchkokelst!

joerg2712
17.07.2007, 06:34
Hallo Hanni und Stefan_Z,

danke für die Antworten.
Ich baue jetzt erst mal die "Lampen-Hardware", d.h. LED-Platine, Plexiglas usw.
Die LED inkl. den Treibern werden auf einer eigenen kleinen Platine montiert.
Dann kommt ein Eval-Board dran (wahrscheinlich Pollin, kostengünstig und flexibel) und dann AVR-Assembler. Ich möchte das in Assembler machen, weil ich dabei den Controller gut kennenlernen kann (ist auch ein Grund für dieses Projekt). Ich denk ein Wechsel auf C ist dann immer noch möglich.

Bezüglich der PWM- und Kommunikation spiel ich mal ein bißchen rum.
Evtl. mach ich auch nur die RGB-LEDs mit PWM, die weißen und gelben dienen eigentlich sowieso nur der normalen Beleuchtung, wenn man mal keine Farbe möchte. Dann könnte ich vielleicht auch die jeweils 2 Lampen die eine Plexiglasplatte bestrahlen mit einem Controller ansteuern.
Wenn ich was fertig habe, dann poste ich mal ein Bild bzw. meine Erfahrungen. Danke zunächst mal.

Viele Grüße
Jörg

Goblin
28.07.2007, 16:48
Ich baue gerad an sowas ähnlichem (siehe Signatur). Bei mir sind es 100 RGB-LEDS (ebenfalls Superflux), die durch 25 Controller mit 8-Bit-PWMs versorgt werden. Ich habe mich was die Kommunikation angeht für TWI entschieden, da dies der AVR schon hardwaremäßig beherrscht. Ich habe allerdings am Bus noch nicht viel weitergearbeitet, weil gerade einige kleinere Projekte wichtiger sind. Wenn du Interesse hast kannst du mich gerne in ICQ adden. Mir steht bald auch die Programmierung in ASM bevor. Zzt benutze ich Bascom, bin damit allerdings alles andere als zufrieden.