#include <LiquidCrystal_I2C.h>
#define I2C_ADDR 0x27
#define LCD_COLUMNS 16
#define LCD_LINES 2
LiquidCrystal_I2C lcd(I2C_ADDR, LCD_COLUMNS, LCD_LINES);
int botao = 2;
int led_verm = 4;
int led_azul = 5;
int led_amar = 6;
uint32_t inicio_press = 0;
uint32_t fim_press = 0;
uint32_t tempo_press = 0;
void setup() {
// put your setup code here, to run once:
pinMode(2, INPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(2,0);
lcd.print("ACIONAMENTO");
lcd.setCursor(3,1);
lcd.print("SEQUENCIAL");
delay(3000);
lcd.clear();
}
void loop() {
if(digitalRead(botao)==LOW)
lcd.setCursor(2,0);
lcd.print("PRECIONE");
lcd.setCursor(3,1);
lcd.print("O BOTAO");
if(digitalRead(botao) == HIGH){
lcd.clear();
inicio_press = millis();
while(digitalRead(botao) == HIGH){
lcd.setCursor(0,0);
lcd.print(tempo_press);
lcd.setCursor(4,0);
lcd.print("segundos");
if(digitalRead(botao) == LOW){
lcd.setCursor(0,0);
lcd.print(fim_press);
lcd.setCursor(3,0);
lcd.print("0 segundos");
fim_press = millis();
tempo_press = fim_press - inicio_press;
}
if(tempo_press > 1000){
digitalWrite(led_verm, HIGH);
}
if(tempo_press > 2000){
digitalWrite(led_azul, HIGH);
}
if(tempo_press > 3000){
digitalWrite(led_amar, HIGH);
}
}
}
if(digitalRead(botao) == LOW){
digitalWrite(led_verm, LOW);
digitalWrite(led_azul, LOW);
digitalWrite(led_amar, LOW);
}
}