Skip to content

Instantly share code, notes, and snippets.

@daniel7byte
Created February 10, 2020 22:18
Show Gist options
  • Save daniel7byte/a68791c10f52fe4345498721046f0549 to your computer and use it in GitHub Desktop.
Save daniel7byte/a68791c10f52fe4345498721046f0549 to your computer and use it in GitHub Desktop.
#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