/* Задание 6.2
Управляем свечением диодов кнопками.
При удержании кнопки - горит диод соответсвующего цвета
Дополнительно*: при длительном
нажатии на соответствующую кнопку пусть светодиод мигает.
*/
#define LED_R 4 // Вывод для Красного диода
#define LED_G 3 // Вывод для Зеленого диода
#define LED_B 2 // Вывод для Синего диода
#define BUTTON_R A0 // Вывод для Красной кнопки
#define BUTTON_G A1 // Вывод для Зеленой кнопки
#define BUTTON_B A2 // Вывод для Синей кнопки
bool flag_button_R; // Флаг состояние кнопки (нажата или нет)
bool flag_state_R; // Флаг состояние диода (горит или нет)
//Настроим GPIO соответсвующим образом
void setup() {
Serial.begin(115200);
pinMode(LED_R, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
pinMode(BUTTON_R, INPUT_PULLUP);
pinMode(BUTTON_G, INPUT_PULLUP);
pinMode(BUTTON_B, INPUT_PULLUP);
}
// Прочитаем состояние кнопок и запишем их на соответсвующие светодиоды
void loop()
{
int val_red = digitalRead(BUTTON_R);
int val_green = digitalRead(BUTTON_G);
int val_blue = digitalRead(BUTTON_B);
unsigned long time = millis();
if (!flag_button_R && !flag_state_R)
{
digitalWrite(LED_R, !val_red);
digitalWrite(LED_G, !val_green);
digitalWrite(LED_B, !val_blue);
flag_button_R = true;
flag_state_R = true;
}
else
{
flag_button_R = false;
digitalWrite(LED_R, !val_red);
digitalWrite(LED_G, !val_green);
digitalWrite(LED_B, !val_blue);
flag_state_R = false;
}
}