#include <Keypad.h>
// VARIÁVEIS DO SENSOR DE MOVIMENTO E "CÂMERA"
int movimento = 0;
const int mSensor = 32;
const int cam = 33;
int VAms = 0;
// SENHA E OUTRAS VARIÁVEIS DO KEYPAD
char senhaT[4] = {'1', '2', '3', '4'};
int numT = 0;
char VAkp = '.';
char num;
// KEYPAD CONFIGS
const uint8_t colunas = 3;
const uint8_t linhas = 4;
char keys[linhas][colunas] =
{
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
uint8_t Cpin[colunas] = {4, 0, 2};
uint8_t Lpin[linhas] = {18, 5, 17, 16};
Keypad teclado = Keypad(makeKeymap(keys), Lpin, Cpin, linhas, colunas);
// CÓDIGO GERAL
void setup()
{
Serial.begin(9600);
pinMode(mSensor, INPUT);
pinMode(cam, OUTPUT);
}
void loop()
{
// DETECTOR DE MOVIMENTO
movimento = digitalRead(mSensor);
VAms = detector(movimento, VAms);
// TECLADO DE SENHA
char num = teclado.getKey();
if(numT < 4 && num != NO_KEY)
{
Serial.print(num);
Serial.print(" ");
numT += senha(num, senhaT[numT]);
VAkp = num;
}
else if (numT == 4)
{
Serial.println("Você acessou sua conta!");
numT++;
}
}
int senha(int numero,char pin)
{
if(numero == pin)
{
Serial.println("número correto.");
return 1;
}
Serial.println("número incorreto, tente novamente.");
return 0;
}
int detector(int movim, int valAnt)
{
if (movim != valAnt)
{
if (movim == 1)
{
digitalWrite(cam, HIGH);
return 1;
}
else
{
digitalWrite(cam, LOW);
return 0;
}
}
return valAnt;
}