const int button1Pin = 2;
const int button2Pin = 3;
const int ledPin = 9;
const int redPin = 5;
const int greenPin = 6;
const int potentiometerPin = A0; // Пин потенциометра
int redState = LOW;
int greenState = LOW;
int ledState = LOW;
bool button1Pressed = false;
void setup() {
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
// Включаем обычный светодиод
digitalWrite(ledPin, HIGH);
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
}
void loop() {
// Обработка кнопки 1
if (digitalRead(button1Pin) == LOW && !button1Pressed) {
delay(50); // Задержка
if (digitalRead(button1Pin) == LOW) {
button1Pressed = true; // Устанавливаем флаг нажатия кнопки 1
// Переключение состояния красного цвета RGB-светодиода
redState = !redState;
greenState = !redState; // Зеленый цвет включается, если красный выключен
digitalWrite(redPin, redState ? HIGH: LOW );
digitalWrite(greenPin, greenState ? HIGH : LOW);
// Выключаем обычный светодиод
digitalWrite(ledPin, LOW);
ledState = LOW;
}
} else if (digitalRead(button1Pin) == HIGH) {
button1Pressed = false; // Сбрасываем флаг нажатия кнопки 1 при ее отпускании
}
// Обработка кнопки 2
if (digitalRead(button2Pin) == LOW) {
delay(50); // Задержка
if (digitalRead(button2Pin) == LOW) {
// Выключаем красный и зеленый цвета RGB-светодиода
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
// Включаем обычный светодиод
digitalWrite(ledPin, HIGH);
ledState = HIGH;
}
}
// Чтение значения с потенциометра и установка яркости текущего цвета
int potValue = analogRead(potentiometerPin);
int brightness = map(potValue, 0, 1023, 0, 255);
analogWrite(redPin, redState ? brightness : 0);
analogWrite(greenPin, greenState ? brightness : 0);
}