Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- // initialize the library with the numbers of the interface pins
- LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
- const int sensNum = 1, btnLockSt = A5, redLed1 = 6;
- int val[1], i, j, k = 0, lockSt = 0;
- const int sens[1] = {A1};
- int sens1Val = 0;
- byte c0_00[8] = {
- 0b00111,
- 0b01111,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100
- };
- byte c0_11[8] = {
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b11110,
- 0b11100
- };
- byte c0_10[8] = {
- 0b11100,
- 0b11110,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111
- };
- byte c0_01[8] = {
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b01111,
- 0b00111
- };
- byte k1[8] = {
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11110,
- 0b11110,
- 0b11111,
- 0b11101,
- 0b11101
- };
- byte k2[8] = {
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111,
- 0b00111
- };
- byte k3[8] = {
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100,
- 0b11100
- };
- byte k4[8] = {
- 0b10111,
- 0b10111,
- 0b11111,
- 0b01111,
- 0b01111,
- 0b00111,
- 0b00111,
- 0b00111
- };
- void setup() {
- for (i = 0; i < sensNum; i++) {
- pinMode(sens[i], INPUT);
- }
- pinMode(btnLockSt, INPUT);
- pinMode(redLed1, OUTPUT);
- digitalWrite(redLed1, LOW);
- lcd.createChar(0, c0_00);
- lcd.createChar(1, c0_01);
- lcd.createChar(2, c0_10);
- lcd.createChar(3, c0_11);
- lcd.createChar(4, k1);
- lcd.createChar(5, k2);
- lcd.createChar(6, k3);
- lcd.createChar(7, k4);
- lcd.begin(16, 2);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("HomeSafe");
- lcd.setCursor(0, 1);
- lcd.print("Loading...");
- delay(1500);
- lcd.clear();
- lcd.setCursor(0, 0);
- lockSt = 0;
- }
- void loop() {
- lcd.clear();
- readLockSt();
- checkSensors();
- writeLcd();
- writeTime();
- writeLeds();
- delay(500);
- }
- void readLockSt() {
- if (analogRead(btnLockSt) > 1020) {
- if (lockSt > 0) {
- lockSt = 0;
- unlockScreen();
- } else {
- lockSt = 1;
- lockScreen();
- }
- }
- }
- void checkSensors() {
- for (i = 0; i < sensNum; i++) {
- j = analogRead(sens[i]);
- if (j > 1019) {
- val[i] = 0;
- } else {
- val[i] = 1;
- k = 1;
- }
- }
- }
- void writeLcd() {
- lcd.setCursor(0, 0);
- lcd.print("LOCKED!");
- lcd.setCursor(0, 1);
- j = 0;
- for (i = 0; i < sensNum; i++) {
- if (val[i] > 0) {
- j++;
- }
- }
- if (lockSt > 0) {
- writeLocked();
- } else {
- writeUnlocked();
- }
- }
- void writeLocked() {
- lcd.setCursor(0, 0);
- lcd.print("LOCKED!");
- lcd.setCursor(0, 1);
- if (j < 1) {
- //Write Big O
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.write(byte(0));
- lcd.setCursor(1, 0);
- lcd.write(byte(2));
- lcd.setCursor(0, 1);
- lcd.write(byte(1));
- lcd.setCursor(1, 1);
- lcd.write(byte(3));
- //Write Big N
- lcd.setCursor(3, 0);
- lcd.write(byte(4));
- lcd.setCursor(4, 0);
- lcd.write(byte(5));
- lcd.setCursor(3, 1);
- lcd.write(byte(6));
- lcd.setCursor(4, 1);
- lcd.write(byte(7));
- } else if (j > 0 && j < 2) {
- j = 0;
- lcd.print("");
- for (i = 0; i < sensNum; i++) {
- if (val[i] > 0) {
- lcd.print(i);
- }
- }
- lcd.print(": OPEN");
- } else {
- j = 0;
- lcd.print("");
- for (i = 0; i < sensNum; i++) {
- if (val[i] > 0) {
- if (j > 0) {
- lcd.print(",");
- }
- lcd.print(i);
- j = j + 1;
- }
- }
- lcd.print(": OPEN");
- }
- }
- void writeUnlocked() {
- lcd.setCursor(0, 0);
- lcd.print("UNLOCKED!");
- lcd.setCursor(0, 1);
- if (j < 1) {
- lcd.print("OK,BUT UNLOCKED!");
- } else if (j > 0 && j < 2) {
- j = 0;
- lcd.print("");
- for (i = 0; i < sensNum; i++) {
- if (val[i] > 0) {
- lcd.print(i);
- }
- }
- lcd.print(": OPEN");
- } else {
- j = 0;
- lcd.print("");
- for (i = 0; i < sensNum; i++) {
- if (val[i] > 0) {
- if (j > 0) {
- lcd.print(",");
- }
- lcd.print(i);
- j = j + 1;
- }
- }
- lcd.print(": OPEN");
- }
- }
- void writeTime() {
- lcd.setCursor(11, 0);
- lcd.print("00:00");
- }
- void lockScreen() {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("YOU ARE LOCKED!!");
- delay(3000);
- lcd.clear();
- }
- void unlockScreen() {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("YOU ARE UNLOCKED");
- delay(3000);
- lcd.clear();
- }
- void writeLeds() {
- if (k > 0 && lockSt > 0) {
- k = 0;
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("WARNING !!!");
- lcd.setCursor(0,1);
- lcd.print("ALARM ACTIVATED!");
- for (i = 0; i < 5; i++) {
- digitalWrite(redLed1, HIGH);
- delay(600);
- digitalWrite(redLed1, LOW);
- delay(350);
- }
- lcd.clear();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement