Zunächst einmal von mir ein herzliches Hallo in die deutschsprachige Runde hier. Ich hab schon einiges gelesen und ich bin begeistert von den schönen Sachen, die ihr mit dieser Plattform realisiert.
Ich hoffe ich werde das auch mal erreichen.
Momentan scheitere ich schon weitaus früher, nämlich beim "rumspielen" mit der RGB-LED die meinem Arduino-Starterset (von bausteln.de) beilag.
Die LED hat 6 Beine, d.h. ich kann von separater Beschaltung jeder einzelnen Diode ausgehen. So weit, so gut.
Ich habe die also in meinem Steckbrett platziert und über analogWrite() über einen PWM-Pin des Arduino versucht erstmal eine Diode zum Leuchten zu bringen. Der Rest wäre dann ja einfach gewesen...
Leider will das Ganze aber nicht, die LED bleibt dunkel, egal welche Beinchenpaare ich nutze.
Ohne deinen verwendeten Code kann das erst mal niemand sagen, ob du was falsch machst. Ansonsten musst du selbstverständlich auf die Polung der LED achten und solltest einen Vorwiderstand verwenden.
int pinR = 3;
int pinG = 5;
int pinB = 9;
void setup() {
pinMode(pinR, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinB, OUTPUT);
}
void loop() {
analogWrite(pinR, 200);
}
Vorwiderstande würde ich ja gerne nutzen, aber da ich keinerlei Informationen über die LED habe, hab ich den weggelassen und habe darauf vertraut, dass die 30 mA des Arduino nichts töten werden.
Polung hab ich natürlich schon getauscht gehabt, keine Änderung der Lage...
Nachtrag: Muss natürlich Pin 9 sein, 7 ist ja kein PWM-Pin. Hab das aber mit Pin 3 getestet, daran kann es nicht liegen...
Du müsstest mit einem Multimeter am Pin 3, gemessen gegen GND eine der Software umgerechnete Spannung erhalten.
Mess das erstmal nach
Vorwiderstand... 1K, 2,2k ... besser als garkeinen
Nimm das "Fadingbeispiel" und den entsprechenden Pin. Das muss funktionieren ! (Ich sage das mit dem Pin deswegen, weil ich mir nicht sicher bin ob alle "Fading" - Beispiele in verschiedenen Versionen den Pin 9 verwenden)
Oder: (Abgespeckter, umgeänderter Beispielcode)
int ledPin3; // LED in diesem Fall Pin 3
void setup()
{
}
void loop() {
for(int fadeValue = 0 ; fadeValue <= 255; fadeValue +=5) {
analogWrite(ledPin, fadeValue);
delay(30);
}
for(int fadeValue = 255 ; fadeValue >= 0; fadeValue -=5) {
analogWrite(ledPin, fadeValue);
delay(30);
}
}
Wieso glauben alle LED ohne Vorwiderstand betreiben zu können (entschuldigt den Verzweiflungsschrei).
Hallo another_one
RGB LED mit 6 Beinen haben alle Anoden und Katoden der 3 LEDs herausgeführt.
Teste mal mit einem Multimeter mit Diodenmessung ob ein LED aufläuchtet.
Altenativ könntest Du 5 Beinchen zusammenschalten und auf Masse geben und das letzte über einen Widerstand (etwas zwischen 220 Ohm und 2200 Ohm) auf +5v. Wenn nichts leuchtet die Polung der Spannung unkehren.
Wenn Du die Beinchen umtauscht, bekommst Du heraus, welche Anode un Katode bzw welche für welche Farbe sind.
Um dann sicher zu gehen schalte mal die 3 Augänge als digitale Ausgänge und auf HIGH; da müßte Das LED weiß leuchten. Dann kannst Du dich an PWM wagen.
Ich weiß nicht, ob man, wenn man ein pin als PWM verwenden will, es vorher als Digitalen Ausgang (pinMode(pinR, OUTPUT); ) deklarieren darf. Im Beispiel zu analogWrite() machen sie es auch so, also müßte es funktionieren.
Wieso glauben alle LED ohne Vorwiderstand betreiben zu können (entschuldigt den Verzweiflungsschrei).
Du bist entschuldigt ! Bitte nicht verzweifeln
Alle ? - Sagen wir mal so: "Neuankömmlinge" ... Muss man ein wenig auf die Sprünge hellfen
LED soll haben (egal welche) immer einen Vorwiderstand. sth77 und ich hatten es erwähnt. Und der Rest den du (uwefed) dazugeschrieben hast dürfte sicher ausreichen um die LED zum Leuchten zu bringen.
Ja, Du hast recht, mit alle waren nicht gar alle gemeint. Aber es ist ein typischer Anfagsfehler.
Im italienischen Teil des Forums hat heute auch einer eine LED zum rauchen gebracht indem er sie direkt an 5V anschloß und fragte dann "Wie habe ich es angestellt die LED zu verbrennen?".
Manchmal ist es einfach zuviel. Nachdem eine die Haare zu Berge stehen ... was kommt dann?
Manchmal ist das Leben als Helfenwollenden richtig schwer.
Entschuldigt bitte das Anfängerverhalten im elektronischen Bereich. Das wird im Programmierteil nicht so häufig passieren, da liegt eher mein Schwerpunkt.
Ich bin nochmal in mich und den Aufbau gegangen und habe dann doch tatsächlich mal auf der Seite des Lieferanten nachgeschaut: http://bausteln.de/anleitungen/arduino/einsteigerset/#rgb-led
So ist der Spaß also beschaltet. Nix mit jeweils 3 Anoden und Kathoden.
Entsprechend beschaltet und mit 150 Ohm Vorwiderständen ausgestattet (166 2/3 Ohm waren aus), wechselt sich hier jetzt fröhlich die Farbe.
Allerdings ist das weiß doch etwas farbstichig, mal sehen ob sich da was machen lässt, wenn ich die Kanäle nicht voll raushaue...
Den Pin-Modus zu setzen macht übrigens keinen Unterschied, wie ich gerade getestet habe. In der Referenz steht es auch nochmal drin:
You do not need to call pinMode() to set the pin as an output before calling analogWrite().
The analogWrite function has nothing whatsoever to do with the analog pins or the analogRead function.
Also ist es egal, weil analogWrite() das (die Definition) übergeht. Gut zu wissen.
Besten Dank an alle die geholfen habe, ich gelobe Besserung (und jetzt immer einen 150 Ohm Widerstand vor die LEDs zu setzen ;-)).
Vorwiderstande würde ich ja gerne nutzen, aber da ich keinerlei Informationen über die LED habe, hab ich den weggelassen und habe darauf vertraut, dass die 30 mA des Arduino nichts töten werden.
Bei der Entwicklung von elektronischen Schaltungen darfst du solche Annahmen nie treffen. Immer vom schlechtesten Fall ausgehen und entsprechend Vorkehrungen für Strom-oder Spannungsbegrenzung treffen.
Auch bei der Anschlussbelegung darf man NIE von Annahmen ausgehen. Oft ist die Anschlussbelegung anders als man erwarten würde
Immer vorher die technischen Daten aus dem Datenblatt überprüfen. Andernfalls musst du immer mit Bauteilverlust rechnen.
Und wenn Murphy zuschlägt, schlägt er zu.
Wenn du also bei der einzigen Leuchtdiode die du hast, die Anschlussbelegung nicht prüfst, kannst du damit rechnen das diese durch Fehlmanipulation zerstört wird
Nur mal als Tipp: Ich habe mir an die Anode (Pluspol) einer 5mm-Standard-LED (rot) einen Widerstand (1 kOhm) gelötet. Dazu das beinchen der LED bis auf 5 mm abgekniffen, ein Widerstandsbeinchen ebenfalls so gekürzt. Diese beiden Enden überlappend miteinander verlötet und den zweiten Anschlussdraht des Widerstandes auf die Länge der Kathode (Minuspol) der LED eingekürzt. So habe ich immer ein fertiges Element fürs Steckbrett.
Ganz clevere machen das gleiche mit einer Duo-LED mit zwei Pins, dann ist man sogar verpolsicher: entweder leuchtet es grün oder rot.
Das mit den Widerständen direkt an den LEDs ist eine schöne Sache, werd ich bei Zeiten mal machen, denke ich.
Und ich bin recht froh, dass mich Murphy hier bisher verschont hat. Sonst schlägt der gerne gnadenlos zu bei mir, aber irgendwie scheint er abgelenkt zu sein, oder er hat noch nicht bemerkt, dass ich dieses Arduino-Board habe...
Die meisten Anfänger werden wohl glauben das man für eine LED keinen Vorwiderstand braucht weil man für Glimmlampen oder Glühbirnen auch keinen benutzt !
Einspruch Euer Ehren
Für eine Glimmlampe braucht man sehr wohl einen Vorwiderstand, es sei denn der Strom ist bereits durch den Innenwiderstand der Spannungsquelle begrenzt.
Ich hatte es ja auch nur wegen der Korrektheit gesagt. Nicht daß noch jemand glaubt er könne eine "nackte" Glimmlampe direkt an eine Steckdose hängen. Das gibt einen schönen Knall
Meinst du Glühlampen oder LED Lichterketten ? LED-Lichterketten haben pro LED auch einen Vorwiderstand. Der maximale Strom pro LED wird durch die Kenndaten der LED vorgegeben. Kann man auch nachmessen. Vielleicht 20 - 40 mA. pro LED.
Man kann sogar eine LED (mit entsprechendem Vorwiderstand) direkt an einer Steckdose verwenden. (Achtung Aufpassen!)
Lauter gleiche Glühlampen, wenn in Reihe... 12V/Lampe ... mal 20 Stück gibt 240 V. Der fließende Strom ist abhängig von der Leistungsaufnahme der Glühlampen.