Schönen guten Abend !
Ich habe einen Sketch für das Keypad gefunden, ich möchte es aber auch gerne mit den Schalter verbinden .(also erst der Anhänger als Bankschlüssel in die Kiste an den Schalter einführen wo dann nacheinander die LED´s angehen und auch an bleiben und dann danach das Keypad betätigen kann wo bei den richtigen Pin der Schalter umschaltet.)
Das Programm würde ich gerne vervollständigt haben .
Das wäre der Sketch den ich gefunden habe , der würde laut Arduino funktionieren .
#include <Wire.h>
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Servo.h>
Servo myservo;
//set our code
char* ourCode = "8219";
int currentPosition = 0;
//define the keypad
const byte rows = 4;
const byte cols = 4;
char keys[rows][cols] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[rows] = {13,10,9,8};
byte colPins[cols] = {7,6,1,0};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
pinMode(A2,OUTPUT);
myservo.attach(A2);
myservo.write(180);
lcd.begin(16, 2);
lcd.clear();
displayCodeEntryScreen();
}
void loop()
{
int l;
char key = keypad.getKey();
if (int(key) != 0) {
lcd.print(" ");
lcd.setCursor(0,1);
1 |
for (l=0; l<=currentPosition; ++l)
|
2 |
{
|
3 |
lcd.print("*");
|
4 |
}
|
5 |
|
6 |
if (key == ourCode[currentPosition])
|
7 |
{
|
8 |
++currentPosition;
|
9 |
if (currentPosition == 4)
|
10 |
{
|
11 |
unlockDoor();
|
12 |
currentPosition = 0;
|
13 |
}
|
14 |
} else {
|
15 |
invalidCode();
|
16 |
currentPosition = 0;
|
17 |
}
|
}
}
void invalidCode()
{
clearScreen();
lcd.setCursor(0,0);
lcd.print("ACCESS DENIED!");
lcd.setCursor(0,1);
lcd.print("!VERWEIGERT!");
delay(5000);
displayCodeEntryScreen();
}
void unlockDoor()
{
myservo.write(20);
clearScreen();
lcd.setCursor(0,0);
lcd.print("TOTAL ACCESS");
lcd.setCursor(0,1);
lcd.print("ZUGRIFF SYSTEM");
//add any code to unlock the door here
delay(5000);
displayCodeEntryScreen();
}
void displayCodeEntryScreen()
{
lcd.print("[!]:./action.");
;delay(1000)
;lcd.setCursor(0,1);
;lcd.print("[!]SYSTEM.REBOOT");
;delay(1000)
;lcd.clear();
;lcd.print("[!]:./initiating.");
;delay(1000)
;lcd.setCursor(0,1);
;lcd.print("[!]:./array_all");
;delay(1000)
;lcd.clear();
;lcd.print("[!]:./array_all");
;delay(1000)
;lcd.setCursor(0,1);
;lcd.print("[!]System Online");
;delay(2000)
;lcd.clear();
;lcd.print("GC5AXQ4");
;delay(2000)
;lcd.setCursor(0,1);
;lcd.print("Rettet Finch!");
delay(2000)
;lcd.clear();
;lcd.print("Station:");
;delay(1000)
;lcd.clear();
;lcd.print("Northern Lights");
;delay(1000)
;lcd.setCursor(0,1);
;lcd.print("Die Machine");
;delay(3000)
;lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enter Code:");
}
void clearScreen()
{
lcd.setCursor(0,0);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(" ");
}