/*
OUTPUT:
17: LED VERDE
4: LED AMARELO
2: LED VERMELHO
INPUT:
18: BOTÃO PRETO
19: BOTÃO BRANCO
ANALOG INPUT:
33: POTENCIÔMETRO
*/
// Variável que armazena o valor convertido pelo ADC interno
// Analog-To-Digital Converter -------> ADC
// Converte a tensão de 0 a 3.3V em uma faixa decimal de 0 a 4095
// analogRead(pino) ----> inteiro de 0 a 4095
// 0V (LOW) ou 3.3V (HIGH) ---> digital
// 0.0V até 3.3V ----> analógico
// Mapeamento de pinos de I/O:
// INPUT (botões)
#define BT_PRETO 18
#define BT_BRANCO 19
// OUTPUT (LEDs)
#define LED_RED 2
#define LED_YEL 4
#define LED_GRE 17
// ANALOG INPUT
#define POT 33
int valorAnalog; // Recebe o valor de 0 a 4095 de analogRead
void setup() {
// Configuração dos pinos de I/Os DIGITAIS
// Regra para INPUT
// LOW (0V) -----> BOTÃO PRESSIONADO
// HIGH (3.3V) ----> BOTÃO DESLIGADO
pinMode(BT_BRANCO, INPUT_PULLUP);
pinMode(BT_PRETO, INPUT_PULLUP);
pinMode(LED_GRE, OUTPUT);
pinMode(LED_YEL, OUTPUT);
pinMode(LED_RED, OUTPUT);
}
void loop() {
// ex1();
ex2();
}
void ex2(){
valorAnalog = analogRead(POT); // pino 33
// de 0 a 4095
if(valorAnalog > 2000){
piscaTodos();
}
}
void ex1(){
// Os LEDs piscam enquanto o botão branco estiver pressionado
// Leitura do status do botão
// Botões:
// ON ---> LOW
// OFF ---> HIGH
// LEDs:
// ON ----> HIGH
// OFF ---> LOW
if(digitalRead(BT_BRANCO) == LOW){
piscaTodos();
}
}
void piscaTodos(){
digitalWrite(LED_GRE, HIGH);
digitalWrite(LED_YEL, HIGH);
digitalWrite(LED_RED, HIGH);
delay(300); // 300ms = 0.3s
digitalWrite(LED_GRE, LOW);
digitalWrite(LED_YEL, LOW);
digitalWrite(LED_RED, LOW);
delay(300); // 300ms = 0.3s
}