//Curso: Automação com Arduino
//Pasta: C:/AcDc
//2023_04_27_11ª Aula
//Programa: 2023_04_18_Aula_11C (Teclado Matricial)
//Exercício: Senha Eletrônica - Exemplo da aula dado pelo professor
//Usando Teclado Matricial 4 x 3 

#include <Keypad.h>
char caractere;
char teclas[4][3] = {     //4 Linhas x 3 Colunas
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte linha[4]={8,7,6,5};
byte coluna[3]={4,3,2};Keypad teclado(makeKeymap(teclas),linha,coluna,4,3);
int N = 0; //Vai contar os dígitos da senha (Numero de x que digitei caractere)
boolean E = 0; //Fica zero enqto eu não errar nada, se errar coloca o E=1
char senha [4]= {'5', '8','3','1'};

void setup() {
Serial.begin(9600);
pinMode(10,OUTPUT);// Led Vermelho
pinMode(11,OUTPUT); //lED Verde
pinMode(12,OUTPUT); //relé
digitalWrite(12,HIGH);
}
void loop() {
caractere=teclado.getKey();
if(caractere) {
digitalWrite(9,HIGH);
delay(1000);
digitalWrite(9,LOW);
Serial.println(caractere);
if (caractere!=senha[N]){
  E=1;}
  N++;
if (N==4&& E==1){
  delay (1000);
  digitalWrite(10,HIGH);
  delay (2000);
  digitalWrite(10,LOW);
  N=0;
  E=0;}
if (N==4&&E==0){
  delay (1000);
  digitalWrite(11,HIGH);
  delay(2000);
  digitalWrite(11,LOW);
  digitalWrite(12,LOW);
  delay(2000);
  digitalWrite(12,HIGH);
  delay(2000);
  N=0;}
  }
}
NOCOMNCVCCGNDINLED1PWRRelay Module