byte redPin = 11;
byte greenPin = 10;
byte bluePin = 9;
int steps = 40;
int stepCount = 0 ;
int currentRed = 255, currentGreen = 0, currentBlue = 0;
int targetRed = 255, targetGreen = 255, targetBlue = 0;
unsigned long lastFadeTime = 0;
unsigned long fadeInterval = 1000; // ms
void setup() {
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
Serial.begin(115200);
}
void loop() {
if (stepCount >= steps) return;
unsigned long now = millis();
if (now - lastFadeTime >= fadeInterval) {
lastFadeTime = now;
stepCount++;
Serial.print(stepCount, DEC);
int r = map(stepCount, 0, steps, currentRed, targetRed);
int g = map(stepCount, 0, steps, currentGreen, targetGreen);
int b = map(stepCount, 0, steps, currentBlue, targetBlue);
analogWrite(redPin, r);
analogWrite(greenPin, g);
analogWrite(bluePin, b);
if (stepCount == steps) {
currentRed = targetRed;
currentGreen = targetGreen;
currentBlue = targetBlue;
}
}
}