const int RED = 3; // вывод R RGB-светодиода
const int GREEN = 5; // вывод G RGB-светодиода
const int BLUE = 9; // вывод B RGB-светодиода
int red; // переменная для хранения R-составляющей цвета
int green; // переменная для хранения G-составляющей цвета
int blue; // переменная для хранения B-составляющей цвета
const int POT = A0; // вывод подключения потенциометра
const int MIN_PAUSE = 10; // минимальная задержка смены цвета, мс
const int MAX_PAUSE = 100; // максимальная задержка смены цвета, мс
int pause; // переменная для хранения текущей задержки
const int VIEW_PAUSE = 100; // время фиксации основного цвета, мс
void setup()
{
Serial.begin(9600);
}
void loop()
{
// от красного к желтому
Serial.println("red - yellow");
red = 255; green = 0; blue = 0;
for (green = 0; green <= 255; green++) {
setRGB(red, green, blue);
};
delay(VIEW_PAUSE);
// от желтому к зеленому
Serial.println("yellow - green");
red = 255; green = 255; blue = 0;
for (red = 255; red >= 0; red--) {
setRGB(red, green, blue);
}
delay(VIEW_PAUSE);
// от зеленого к голубому
Serial.println("green - blue");
red = 0; green = 255; blue = 0;
for (blue = 0; blue <= 255; blue++) {
setRGB(red, green, blue);
}
delay(VIEW_PAUSE);
// от голубого к синему
Serial.println("blue - blue");
red = 0; green = 255; blue = 255;
for (green = 255; green >= 0; green--) {
setRGB(red, green, blue);
}
delay(VIEW_PAUSE);
// от синего к фиолетовому
Serial.println("blue - purple");
red = 0; green = 0; blue = 255;
for (red = 0; red <= 255; red++) {
setRGB(red, green, blue);
}
delay(VIEW_PAUSE);
// от фиолетового к красному
Serial.println("purple - red");
red = 255; green = 0; blue = 255;
for (blue = 255; blue >= 0; blue--) {
setRGB(red, green, blue);
}
delay(VIEW_PAUSE);
}
// функция установки цвета RGB-светодиода
void setRGB(int r, int g, int b)
{
analogWrite(RED, r);
analogWrite(GREEN, g);
analogWrite(BLUE, b);
delay(10);
}