Hi guys.
I am building a project with a rgb led strip, arduino nano and 2n 2222A transistors. The code that I am using is:
int redPin = A0;
int greenPin = A5;
int bluePin = A4;
int fadeSpeed = 5;
int long r = 255;
int long g = 66;
int long b = 66;
int fadespeed = 10;
void setup() {
pinMode (redPin, OUTPUT);
pinMode (greenPin, OUTPUT);
pinMode (bluePin, OUTPUT);
}
void loop() {
Serial.begin (9600);
for (g > 65; g < 255; g = g + 1) {
analogWrite (redPin, r);
analogWrite (greenPin, g);
analogWrite (bluePin, b);
delay (fadespeed);
Serial.println (r);
Serial.println (g);
Serial.println (b);
}
for (r <= 255; r > 65; r = r - 1) {
analogWrite (redPin, r); //
analogWrite (greenPin, g);
analogWrite (bluePin, b);
delay (fadespeed);
Serial.println (r);
Serial.println (g);
Serial.println (b);
}
for (b > 65; b < 255; b = b + 1) {
analogWrite (redPin, r);
analogWrite (greenPin, g);
analogWrite (bluePin, b);
delay (fadespeed);
Serial.println (r);
Serial.println (g);
Serial.println (b);
}
for (g <= 255; g > 65; g = g - 1) {
analogWrite (redPin, r);
analogWrite (greenPin, g);
analogWrite (bluePin, b);
delay (fadespeed);
Serial.println (r);
Serial.println (g);
Serial.println (b);
}
for (r > 65; r < 255; r = r + 1) {
analogWrite (redPin, r);
analogWrite (greenPin, g);
analogWrite (bluePin, b);
delay (fadespeed);
Serial.println (r);
Serial.println (g);
Serial.println (b);
}
for (b <= 255; b > 65; b = b - 1) {
analogWrite (redPin, r);
analogWrite (greenPin, g);
analogWrite (bluePin, b);
delay (fadespeed);
Serial.println (r);
Serial.println (g);
Serial.println (b);
}
}
The problem is in the last step, when I am decreasing the blue light intensity. As you can see, it was supposed to decrease the intensity until 65 of output. However, when the value reaches 71 it stops. I tried to set 71 as the bottom line, but it stops at 77 (in both cases, 6 units higher then it should be). All the other steps are working perfect. Anyone has an idea why it stopping before reaches 65???
Thanks