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);

}