PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Entscheidung für einen Microcontroller



VBEV
01.07.2007, 21:50
Hallo,
ich muss/möchte mich grade für einen Microcontroller entscheiden.
Was möchte ich machen:
Auf kleinen raum 6 RGB-LED´s steuern mit "Farben dimmen" heißt ich bräuchte im Grunde einen Microcontroller welcher 18 PWM Ausgänge hat. Solche gibt es aber nicht oder? Zu mindestens einen den man mit Normalen Lötkenntnissen verbauen kann. Daher eher einen "Software PWM"
Eine weiter Funktion welche aber kein Problem sein sollte ist ein BUS um mehrere Microcontroller bzw RGB-LED´s von einem Zentralen Punkt aus zu steuern.
Über diesen BUS sollen auch die Steuerbefehle für jede RGB-LED kommen.

Könnte ihr mir eine Empfehlung für einen Microcontroller geben?

mfg
Alex

MartinITM
02.07.2007, 18:56
Hio,

hast du einen Link zu den LEDs?
Wie kommst du auf 18 PWM-Ausgänge?
Würde evtl. den ATmega16 benutzen mit 3 8-bit bi-directional I/O Ports.
Nun stellt sich die Frage, wie schnell musst du ein LED pulsen, damit es nicht flimmert? Ich schätze mit 100Hz sieht man evtl. kein flimmern.
Somit könntest du einen 1ms Timer laufen lassen und eine Periodenlänge von 10ms für eine LED einstellen. Somit kannst du in 10 Stufen (aus, 1ms,2ms, ..., 9ms, an) eine LED dimmen.

LG
Martin

wkrug
02.07.2007, 19:54
Ein Software PWM Threat mit 12 Kanälen läuft hier in der Assemblereck für den ATMEGA8 - nur mal zur Info.

https://www.roboternetz.de/phpBB2/viewtopic.php?t=31590

VBEV
02.07.2007, 23:29
Moin,

@MartinITM:
die RGB-LED´s sind diese:
http://cgi.ebay.de/50X-New-5mm-4-Pin-RGB-Common-Cathode-LED-8-000mcd-F-R_W0QQitemZ250138185518QQihZ015QQcategoryZ129122QQ rdZ1QQcmdZViewItem
bei 6 LED habe ich 18 Farben die gesteuert werden wollen, daher dachte ich 18 PWM

@wkrug:
Danke das werde ich mir mal anschauen.

Zudem habe ich nun den I2C Chip PCA 9533 bzw. PCA9635 von Philips gefunden.
Welcher 4 PWM hat wenn ich das richtig verstanden habe.
Würde es sin machen vor jede RGB-LED ein solchen Chip zu hängen und dann über ein ATmega zum steuern zu nehmen?

mfg
Alex

the_Ghost666
03.07.2007, 09:09
Moin ,also zu deinem Problem:
Ich bin PICer und hab selber schon den PCA9532 (16 Leds) benutzt.
Zum Controller:
Eigentlich kannst du jeden µC nehmen, wenn er mindestens die nötigen Ausgänge hat.
Wenn du die LEDs wirklich unabhängig steuern willst so würde ich einen Controller mit ebensovielen Pins wie LEDs nehmen, du kannst aber die LEDs auch in einer Matrix verschalten, dann wird die Steuerung komplizierter.
Welche Controllerfamilie als Einsteiger geeignet ist, ist ja mittlerweile ne Glaubensfrage. Atmels mit einer großen deutschen Community und simplen Programmer, PICs mit großer englischsprachiger Community, kostenlosen µC über Microchip Samples und einem etwas komplizierterem Programmer.

Der PCA ist für deine Aufgabe nicht geeignet, da er nur 2 PWM Frequenzen ermöglicht, dh du kannst die LEDs nur mit 2 unterschiedlichen Helligkeiten leuchten lassen, nicht mit 6 oder so. Allerdings hat ein Kollege den PCA für 4 LEDs erfolgreich genutzt um RGB LEDs anzusteuern.Muss ihn nochmal fragen wie genau.

wkrug
03.07.2007, 19:37
Würde es sin machen vor jede RGB-LED ein solchen Chip zu hängen und dann über ein ATmega zum steuern zu nehmen?
Na ja, wenn der Chip das auch schafft, ohne zusätzliche Bausteine, würd ich sie nicht verwenden.
Allerdings fürchte ich, das hier zumindest für die PWM die Software in Assembler geproggt werden müssen.

