// Mapeamento de I/Os
// INPUT
#define BT0 13
// OUTPUT
#define LED_AZ 3
#define LED_VM 4
#define LED_AM 5
#define LED_VD 6
/*
Entradas analógicas (pinos A0 a A5)
Conversor Analógico-Digital
(Analog-To-Digital Converter - ADC)
No Arduino UNO temos um ADC de 10 bits,
ou seja, o valor convertido será armazenado
em uma variável de 0 a 1023.
0.00V ---> 0000000000 ----> 0
2.50V ---> 1000000000 ----> 512
5.00V ---> 1111111111 ----> 1023
Função ----> analogRead(pino)
Exemplo:
int x = analogRead(A0);
if(x > 500){
}
*/
// Variável
int valorAnalog;
void setup() {
Serial.begin(9600);
// Não é necessária a configuração da entrada
// analógica com pinMode
pinMode(BT0, INPUT_PULLUP);
pinMode(LED_AZ, OUTPUT);
pinMode(LED_VM, OUTPUT);
pinMode(LED_AM, OUTPUT);
pinMode(LED_VD, OUTPUT);
}
void loop() {
valorAnalog = analogRead(A0);
delay(10); //
Serial.println("Valor convertido pelo ADC: " + String(valorAnalog));
//Serial.println(valorAnalog);
if(valorAnalog < 200)
{
digitalWrite(LED_VD, HIGH);
digitalWrite(LED_AM, LOW);
}
if(valorAnalog >= 200 && valorAnalog < 650)
{
digitalWrite(LED_VD, LOW);
digitalWrite(LED_VM, LOW);
digitalWrite(LED_AM, HIGH);
}
if(valorAnalog >= 650 && valorAnalog < 950)
{
digitalWrite(LED_AM, LOW);
digitalWrite(LED_VM, HIGH);
}
if(valorAnalog > 950 && valorAnalog <= 1000)
{
pisca();
}
if(valorAnalog > 1000){
// Loop infinito
while(1){
Serial.println("ALARMEEEE!!!!!!!!!! :( ");
piscaVermelho();
}
}
delay(300);
}
void piscaVermelho(){
digitalWrite(LED_VM, HIGH);
delay(250); //0.25s
digitalWrite(LED_VM, LOW);
delay(250); //0.25s
}
void pisca(){
digitalWrite(LED_VM, HIGH);
digitalWrite(LED_AM, HIGH);
digitalWrite(LED_VD, HIGH);
delay(250); //0.25s
digitalWrite(LED_VM, LOW);
digitalWrite(LED_AM, LOW);
digitalWrite(LED_VD, LOW);
delay(250); //0.25s
}