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);
}