Pages: [1] 2 3   Go Down
Author Topic: Anfänger Projekt - Dimmen von LEDs mit Arduino  (Read 6727 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo liebe Forenmitglieder,

ich möchte mich mit dem Arduino vertraut machen und bin totaler Anfänger  smiley-razz

Was habe ich vor?

13 LED sollen nacheinander eingeschaltet werden. Die Einschaltvorgang soll als FADE-Effekt ablaufen.

So, was brauche ich dazu?
Als Basis wollte ich das Arduino Mega 2560 verwenden, weil es wohl über 14 PWM-Ausgänge verfügt.
Zusätzlich benötige ich natürlich eine Spannungsversorgung - Dort wollte ich ein Universalnetzteil verwenden (sind Links erlaubt? Dann reiche ich es gerne nach)

Die LEDs benötigen eine Spannung von 3,2V - Max. 4,0V und 20mA Stromstärke.
Bei der Bestellung kann optional ein Vorwiderstand gewählt werden (6V, 9V, 12V, 14V, 16V, 24V).
Ich hatte jetzt vor LED ohne einen Vorwiderstand zu bestellen und dann einen entsprechenden Widerstand auf dem Streckbrett zu verwenden.

Genau - ein Streckbrett zum Probieren - Was nehme ich da für eins? Hat jemand einen Tipp? (Reichelt z.B.?).
Der Widerstand müsste nach meiner Berechnung 75 Ohm stark sein (Wo bestelle ich solchen Kleinkram? Auch Reichelt?)

Wenn die "Hardware" soweit stimmt, dann würde ich mich mit dem Code beschäftigen
Ich hoffe soweit wenigstens etwas richtig zu liegen und würde mich über Antworten freuen.

Danke für eure Zeit und die Mühen,

Viele Grüße,
Alexander

Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Alexander,

ja Links sind erlaubt. Die Auswahl scheint auch erstmal schlüssig zu sein und Reichelt als Quelle ist auch nicht das schlechteste. Du solltest aber bei 13 LEDs bedenken, das auch der Arduino Mega nur einen begrenzten Gesamtstrom hat, der fliessen darf. Bei 13 LEDs * 20 mA (bei max. HElligkeit) hast Du schon 260 mA und das könnte bereits knapp werden. Die einzelnen Ausgänge des Arduino sind in Ports zu je 8 Pins zusammengefasst, diese Ports wiederum vertragen auch nur einen begrenzten Strom. Hier würden sich ggf. Low current LEDs anbieten, die mit maximal 5mA laufen und die dann kein Problem mehr darstellen sollten. Alternativ kannst Du auch die "normalen" LEDs mit deutlich weniger Strom betreiben, die sind dann halt nur nicht ganz so hell. Wenn Deine Anwendung nie alle LEDs auf einmal mit voller Helligkeit betreibt, ist das wohl auch nicht so tragisch, aber ich persönlich wäre da lieber vorsichtig.
Mario.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi Mario,

danke für deine schnelle Antwort.

Ich kann leider nichts zum zulässigen Gesamtstrom des Mega 2560 finden - Woran erkennt man, dass die Ausgänge in 8 Pins zusammengefasst sind?
Nach der Beschreibung (http://arduino.cc/it/Main/ArduinoBoardMega2560) waren es für mich 15 Digital I/O Pins, die PWm unterstützen.
Ich hatte mich darauf verlassen, dass diese Eingänge jeweils bsi 40mA vertragen smiley

Viele Grüße und Besten Dank,
Alexander
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Auf die Schnelle habe ich folgendes gefunden: http://arduino.cc/playground/Main/ArduinoPinCurrentLimitations. Genaue Details finden sich vermutlich nur im Datenblatt des Atmel Controllers.
Ein einzelner Ausgang kann bis zu 40mA treiben, das ist richtig. Aber Du kannst nicht auf allen gleichzeitig 40mA abziehen, da die Gesamtlast aller Ausgänge ja komplett durch den Controller fliesst.
Wie gesagt, bei low current LEDs sollte es keine Probleme geben, da Du bei 5mA bei allen 13 LEDs gerade mal auf 65 mA kommst, das schafft der Mega locker.
Mario.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gibt es -wenn ich auf die LEDs festgelegt bin- eine andere Variante eines Arduino, welcher die Ströme aushalten würde?
Es sollte möglich sein, alle LEDs gleichzeitig auf voller Leistung laufen zu lassen.

EDIT: Könnte nicht ein LED-Treiber mit PWM jeweils Abhilfe schaffen? (Link: http://www.ebay.de/itm/High-Power-1W-LED-Driver-333mA-output-/110766255986?pt=LH_DefaultDomain_0&hash=item19ca2eef72)
« Last Edit: April 30, 2012, 08:24:25 am by alex_e » Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich glaube dieser PWM Trieber wäre übertrieben. Bei 5 Dollar pro Stück bist Du 65 Dollar los. Es würde sicher reichen, wenn Du die LEDs über einfache Transistoren schaltest. Das PWM-Signal generiert ja schon Dein Arduino.
http://www.sqlskills.com/blogs/paulselec/post/Arduino-figuring-out-transistors-and-associated-resistors.aspx kannst Du als Vorlage nehmen.
Die Transistoren gibt's für ca. 5Cent pro Stück bei rechelt und Co. und die Widerstände kosten auch nicht die Welt. So bekommst Du für 5 Euro vermutlich alle Teile für Dein Projekt, inkl. der LEDs :-)
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Mario
... Die einzelnen Ausgänge des Arduino sind in Ports zu je 8 Pins zusammengefasst, diese Ports wiederum vertragen auch nur einen begrenzten Strom. ...
Von dieser begrenzung innerhalb eines Ports ist mir nichts bekannt. Die Begrenzungen sind 40mA pro  Pin die durch die Ausgangstransistoren des ATmega fließen und 200 mA Gesamtstrom der über die Masse/Spannungsversorgungspinns fließt. Da git es keine Begrenzung innerhalb des Ports.

Quote from: mkl0815
...Wenn Deine Anwendung nie alle LEDs auf einmal mit voller Helligkeit betreibt, ist das wohl auch nicht so tragisch, aber ich persönlich wäre da lieber vorsichtig. ...
Daß man den Gesamtstrom begrenzt, wenn man bei PWM nicht 100% durchsteuert ist ein Trugschluß. Da PWM nur die Ein- zu Aus-Zeit-Verhältnis ändert, heißt das nicht, daß nicht alle Ausgänge gleichzeitig HIGH sein können und somit die LEDS den vollen Gesamtstrom ziehen.

@alex_e
Als Alternative zu einem Arduino MEGA würde ich Dir einen Arduino UNO mit einem (falls Du mehr als 16 LEDS betreiben willst oder mehreren) TLC5940 nennen.
http://www.arduino.cc/playground/Learning/TLC5940 (leider sind da einige Bilder abhanden gekommen.
http://code.google.com/p/tlc5940arduino/ (Hier gibt es die Bilder noch)
oder http://www.planetarduino.org/?p=3327
ein Breakout: http://www.watterott.com/de/TLC5940-Breakout?x96114=7280758bc1bbeb366aab401e4a0c7bd7

Grüße Uwe


 

Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Uwe:
Von dieser begrenzung innerhalb eines Ports ist mir nichts bekannt. Die Begrenzungen sind 40mA pro  Pin die durch die Ausgangstransistoren des ATmega fließen und 200 mA Gesamtstrom der über die Masse/Spannungsversorgungspinns fließt. Da git es keine Begrenzung innerhalb des Ports.
Ich bin auch nur über den Playground darüber gestolpert: http://arduino.cc/playground/Main/ArduinoPinCurrentLimitations Habe aber noch nicht im Datenblatt des ATMega geschaut ob das korrekt ist.

Daß man den Gesamtstrom begrenzt, wenn man bei PWM nicht 100% durchsteuert ist ein Trugschluß. Da PWM nur die Ein- zu Aus-Zeit-Verhältnis ändert, heißt das nicht, daß nicht alle Ausgänge gleichzeitig HIGH sein können und somit die LEDS den vollen Gesamtstrom ziehen.
Damit hast Du natürlich recht, zumal es sehr wahrscheinlich ist, das sogar alle LEDs gleichzeitig angesteuert werden, da der PWM-Takt ja für alle gleich ist.
Mario.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich bin auch nur über den Playground darüber gestolpert: http://arduino.cc/playground/Main/ArduinoPinCurrentLimitations Habe aber noch nicht im Datenblatt des ATMega geschaut ob das korrekt ist.

Du hast Recht, das sind die Werte aus den Fußnoten der Tabelle 28.2 DC Characteristics auf Seite 313 von http://www.atmel.com/dyn/resources/prod_documents/doc8161.pdf stammen.
Diese Grenzwerte machen den Arduino nicht kaputt, sondern bei Überschreiten der Werte werden die Werte der Tabelle für "VOL Output Low Voltage(3) except RESET pin" bzw "VOH Output High Voltage(4) except Reset pin" nicht garantiert. Je nach Beschaltung der Ausgangspingruppen kann es zu Problemen kommen, wenn die Ausgangspannung kleiner/größer als die als HIGH bzw LOW erkannte Spannung wird. Da da aber Reserven sind VOH min = 4,2V VIH min = 3V bei 5V Versorgungspannung bzw VOLmin = 0,9V und VIL = 1,5V können diese Werte bei zB Beschaltung mit LED oder Transistoren auch unterschritten werden, da diese Bauteile ziemlich tollerant auf die Signalspannung sind und die Werte der Widerstände normalerweise großzügig bemessen sind. Von mir aus ist aber falsch zu sagen daß die Masse-Pins des Atmega328 im ganzen 400mA Vertragen.

Quote from: mkl0815
Daß man den Gesamtstrom begrenzt, wenn man bei PWM nicht 100% durchsteuert ist ein Trugschluß. Da PWM nur die Ein- zu Aus-Zeit-Verhältnis ändert, heißt das nicht, daß nicht alle Ausgänge gleichzeitig HIGH sein können und somit die LEDS den vollen Gesamtstrom ziehen.
Damit hast Du natürlich recht, zumal es sehr wahrscheinlich ist, das sogar alle LEDs gleichzeitig angesteuert werden, da der PWM-Takt ja für alle gleich ist.
Mario.
Ich bin mir zwar nicht sicher, ob die PWM Signale phasengleich sind, aber im Zweifelsfall und bei über 50% ist es wahrscheinlich.

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote from: uwefed

@alex_e
Als Alternative zu einem Arduino MEGA würde ich Dir einen Arduino UNO mit einem (falls Du mehr als 16 LEDS betreiben willst oder mehreren) TLC5940 nennen.
http://www.arduino.cc/playground/Learning/TLC5940 (leider sind da einige Bilder abhanden gekommen.
http://code.google.com/p/tlc5940arduino/ (Hier gibt es die Bilder noch)
oder http://www.planetarduino.org/?p=3327
ein Breakout: http://www.watterott.com/de/TLC5940-Breakout?x96114=7280758bc1bbeb366aab401e4a0c7bd7

Grüße Uwe


 



Nabend und Vielen Dank für eure Antworten smiley

@Uwe:
Was wäre denn der Vorteil der Breakout-Variante bzw. wann würde man diese Version nehmen?

Könnt ihr mir vielleicht ein Set zum Stecken (Board, Kabel, etc.) empfehlen? Für den Dauerbetrieb ist so etwas sicher nicht geeignet und ich müsste wenn es denn mal verbaut wird Löten (lernen) oder?

Ihr habt mir schon sehr viel weiter geholfen.

Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das Breakout TLC5940 zusammen mit einem Arduino UNO kostet weniger als ein ATmega. Der TLC hat 4096 PWM-Stufen, der ATmega nur 256. Der TLC begrenzt den Strom der LED aktiv, es braucht keine Vorwiderstände an den LED und jedes LED kann individuel auf seine Helligkeit tariert werden (unabhängig vom PWM Wert. Der LED-Strom wird mittels eines Widertands am TLC bestimmt.

Was meinst Du mit Set zum stecken?  Sowas: http://www.watterott.com/de/Breadboard-incl-Kabelset ?
Für Dauerbetrieb ist es nicht vorgesehen aber für schnelles Schaltung aufbauen und verändern.

Grüße Uwe
« Last Edit: April 30, 2012, 02:29:26 pm by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Genau soooo ein Set meinte ich  smiley-lol

Ich wollte gerne den Vorteil von dem Breakout gegenüber dem normalen TLC (Bild: http://tronixstuff.files.wordpress.com/2010/07/tlc5940sss.jpg) verstehen smiley

Ich als Laie würde sagen: Es ist schon ein Board und ich erspare mir das verlöten auf einer Platine?

Viele Grüße,
Alex
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ist kein Unterschied. Zum experimentieren ist das Breakout einfacher; wenn Du eine Platine baust dann geht ein DIP wie auf dem Link besser und ist billiger. Im Endeffekt mit den versndspesen ist abzuwäägen ob das teuerer Breakout billiger ist weil Du auch noch andere Sachen bestellst und den TLC nicht bei einer anderen Quelle mit extra Versandspesen kaufen mußt.
Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

ich wollte meinen freien Tag nutzen um die Sachen zu bestellen.

Welche Widerstände würde ich brauchen, wenn ich das Arduino Uno mit dem Breakout des TLC und den LEDs mit den Daten - Spannung: 3,2V - Max. 4,0V und 20mA Stromstärke - nutzen möchte?

Liebe Grüße und nochmals  vielen Dank smiley Freue mich schon sehr auf mein Projekt smiley
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21494
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Laut Beschreibung TLC um ca 20 mA zu haben 1x 2,2kOhm für den LED-Strom. Dieser ist aber schon auf dem Breakout enthalten:
Quote
Finally, the 2.2k resistor on the Iref pin sets the output current to 17.8mA but a parallel through-hole connection is provided for an additional resistor to increase the current if necessary.

Laut http://tlc5940arduino.googlecode.com/svn/wiki/images/breadboard-arduino-tlc5940.png
sollte ein 10kOhm Widerstand von Blank auf +5V geschaltet sein damit die LED nicht aufleuchten solande der Arduino resetiert bzw beim Einschalten im Bootloader steckt. Der Widerstandswert ist unkritish.

Grüße Uwe
« Last Edit: May 01, 2012, 07:58:50 am by uwefed » Logged

Pages: [1] 2 3   Go Up
Jump to: