// Пины для подключения RGB-светодиода
const int redPin = 9;
const int greenPin = 10;
const int bluePin = 11;
// Пины для подключения потенциометров
const int potBrightnessPin = A0; // Пин для первого потенциометра
const int potColorPin = A1; // Пин для второго потенциометра
void setup() {
// Настройка пинов как выходы
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
}
void loop() {
// Чтение значений с потенциометров
int brightnessValue = analogRead(potBrightnessPin); // Значение от 0 до 1023
int colorValue = analogRead(potColorPin); // Значение от 0 до 1023
// Изменение яркости RGB-светодиода
int brightness = map(brightnessValue, 0, 1023, 0, 255); // Преобразование в диапазон от 0 до 255
analogWrite(redPin, brightness); // Установка яркости красного канала
analogWrite(greenPin, brightness); // Установка яркости зеленого канала
analogWrite(bluePin, brightness); // Установка яркости синего канала
// Изменение цвета RGB-светодиода
int red = 0;
int green = 0;
int blue = 0;
// Определение цвета на основе значения colorValue
if (colorValue < 341) { // Желтый (0-340)
red = map(colorValue, 0, 340, 255, 255); // Красный: от 255 до 255
green = map(colorValue, 0, 340, 0, 255); // Зеленый: от 0 до 255
blue = 0; // Синий: всегда 0
} else if (colorValue < 682) { // Белый (341-681)
red = map(colorValue, 341, 681, 255, 255); // Красный: от 255 до 255
green = map(colorValue, 341, 681, 255, 255); // Зеленый: от 255 до 255
blue = map(colorValue, 341, 681, 0, 0); // Синий: всегда 0
} else { // Синий (682-1023)
red = map(colorValue, 682, 1023, 255, 0); // Красный: от 255 до 0
green = map(colorValue, 682, 1023, 255, 0); // Зеленый: от 255 до 0
blue = map(colorValue, 682, 1023, 0, 255); // Синий: от 0 до 255
}
// Установка цвета светодиода
analogWrite(redPin, red);
analogWrite(greenPin, green);
analogWrite(bluePin, blue);
delay(50); // Небольшая задержка для стабильности
}