PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Microcontroller gesucht



niccommander
19.10.2009, 11:12
Hallo,

ich suche einen Mikrocontroller, der Programmierbar ist (sind glaub ich eigentlich alle neuen) und mindestens 24 PWM ausgänge hat.

Hintergrund ist der, dass ich eine RGB-Led leiste bauen will, mit 16 RGB leds (1 Pin für jede Farbe).
Aus kostengründen sollen immer 2 Leds die gleiche farbe haben (über PWM dimmbar).
Jede (gesammte) LED soll aber einzeln an und ausgeschalten werden können (Für Lichteffekte).
Modular sollte es zudem auchnoch sein, also 1 Modul = 16 LEDs.

LED:


____
R+ -| |- R-
G+ -| |- G-
B+ -|____|- B-

wkrug
19.10.2009, 12:45
Ich kenne die ATMEL AVR Serie ein wenig.
Das höchste der Gefühle sind dort 8 Hardware PWM's.

Allerdings kann man solche PWM Steuerungen auch Softwaremässig realisieren.

Aber auch da wird es bei 24 Ausgängen schon eng.

Die Alternative wären noch zusätzliche Bausteine, die nur das PWM Signal erzeugen und vom Microcontroller angesteuert werden.
Einen konkreten Typ kann ich Dir da aus dem Stehgreif leider nicht nennen.

niccommander
19.10.2009, 14:23
oder gibt es vielleicht andere wege Stufenlos zu dimmen?

nietzsche
19.10.2009, 16:41
vllt fragst du mal google nach dem TLC5940

nietzsche
19.10.2009, 16:41
Der TLC5940 könnte dich interessieren....

niccommander
19.10.2009, 17:21
jo, der wäre Perfekt, wenn ich blos einen händler finden würde, der den verkauft

nietzsche
19.10.2009, 17:25
Hm, wenn du ein Gewerbe hast, oder Student bist bei Farnell http://de.farnell.com/texas-instruments/tlc5940ntg4/16ch-led-driver-dip28-5940/dp/1226306

Bumbum
19.10.2009, 18:25
Hallo,

ich würde das softwaremäßig realisieren. Ich sehe da keine Probleme. Die AVR's können ja alle mit min. 4MHz getaktet werden. Wo soll da das Problem sein? Einfach einen Timer in Schleife laufen lassen und dann alle 24 PWM-Werte checken, ob die über oder unter dem Timerwert liegen und dann entpsrechend die Ausgänge an oder ausschalten. Für Eine "Wiederholrate" von 50Hz hat man bei 4MHz ja fast 80000 Befehle Zeit, dank Risc-Architektur. Das ist wohl mehr als genügend. Und wenn man noch einen kleinen Kondensator an die Ausgänge zur Glättung schaltet reichen vermutlich auch 10Hz Refreshrate.

Viele Grüße
Andreas

wkrug
19.10.2009, 18:56
Wenn Du kein Student bist und auch kein Geschäft hast, kannst Du das Farnell Sortiment auch bei HBR Elektronik beziehen - Mit Aufschlag versteht sich.
Link:
http://www.hbe-shop.de/katalog/

19.10.2009, 19:08
Software PWM sollte für 24 LEDs noch gehen. Wenn man es gut macht noch bis etwa 12-14 Bits. Ganz Stufenlos ist das noch nicht, aber schon nicht schlecht. Der TLC5940 hat ja auch nur 12 Bits.
Wegen der Treiberleistung könnte es sinnvlool sein sogar weniger LEDs (z.B. nur 8) pro Controller zu nehmen, und dafür mehr Controller.

Ein alternative Quelle für den TLC5940 wäre TME.eu.

19.10.2009, 19:08
Software PWM sollte für 24 LEDs noch gehen. Wenn man es gut macht noch bis etwa 12-14 Bits. Ganz Stufenlos ist das noch nicht, aber schon nicht schlecht. Der TLC5940 hat ja auch nur 12 Bits.
Wegen der Treiberleistung könnte es sinnvlool sein sogar weniger LEDs (z.B. nur 8) pro Controller zu nehmen, und dafür mehr Controller.

Ein alternative Quelle für den TLC5940 wäre TME.eu.

Bumbum
19.10.2009, 19:22
12 Bits für die Helligkeit einer Led? Entweder bin ich mit meinen 29 Jahren bereits halbblind, oder für mich ist eine Led mit 10mA fast genauso hell wie mit 12mA.

Ich hätte da eher in Richtung 6 bis max. 8 Bit gedacht.

wkrug
19.10.2009, 19:56
12 Bits für die Helligkeit einer Led?
Ich hab erst kürzlich eine Ansteuerung für eine 3W High Power LED mit PWM gemacht.
Bei 8Bit Auflösung sieht man einen Helligkeitssprung bei den untersten Helligkeitsstufen deutlich.
Ab einem PWM Wert von ca.10 ( von 255 ) sind dann diese Stufungen nicht mehr eindeutig warnehmbar.

Gerade wenn man sich also oft in den ganz niedrigen Dimmstufen "aufhält" und die gut Auflösen sollen, wäre da mehr Auflösung nicht schlecht.
Bei Software PWM Lösungen geht das aber eindeutig auf Kosten der Rechenzeit.

Um mir Probleme zu ersparen würd ich bei so vielen PWM Kanälen dann trotzdem lieber auf eine Hardwarelösung schielen.

Alternativ kann man ja mehrere Controller parallel mit Ihren internen Hardware ( oder doch wieder Software- ) PWM's arbeiten lassen, die Adressiert werden und an einem Bus hängen ( SPI, TWI oder sonstwas. ).
Mehrere dieser Microcontroller sind manchmal schon günstiger als ein Spezialchip.

Bumbum
19.10.2009, 20:47
hm das es so krass ist hätte ich nicht gedacht. Aber in den niedrigen Helligkeitsstufen könntest du eventuell recht haben.

Aber ich würde sagen es kommt hier auf die Anwendung an. Die Frage wäre dann nämlich ist soviel überhaupt nötig, bzw. was hat niccommander überhaupt vor. Vielleicht stört ein klitzekleiner Sprung ja gar nicht.

Und sowas ist ja schnell ausprobiert. Einen Controller braucht er eh. Da dann schnell die Led dran und die Software sollte auch in kurzer Zeit fertig sein.

niccommander
20.10.2009, 11:28
also danke für die vielen Posts erstmal.

nach einiger Überlegung habe ich mich von der bestückung her etwas umorientiert:

Also, ich versuche einen Modularen RGB-led Streifen zu machen.
Das heißt ein Modul ist 50cm lang und beinhaltet 15 RGB-LEDs.
Jeweils 3 LEDs sollen die gleiche farbe haben (um PWMs zu sparen) also brauche ich 15 PWMs. Jedoch soll jede LED (alle Farben) einzeln ein und ausschaltbar sein für lichteffekte wie lauflicht und so.


Alternativ wäre es perfekt, wenn man bei jeder LED die Farbe einzeln kontrollieren könnte dafür würde man dann aber 48 PWMs brauchen

Ach ja noch was, jedes Modul soll bei ersten Led die gleiche farbe haben...

Und wie kann man das dann mit dem lauflicht realisieren und den verschiedenen Lichteffekten (Schieberegister?)?
Und dann muss ich ja auchnoch Multiplexen, da ich sonst zu viele datenleitungen habe...

