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: "
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);
}