Índice:
Vídeo: Cofre: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:39
Este é o seu resultado final após colocá-lo junto e fazer o upload do código.
Etapa 1: Coisas de que você precisa
Jumper Wires, resistor 220 OHM, tela LCD 16x2, botões, servo motor, placa de ensaio, Arduino Uno.
Etapa 2: Código
James Chinchay
#incluir
#include #include
endereço interno = 0; SaveTimer longo sem sinal estático; SaveDelay longo sem sinal estático = (30 * 1000);
char CODE [10] = "1234E"; char Str [10]; Char CodeLength = 4; Pos int = 0; bool desbloqueado; DisplayTimer longo não assinado estático; DisplayDelay longo sem sinal estático = 200;
LiquidCrystal lcd (12, 11, 9, 8, 7, 6);
botãoPin1 = 2; botãoPin2 int2 = 3; botãoPin3 = 4; botãoPin4 = 5;
botão de entrada int = 10; botão de bloqueio interno = 13;
Servo myServo; // configurando o programa de construção void setup () {
meuServo.attach (A1);
int EEPROMCodeOK = true; para (Pos = 0; Pos <= (Comprimento do código); Pos ++) {Str [Pos] = EEPROM.read (Pos); if (! (strrchr ("1123456789", Str [Pos]))) {// não é um código válido EEPROMCodeOK = false; }} Pos ++; Str [Pos] = EEPROM.read (Pos); if (Str [CodeLength + 1]! = 'E') EEPROMCodeOK = falso; if (EEPROMCodeOK) {Str [CodeLength + 2] = '\ 0'; strncpy (CODE, Str, CodeLength + 1); } ClearCode (); // configurando entradas pinMode (buttonPin1, INPUT_PULLUP); pinMode (buttonPin2, INPUT_PULLUP); pinMode (buttonPin3, INPUT_PULLUP); pinMode (buttonPin4, INPUT_PULLUP);
pinMode (enterbutton, INPUT_PULLUP); pinMode (clearlockbutton, INPUT_PULLUP);
lcd.begin (16, 2); lcd.setCursor (0, 0); // configurando lcd.print com mensagem ("Hello Mr Birch"); atraso (2000); lcd.clear (); lcd.setCursor (0, 0); // configurando o prompt para a senha lcd.print ("Senha:");
DisplayTimer = millis () + 200; }
void loop () {
Trancar();
Pos = restrição (Pos, 0, CodeLength); // lê os botões int buttonState1 = digitalRead (buttonPin1); int buttonState2 = digitalRead (buttonPin2); int buttonState3 = digitalRead (buttonPin3); int buttonState4 = digitalRead (buttonPin4);
int clButtonState = digitalRead (clearlockbutton); int enterButtonState = digitalRead (enterbutton);
lcd.setCursor (9, 0); // requisitos para ativar if (buttonState1 == LOW) {Str [Pos] = '1'; Pos ++; Str [Pos] = '\ 0'; atraso (250); while (digitalRead (buttonPin1) == LOW);
}
else if (buttonState2 == LOW) {Str [Pos] = '2'; Pos ++; Str [Pos] = '\ 0'; atraso (250); enquanto (digitalRead (buttonPin2) == LOW);
}
else if (buttonState3 == LOW) {Str [Pos] = '3'; Pos ++; Str [Pos] = '\ 0'; atraso (250); enquanto (digitalRead (buttonPin3) == LOW); }
else if (buttonState4 == LOW) {Str [Pos] = '4'; Pos ++; Str [Pos] = '\ 0'; atraso (250); enquanto (digitalRead (buttonPin4) == LOW);
} else if (enterButtonState == LOW) {Str [Pos] = 'E'; Pos ++; Str [Pos] = '\ 0'; atraso (250); while (digitalRead (buttonPin1) == LOW); if (strcmp (Str, CODE) == 0) {Unlocked = true; lcd.setCursor (0, 0); lcd.print ("Acesso concedido"); atraso (2000); lcd.clear (); lcd.print ("Desbloqueado"); } else if (SaveTimer> millis () && (Pos + 1) == CodeLength) {
strcpy (CÓDIGO, Str); para (Pos = 0; Pos <= (CodeLength + 1); Pos ++) {EEPROM.write (Pos, Str [Pos]); } lcd.setCursor (0, 0); lcd.print ("Código de salvamento:"); lcd.setCursor (0, 1); lcd.print (Str);
Desbloqueado = verdadeiro; }
outro {
lcd.clear (); lcd.print ("Acesso negado."); atraso (2000); lcd.clear (); lcd.print ("Senha:");
} // código de desbloqueio while (Unlocked) {Unlock (); if (digitalRead (clearlockbutton) == LOW) {delay (200); lcd.clear (); lcd.print ("Bloqueado"); atraso (2000); lcd.clear (); Desbloqueado = falso; SaveTimer = millis () + 30000; }}
ClearCode ();
}
else if (clButtonState == LOW) {delay (500);
while (clearlockbutton == LOW); if ((millis () - SaveTimer)> 4500) {
}
ClearCode ();
}
if ((long) (millis () - DisplayTimer)> = 0) {DisplayTimer + = DisplayDelay; lcd.setCursor (9, 0); lcd.print (Str); lcd.print ("");
} }
void ClearCode () {
Pos = 0; Str [Pos] = '\ 0'; lcd.setCursor (0, 0); lcd.print ("Senha:"); lcd.setCursor (0, 1); lcd.print ("");
}
void Unlock () {
myServo.write (150);
} // botão de bloqueio do programa void Lock () {
myServo.write (50);
}
Etapa 3:
quando feito tudo, deve ficar assim.
Recomendado:
Cofre para telefone: 5 etapas (com fotos)
Cofre do telefone: Mudar de: AlissahuangEu sou viciado no meu telefone, que não consigo me concentrar nos meus deveres de casa. Todos os dias, quando vou para casa, brinco primeiro com meu telefone, depois por volta das 22h. Comecei minha lição de casa, que é tarde demais. Então, todos os dias eu ia para a cama às 2 da manhã, causando
Construir um cofre usando um Rpi: 12 etapas
Crie um cofre usando um Rpi: Quer aprender como converter seu Raspberry pi em um cofre totalmente funcional? Em seguida, siga estas 12 etapas instrutíveis para aprender como. O cofre terá um teclado totalmente funcional e um sistema de travamento, para que você possa manter seus pertences seguros
B-Safe, o cofre portátil: 8 etapas (com fotos)
B-Safe, o cofre portátil: *** 4 de setembro de 2019: Eu carreguei um novo arquivo 3D da própria caixa. Parecia que minha fechadura tinha 10 mm de altura demais para um bom fechamento *** O problemaImagine isto: Você acorda uma manhã e o tempo está muito bom. Você quer ir à praia. Porque você não
Criando um cofre digital seguro: 26 etapas
Criação de um cofre digital seguro: pensei em compartilhar os fundamentos da criação de um cofre digital seguro usando o software veracrypt. Eu o usei por vários anos para criar cofres digitais para mim e minha família. é um software de criptografia poderoso e muito versátil, mas não en
Cofre de arquivos faça você mesmo a partir da unidade flash antiga: 6 etapas
DIY File Vault a partir de um antigo flash drive: Se você está interessado em ofertas da Cyber Monday ou Black Friday, então deve ter visto um produto em destaque em algumas das revistas chamado Photo Vault. A ideia disso é que ele basicamente armazena todas as suas imagens em um USB por sessenta dólares, e isso era