Projeto 14
Alarme
Projeto 14 - Alarme
Código (download)
// Projeto 14 - Alarme
// O buzzer desliga-se ao fim de "duracao" milissegundos
#define botao 5
#define buzzer 6
#define laser 7
#define ldr A0
int valorLDR;
int estado;
int limiteLDR = 200;
unsigned long duracao = 4000;
void setup()
{
Serial.begin(9600);
pinMode(botao, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(laser, OUTPUT);
pinMode(ldr, INPUT);
}
void loop()
{
estado = 0;
digitalWrite(buzzer, LOW);
digitalWrite(laser, HIGH);
Serial.println("Pressione o botão para ligar o alarme.");
while(estado == 0)
{
estado = digitalRead(botao);
}
Serial.println("O alarme está ligado.");
valorLDR = analogRead(ldr);
while(valorLDR < limiteLDR)
{
digitalWrite(buzzer, LOW);
valorLDR = analogRead(ldr);
}
digitalWrite(laser, LOW);
digitalWrite(buzzer, HIGH);
delay(duracao);
}
Código (download)
// Projeto 14 - Alarme com a função millis()
// O buzzer desliga-se ao fim de "duracao" milissegundos ou quando se pressiona o botão
#define botao 5
#define buzzer 6
#define laser 7
#define ldr A0
int valorLDR;
int estado;
int limiteLDR = 100;
unsigned long t_inicial;
unsigned long delta; // Intervalo de tempo que será comparado à "duracao"
unsigned long duracao = 4000;
void setup()
{
Serial.begin(9600);
pinMode(botao, INPUT);
pinMode(buzzer, OUTPUT);
pinMode(laser, OUTPUT);
pinMode(ldr, INPUT);
digitalWrite(buzzer, LOW);
digitalWrite(laser, HIGH);
}
void loop()
{
estado = 0;
delta = 0;
Serial.println("Pressione o botão para ligar o alarme.");
while(estado == 0)
{
estado = digitalRead(botao);
}
Serial.println("O alarme está ligado.");
valorLDR = analogRead(ldr);
while(valorLDR < limiteLDR)
{
digitalWrite(buzzer, LOW);
valorLDR = analogRead(ldr);
}
digitalWrite(laser, LOW);
Serial.println("Pressione o botão para desligar o alarme ou aguarde!...");
t_inicial = millis();
estado = 0;
while(estado == 0 && delta < duracao)
{
digitalWrite(buzzer, HIGH);
estado = digitalRead(botao);
delta = millis() - t_inicial;
}
digitalWrite(buzzer, LOW);
digitalWrite(laser, HIGH);
delay(1000);
}