ich habe ein Problem mit dem 4. Projekt aus dem Starter Kit (15 Projekte, Arduino Uno).
Ich habe den Schaltkreis gebaut und das Sketch programmiert. Die farbmischende LED leuchtet auch schön pink, aber es ändert sich nichts, wenn ich die Photowiderstände mit den mitgelieferten Farbfolien abdecke oder die Widerstände mit einer Taschenlampe beleuchte. Das Licht bleibt pink. Im Monitor werden zwar Veränderungen wahrgenommen, aber sie haben keine Auswirkungen auf das Licht.
Was mache ich falsch? Oder wie sollte sich die LED überhaupt verändern, wenn ich sie mit rotem Licht anstrahle oder alle / einen Photowiderstände abdecke?
Anbei findet ihr den Code und ein Bild vom Schaltkreis (ich hoffe, man kann es erkennen):
const int greenLEDPin = 9;
const int redLEDPin = 11;
const int blueLEDPin = 10;
const int redSensorPin = A0;
const int greenSensorPin = A1;
const int blueSensorPin = A2;
int redValue = 0;
int greenValue = 0;
int blueValue = 0;
int redSensorValue = 0;
int greenSensorValue = 0;
int blueSensorValue = 0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(greenLEDPin,OUTPUT);
pinMode(redLEDPin,OUTPUT);
pinMode(blueLEDPin,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
redSensorValue = analogRead(redSensorPin);
delay(5);
greenSensorValue = analogRead(greenSensorPin);
delay(5);
blueSensorValue = analogRead(blueSensorPin);
delay(5);
Serial.print("Raw Sensor Values \t Red: ");
Serial.print(redSensorValue);
Serial.print("\t Green: ");
Serial.print(greenSensorValue);
Serial.print("\t Blue: ");
Serial.println(blueSensorValue);
redValue = redSensorValue/4;
greenValue = greenSensorValue/4;
blueValue = blueSensorValue/4;
Serial.print("Mapped Sensor Values \t Red: ");
Serial.print(redValue);
Serial.print("\t Green: ");
Serial.print(greenValue);
Serial.print ("\t Blue: ");
Serial.print(blueValue);
analogWrite(redLEDPin, redValue);
analogWrite(greenLEDPin, greenValue);
analogWrite(blueLEDPin, blueValue);
}
Wenn Du alle Werte gleichermaßen änderst, wird sich nur die Helligkeit, nicht die Farbe ändern.
Text-Ausgaben kann man übrigens prima als Text hier einfügen
Die LDR sind nicht sonderlich farbabhängig, wenn Du alle LDR mit der gleichen Folie abdeckst, ändert sich ebenfalls nur die Farbe.
okay, im Dunkeln funktioniert es etwas besser. Da kommt das Dimmen besser durch. Aber ein strahlendes Rot oder Blau habe ich noch nicht hingekriegt. Liegt das an der farbmischenden RGB-LED, dass da immer viel "weiß" mit drin ist? Ich bekomme eher hellblau und hellrot hin. Hellgrün gar nicht, aber das kann auch an meinen Augen liegen
Wo bist Du her, daß Du schon 'gerutscht' bist?
Da die einzelnen LDR jeweils die Menge der entsprechenden Farbe vorgeben, hast Du auch immer alle Farben, zumindest ein Wenig davon, mit in der Ausgabe.
Du könntest versuchen, das Programm so umzuschreiben, daß die Helligkeit aller drei LDR erfasst wird, und Der, Der sich (weit) unterhalb der beiden Anderen befindet, bestimmt, welche Farbe Du 'runter zählst'.
Wenn Du den blauen LDR zuhältst, wird Dessen Analog-Wert um Einiges kleiner sein, als Die von Rot und Grün.
Nun kannst Du diese Information dazu nutzen, 'Blau' runter zu zählen - wenn die Farbe (als Byte) unter Null kommt, fängt Sie wieder bei 255 an.
Das mit allen drei LDRs, und Du kannst die Ausgangs-Farbe durch zuhalten EINES LDR beeinflussen.