senha seis botoes para abertura de portas eletrônicas

//senha seis botoes para abertura de portas eletrônicas
//senha: 5-6-9-10-11-12
//para trocar a senha faça inversao da ordem dos fios do teclado
//04-08-2019
//revisao 07-08-2019
//incluido armazenamento das tentativas na eeprom interna
//incluido desarme (iniciar com d5 pressionado)
//pedroluand@gmail.com

#include <EEPROM.h>

#define beep tone(7,600,50)
#define erro tone(7,400,1000)
#define alerta tone(7,600,300000)

int a; //registro da senha
int b; //contador de erro
int c; //contador de tentativas
int memoria = 0; //memoria na eeprom

void setup()
{
  pinMode(5,INPUT_PULLUP);
  pinMode(6,INPUT_PULLUP);
  pinMode(7,OUTPUT); //buzzer
  pinMode(8,OUTPUT); //relé
  pinMode(9,INPUT_PULLUP);
  pinMode(10,INPUT_PULLUP);
  pinMode(11,INPUT_PULLUP);
  pinMode(12,INPUT_PULLUP);
   
  Serial.begin(9600);
   
  //se iniciado com d5 pressionado
  if (digitalRead(5) == LOW) //zera o numero de tentativas na eeprom e desarma o alarme
  {
  c=0;
  EEPROM.write(memoria,c);
  beep;
  delay(2000);
  beep;
  }
   
  c = EEPROM.read(memoria); // c inicia com o valor da eeprom
   
}

void loop()
{
    if (digitalRead(5) == LOW && a == 0)
    {
     a+=1;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
   
    if (digitalRead(5) == LOW && a != 0)
    {
     a=0;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
     
    if (digitalRead(6) == LOW && a == 1)
    {
     a+=1;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
       
    if (digitalRead(6) == LOW && a != 1)
    {
     a=0;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
         
   
    if (digitalRead(9) == LOW && a == 2)
    {
     a+=1;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
   
    if (digitalRead(9) == LOW && a != 2)
    {
     a=0;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
     
    if (digitalRead(10) == LOW && a == 3)
    {
     a+=1;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
       
    if (digitalRead(10) == LOW && a != 3)
    {
     a=0;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
         
    if (digitalRead(11) == LOW && a == 4)
    {
     a+=1;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }

    if (digitalRead(11) == LOW && a != 4)
    {
     a=0;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
         
    if (digitalRead(12) == LOW && a == 5)
    {
     a+=1;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
       
    if (digitalRead(12) == LOW && a != 5)
    {
     a=0;
     b+=1;
     delay(200);
     beep;
     Serial.print("a: ");
     Serial.println(a);
     Serial.print("b: ");
     Serial.println(b);
     Serial.print("c: ");
     Serial.println(c);
    }
   
    if(a==6)
    {
    digitalWrite(8,HIGH);
    delay(1000);
    digitalWrite(8,LOW); 
    a=0;
    b=0;
    c=0;
    }
     
    if(b>=6 && a!=6)
    {
    erro;
    delay(3000);
    a=0;
    b=0;
    c+=1;
    }
   
    if(c>=3)
    {
    alerta;
    EEPROM.write(memoria,c);
    delay(300000);
    }
}

Comentários

Postagens mais visitadas deste blog

Amplificador de 6W para módulos PLL FM, usando transistores C1970 e C1971 - Versão final 04-04-2022

Amplificador de RF 350mW com BD135 para modulos pll

Antena dipolo para transmissores FM