#define POT 16 // Потенциометр подключен к контакту 16 Arduino
#define RED_LED 11 // Красный контакт светодиода к 11 контакту Arduino
#define GREEN_LED 10 // Зеленый контакт светодиода к 10 контакту Arduino
#define BLUE_LED 9 // Синий контакт светодиода к 9 контакту Arduino
int POT_state; // Переменная хранящая состояние потенциометра
int RED; // Переменная хранящая состояние для красного светодиода
int GREEN; // Переменная хранящая состояние для зеленого светодиода
int BLUE; // Переменная хранящая состояние для синего светодиода
void setup() {
Serial.begin(9600); // Открытие серийного порта
pinMode(RED_LED, OUTPUT); // Режим контакта - выход
pinMode(GREEN_LED, OUTPUT); // Режим контакта - выход
pinMode(BLUE_LED, OUTPUT); // Режим контакта - выход
}
void loop() {
POT_state = analogRead(POT); // Переменная принимает значение согласно напряжению на аналоговом контакте
if (POT_state < 341) {
// Если переменная POT_state меньше 341, то выполняется следующие условие:
RED = map(POT_state, 0, 341, 255, 0); // Красный сигнал ограничен 0-341, принимает проаорциональное значение 255-0
GREEN = map(POT_state, 0, 341, 0, 255); // Зеленый сигнал ограничен 0-341, принимает проаорциональное значение 0-255
BLUE = 0; // Синий сигнал равен 0
}
if (POT_state < 681 && POT_state > 341) {
// Если переменная POT_state меньше 681 и больше 341, то выполняется следующие условие:
RED = 0; // Красный сигнал равен 0
GREEN = map(POT_state, 341, 681, 255, 0); // Зеленый сигнал ограничен 341-681, принимает проаорциональное значение 255-0
BLUE = map(POT_state, 341, 681, 0, 255); // Синий сигнал ограничен 341-681, принимает проаорциональное значение 0-255
}
if (POT_state < 1023 && POT_state > 681) {
// Если переменная POT_state меньше 1023 и больше 681, то выполняется следующие условие:
RED = map(POT_state, 681, 1023, 0, 255); // Красный сигнал ограничен 341-681, принимает проаорциональное значение 255-0
GREEN = 0; // Зеленый сигнал равен 0
BLUE = map(POT_state, 682, 1023, 255, 0); // Синий сигнал ограничен 341-681, принимает проаорциональное значение 255-0
}
analogWrite(RED_LED, RED); // Аналоговая запись в порт RED_LED значения RED
analogWrite(GREEN_LED, GREEN); // Аналоговая запись в порт GREEN_LED значения GREEN
analogWrite(BLUE_LED, BLUE); // Аналоговая запись в порт BLUE_LED значения BLUE
/* ---------------- Вывод данных в серийный порт ---------------- */
// Serial.print("RED: ");
// Serial.print(RED);
// Serial.print("\t");
// Serial.print("GREEN: ");
// Serial.print(GREEN);
// Serial.print("\t");
// Serial.print("BLUE: ");
// Serial.println(BLUE);
}