Bei 16 Software PWM's würd ich dann zu einem ATMEGA16 tendieren.
Ein ATMEGA8 würde zwar von der Portanzahl her auch reichen, aber dann wird es mit den Ports für andere I/O Leitungen knapp.

Als minimale PWM Frequenz sollten meiner Meinung nach 60Hz reichen.
Wenn die LED's aber bewegt werden muss die Frequenz höher liegen, sonst kommt es zu Stroboskopeffekten.

the_Ghost666
03.07.2007, 21:45
Bei Software PWM sollten doch auch mehr als 250Hz kein Problem sein, die Atmels takten ja meist mit 16Mhz. Da LEDs so schnell schalten und kaum träge sind, sieht man auch bei 60Hz vielleicht noch ein Flackern. 60Hz ist so die magische Grenze für PC Spiele, damit man die ruckelfrei spielen kann.

VBEV
04.07.2007, 19:11
Also ich Fasse mal zusammen:
Eine ATMEGA16 mit einem Software PWM welcher mit mind. 60Hz eher 100Hz laufen sollte?
Noch wichtige Sachen oder Tipps für mich?

the_Ghost666
04.07.2007, 19:46
Nimm Treiber für die LEDs, am besten einen ULN2803, hat ein gutes Pinout, dh die Platine ist einfach und du kannst da hunderte von mA reinstecken. Ausserdem ist es einfach kompakter als jede LED mit einem Transistor+2 Widerstände auszustatten.
Vorwiderstände nicht vergessen.
Die Treiber sind wichtig, um die Pins des Controllers nicht zu überlasten. Die können zwar 20mA liefern, aber achte auch auf die Gesamtverlustleistung. Meist kannst du 20mA pro Pin, aber nicht mehr als insgesamt 150mA ziehen.
Wenn du es wirklich klein haben willst/musst, dann nimm besser ein Zusatzic, dass dir dann ne Menge Treiber spart (MAX7219). Wenn du da dann jede LED einzeln Dimmen willst, schickst du die eben so oft an/aus Befehle bis die Helligkeit erreicht wird. Bei dem MAX musst du probieren, da die LEDs eh schon gemultiplext sind, also immer nur 8 LEDs gleichzeitig an sind.

Robbersoft
17.08.2007, 09:52
Also wenn du alle 6 gleich Dimmen willst mit der gleichen Farbe, kannst du das relativ einfach realisieren mit nur 3 PWM´s.

Hanni
17.08.2007, 14:36
Also ich Fasse mal zusammen:
Eine ATMEGA16 mit einem Software PWM welcher mit mind. 60Hz eher 100Hz laufen sollte?
Noch wichtige Sachen oder Tipps für mich?

Die einfachste Lösung ist meiner Ansicht nach die folgende:

1. 6 ATtiny 2313, also für jede RGB - LED einen.
2. einen etwas größeren Mikrocontroller für die Steuerung.

Das ganze dann schön über die USART (und RS485) verbinden. Nen Protokoll entwickeln und das wars auch schon.

Vorteil dieser Lösung:
1. Einfach zu programmieren (zur Not in Bascom)
2. Einfach erweiterbar.

So teuer ist es dann übrigens auch nicht. Ein Tiny 2313 kostet bei den diversen Versandhändlern nicht mal 2 Euro.


Ein Software PWM Threat mit 12 Kanälen läuft hier in der Assemblereck für den ATMEGA8 - nur mal zur Info.

Naja, der Tread ist vor geraumer Zeit eingeschlafen ...
Zusammenfassend kann ich aber sagen, ohne bessere Assemblerkenntnisse wird es nix. Jedenfalls keine 16 Kanäle mit ne vernünftigen Flackerfrequenz.


Bei Software PWM sollten doch auch mehr als 250Hz kein Problem sein, die Atmels takten ja meist mit 16Mhz.

Na dann leg mal los und code das mal eben ;)
Wer sich mit der Materie etwas näher auseinandergesetzt hat wird verstehen was ich meine.


... sieht man auch bei 60Hz vielleicht noch ein Flackern. 60Hz ist so die magische Grenze für PC Spiele, damit ...

Schon mal an nem Röhrenmonitor gearbeitet, der nu Bildwiederholfrequenz von 60 Hz hat ...
Defakto sollten LEDs mit wesentlich mehr getaktet werden ... 250 Hz setz ich mal als Minimum.

So, nun seit ihr wieder dran.

Grüße,
Hanni
[/quote]