ach, ich glaub das wird zu schwer... :(



noch ne Alternative wäre gleich die ganzen 5Meter ohne Module zu realisieren, da hätte ich aber dann 150 Leitungen zu den Led-Streifen (12V und 20mA pro Farbe) und jeweils 1x Masse, was dann vorraussichtlich 200 Leitungen gibt, wenn man die nicht zusammenmachen (Masse) kann...
Hier mal der Streifen: klick mich (http://www.led-emotion.de/de/Standard/LED-flex-Band-10cm-RGB.html)

und all zu viel Platz gibts da auch nich...

HELP ME ;)

ich hoffe, dass der text nicht allzu verwirrend ist

nietzsche
20.10.2009, 12:27
Moin,


Vllt. denkst du mal in folgende Richtung: Jeder der Streifen hat 15 LED's... Diese sollten gesteuert werden, wie auch immer... (z.B. durch Software PWM, durchaus machbar...)

Dann willst du mehrere dieser Module verbinden, und dann alles zusammen steuern können, richtig?
Ich weiß ja nichts über deine Vorkentnisse, aber hier heißt das Stichwort "Bussystem"... Jedes deiner Module (welches einen Streifen steuert) muss an einen gemeinsamen Bus, und dann kann ein Master-Controller jeder einzelnen LED jeden möglichen Befehl geben...

Verstanden?

niccommander
20.10.2009, 14:08
eigentlich sind es ja 15*3 Leds (Rot,Grün Gelb)

Bussystem machen wir denk ich bald in der Schule

Also ein Bussystem is sowas änliches wie ein MUX, oder?

ich sag z.b. Datenleitung
D0=1
D1=0
D2=0
D3=1
D4=1
D5=1

und dann Adressleitung

A0=1
A1=0
A3=0

und bei der adresse is z.B. die LED 5 Drann, richtig?

wkrug
20.10.2009, 17:09
@niccommander
Da Du in deiner ursprünglichen Idee ohnehin Cluster mit 16 LED's machen wolltest, wäre es doch sinnvoll für so einen Cluster dann auch einen Microcontroller vorzusehen.
Um mit den Ports nicht allzu große Probleme zu kriegem, wär ein ATMEGA 16, meiner Meinung nach eine gute Wahl.
Mit nem ATMEGA 8 könnte es aber auch schon funktionieren.

Die einzelnen Cluster werden dann über ein Bussystem zusammen geschaltet.

Mein Vorschlag wäre hier das DMX512 Protokoll.

Man könnte dann so den einzelnen Clustern individuelle Adressen geben und die Kette mit nur einem RS485 Treiberbaustein versorgen.

Dadurch würde dann die Sache modular und Erweiterbar.

Die PWM Steuerung müsste aber hier dann auf jeden Fall in Software passieren.

Der Nachteil ist dabei natürlich, das Du einen geigneten DMX Transmitter brauchst. Z.B. den hier:
http://www.digital-enlightenment.de/

niccommander
21.10.2009, 19:02
danke, ich warde dann vorerst mal meinen IT-Lehrer zu DMX512 befragen

21.10.2009, 19:34
wenn du es mit nem atmega16 (32) mit dem befehl
"waitms" machts funktionierts
ich hab so was mal gemacht bin aber dann auch auf das oben erwähnte
Ic umgestiegen

nietzsche
21.10.2009, 21:40
was bitte soll denn dieser Beitrag??

1.) Das es per Software PWM geht, wurde hier schon gesagt...
2.) Du hast doch gar keine Ahnung, welche Programmiersprache der TE benutzen will, also brauchst du auch keine Befehle angeben
3.) Wenn, dann benutzt man für sowas den Timer, und schickt nicht den Contoller schlafen... Zumal das sowieso ausscheidet, wenn man noch Ordentlich Buskommunikation betreiben will

wkrug
21.10.2009, 21:50
Das man den Controller bei der PWM Erzeugung nicht blockieren sollte hat nietzsche schon geschrieben.
Die eigentliche PWM Routine sollte möglichst schnell abgearbeitet werden.

Eine Hochsprache für das Hauptprogramm mit Inline Assembler für die PWM Erzeugung ( Im Interrupt ?! ) dürften hier genau der richtige Mix sein.

Zu DMX 512:
Guck mal hier:
http://www.soundlight.de/ unter der Rubrik Technik.
Da ist das Protokoll ziemlich gut dokumentiert.
Der USART eines ATMEGA kann das DMX Signal 250kBit/s 8,N,2, mit 8MHz oder noch schnellerem Quarz verarbeiten.
Das Reset ( 88µs ) wird dabei als "Frame Error" erkannt und als Start einer neuen Sequenz ausgewertet.