/**
Arduino Electronic Safe
Copyright (C) 2020, Uri Shaked.
Released under the MIT License.
*/
unsigned time = 0;
bool stop = false;
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Servo.h>
#include "SafeState.h"
#include "icons.h"
/* Locking mechanism definitions */
#define SERVO_PIN 6
#define SERVO_LOCK_POS 20
#define SERVO_UNLOCK_POS 90
Servo lockServo;
Servo s1,s2,s3,s4,s5,s6;
/* Keypad setup */
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2};
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);
void setup() {
s1.attach(6);
s2.attach(7);
s3.attach(8);
s4.attach(9);
s5.attach(10);
s6.attach(11);
}
void loop() {
char key = keypad.getKey();
if(millis() - time > 5000){
time = millis();
time--;
s6.write(180);
delay(1000);
s6.write(90);
}
if (key=='1'){
Serial.println('1');
s1.write(180);
delay(1000);
s1.write(90);
}
else if (key=='5'){
s5.write(180);
delay(1000);
s5.write(90);
}
else if (key=='4'){
s4.write(180);
delay(1000);
s4.write(90);
}
else if (key=='3'){
s3.write(180);
delay(1000);
s3.write(90);
}
else if (key=='2'){
s2.write(180);
delay(1000);
s2.write(90);
}
else if (key != NO_KEY) {
Serial.println(key);
}
}