Created
February 10, 2020 22:18
-
-
Save daniel7byte/a68791c10f52fe4345498721046f0549 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Keypad.h> //Include Keypad and servo library | |
#include <Servo.h> | |
Servo servoblue; //The servo is called „servoblue“ from now on | |
char* password = „123“; //We set the password. In this case „123“ | |
int position = 0; | |
const byte ROWS = 4; //In this two lines we define how many rows and columns | |
const byte COLS = 3; //our keypad has | |
char keys[ROWS][COLS] = { //The characters on the keys are defined here | |
{'#', '0', '*'}, | |
{'9', '8', '7'}, | |
{'6', '5', '4'}, | |
{'3', '2', '1'} | |
}; | |
byte rowPins[ROWS] = {5, 6, 7, 8}; //The connection with the arduino is | |
byte colPins[COLS] = {2, 3, 4}; //listed here | |
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); | |
int redLED = 12; //The red LED is connected to pin 12 | |
int greenLED = 13; //The green LED is connected to pin 13 | |
void setup() | |
{ | |
pinMode(redLED, OUTPUT); //The LEDs are defined as Output | |
pinMode(greenLED, OUTPUT); | |
servoblue.attach(11); //The servo is connected to pin 11 | |
setLocked(true); | |
} | |
void loop() | |
{ | |
char key = keypad.getKey(); | |
if (key == '*' || key == '#') //If the lock is open it can be locked again by pushing „*“ or „#“ on the //keypad | |
position = 0; | |
setLocked(true); //The command to close the lock after „*“ or „#“ is pushed | |
} | |
if (key == password[position]) | |
{ | |
position ++; | |
} | |
if (position == 3) //This part defines how many digits our code will have.In this case we have 3 digits //(123). | |
{ | |
setLocked(false); | |
} | |
delay(100); | |
} | |
void setLocked(int locked) | |
{ | |
if (locked) // If the lock is closed.. | |
{ | |
digitalWrite(redLED, HIGH); //..the red LED should light up.. | |
digitalWrite(greenLED, LOW); //..the green LED not.. | |
servoblue.write(90); //and the servo should turn to a 90 degree position. | |
} | |
else //if the lock is open.. | |
{ | |
digitalWrite(redLED, LOW); //..the red LED should be off.. | |
digitalWrite(greenLED, HIGH); //..and the green LED should light up.. | |
servoblue.write(0); //..and the servo should turn to a 0 degree position. | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment