Hallo,
bringe gerade eine RGB-LED aus dem Fritzing Starter Kit zum glühen; und bin etwas ratlos. Es handelt sich um eine "common anode"-RGB-LED mit 4 Beinchen. Das längste ist die Anode.
Verbindung wie folgt mit dem Arduino Uno: Anode mit 5V verbunden, die drei anderen Beinchen mit einem 220 Ohm Widerstand mit DigitalPIN 11,10,9
Es funktioniert auch - nur verstehe ich eines nicht: Wenn ich alle drei PINs auf Helligkeit 0 stelle, erhalte ich weißes Licht. "Sollte" das so sein? Komischerweise erhalte ich auch ausschließlich starkes, rotes Licht wenn ich R und G jeweils 255 zuweise, und B 0. Wenn ich "nur" R mit 255 und die anderen mit 0 füttere, ist es etwa halb so hell.
Hier mal mein Code:
int ledR = 10; // the pin that the LED is attached to
int ledG = 11; // the pin that the LED is attached to
int ledB = 9; // the pin that the LED is attached to
// the setup routine runs once when you press reset:
void setup() {
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
analogWrite(ledR, 138);
analogWrite(ledG, 69);
analogWrite(ledB, 19);
delay(100);
}
Update Ich dachte mir, ich schließe mal drei Poti's an, um über diese die einzelnen Farben direkt am Ardu anzusteuern. Komischerweise ist die LED nun auch aus, wenn alle Potis auf ganz links gedreht sind. Auch die Farben sind sehr stark. An meinem ursprünglichen Code hat sich nichts geändert - auch die Poti's sind einfach angeklemmt (links 5V, rechts GND, mitte auf A0-A2). Kann sich das jemand erklären?
int ledR = 10; // the pin that the LED is attached to
int ledG = 11; // the pin that the LED is attached to
int ledB = 9; // the pin that the LED is attached to
// the setup routine runs once when you press reset:
void setup() {
pinMode(ledR, OUTPUT);
pinMode(ledG, OUTPUT);
pinMode(ledB, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
int potiR = analogRead(A0);
int potiG = analogRead(A1);
int potiB = analogRead(A2);
int colR = 0;
int colG = 0;
int colB = 0;
colR = map(potiR, 0, 1023, 0, 255);
colG = map(potiG, 0, 1023, 0, 255);
colB = map(potiB, 0, 1023, 0, 255);
analogWrite(ledR, colR);
analogWrite(ledG, colG);
analogWrite(ledB, colB);
delay(100);
}