Logo Hardware.com.br
Berserker92
Berserker92 Geek Registrado
1.1K Mensagens 251 Curtidas

Ativando e desativando alarme Arduino com teclado 4x4

#1 Por Berserker92 15/11/2018 - 13:26
Tenho seguinte projeto: (abaixo). Se trata de um alarme simples usando arduino, com buzzer e bloqueio por senha. A intenção seria desativar o alarme depois de inserir a senha, porém estou com muita dificuldade. Consegui fazer o mapeamento do teclado, mas não nem sei quais váriavéis ou onde inserir os argumentos para solicitar e bloquear o sistema por senha. Alguem pode me ajudar?

Anexo do post

Código:
/*
Projeto Arduino - Alarme com Arduino e sensor de movimento PIR
Por Jota
----------------------------------------
--=<| www.ComoFazerAsCoisas.com.br |>=--
----------------------------------------

Modificado por Italo Roberto. Incluso teclado 4x4
*/

#include <Keypad.h>

//Mapeamento de teclas
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}
};
byte rowPins[ROWS] = {5, 4, 3, 2};  //Definição de pinos das linhas
byte colPins[COLS] = {6, 7, 8};  //Definição de pinos das colunas

//Cria o teclado
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

//Declaração das variáveis referentes aos pinos digitais.
int pinBuzzer = 9;
int pinSensorPIR = 10;
int pinLed = 11;
int valorSensorPIR = 0;
void setup() {
  Serial.begin(9600); //Inicializando o serial monitor
  //Definido pinos como de entrada ou de saída
  pinMode(pinBuzzer,OUTPUT);
  pinMode(pinSensorPIR,INPUT);
  pinMode(pinLed,OUTPUT);
}
void loop() {
  //Lendo o valor do sensor PIR. Este sensor pode assumir 2 valores
  //1 quando detecta algum movimento e 0 quando não detecta.
  valorSensorPIR = digitalRead(pinSensorPIR);

  Serial.print("Valor do Sensor PIR: &quot;
  Serial.println(valorSensorPIR);

  //Verificando se ocorreu detecção de movimentos
  if (valorSensorPIR == 1) {
  ligarAlarme();
  } else {
  desligarAlarme();
  }
}
void ligarAlarme() {
  //Ligando o led
  digitalWrite(pinLed, HIGH);

  //Ligando o buzzer com uma frequencia de 1500 hz.
  tone(pinBuzzer,1500);

  delay(┼); //tempo que o led fica acesso e o buzzer toca

  desligarAlarme();
}
void desligarAlarme() {
  //Desligando o led
  digitalWrite(pinLed, LOW);

  //Desligando o buzzer
  noTone(pinBuzzer);
}

Anexos

© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal