Advertisement
Guest User

Untitled

a guest
Dec 8th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.90 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2.  
  3. // initialize the library with the numbers of the interface pins
  4. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  5.  
  6. const int sensNum = 1, btnLockSt = A5, redLed1 = 6;
  7. int val[1], i, j, k = 0, lockSt = 0;
  8. const int sens[1] = {A1};
  9. int sens1Val = 0;
  10.  
  11. byte c0_00[8] = {
  12.   0b00111,
  13.   0b01111,
  14.   0b11100,
  15.   0b11100,
  16.   0b11100,
  17.   0b11100,
  18.   0b11100,
  19.   0b11100
  20. };
  21.  
  22. byte c0_11[8] = {
  23.   0b00111,
  24.   0b00111,
  25.   0b00111,
  26.   0b00111,
  27.   0b00111,
  28.   0b00111,
  29.   0b11110,
  30.   0b11100
  31. };
  32.  
  33. byte c0_10[8] = {
  34.   0b11100,
  35.   0b11110,
  36.   0b00111,
  37.   0b00111,
  38.   0b00111,
  39.   0b00111,
  40.   0b00111,
  41.   0b00111
  42. };
  43.  
  44. byte c0_01[8] = {
  45.   0b11100,
  46.   0b11100,
  47.   0b11100,
  48.   0b11100,
  49.   0b11100,
  50.   0b11100,
  51.   0b01111,
  52.   0b00111
  53. };
  54.  
  55. byte k1[8] = {
  56.   0b11100,
  57.   0b11100,
  58.   0b11100,
  59.   0b11110,
  60.   0b11110,
  61.   0b11111,
  62.   0b11101,
  63.   0b11101
  64. };
  65.  
  66. byte k2[8] = {
  67.   0b00111,
  68.   0b00111,
  69.   0b00111,
  70.   0b00111,
  71.   0b00111,
  72.   0b00111,
  73.   0b00111,
  74.   0b00111
  75. };
  76.  
  77.  
  78. byte k3[8] = {
  79.   0b11100,
  80.   0b11100,
  81.   0b11100,
  82.   0b11100,
  83.   0b11100,
  84.   0b11100,
  85.   0b11100,
  86.   0b11100
  87. };
  88.  
  89.  
  90. byte k4[8] = {
  91.   0b10111,
  92.   0b10111,
  93.   0b11111,
  94.   0b01111,
  95.   0b01111,
  96.   0b00111,
  97.   0b00111,
  98.   0b00111
  99. };
  100.  
  101. void setup() {
  102.   for (i = 0; i < sensNum; i++) {
  103.     pinMode(sens[i], INPUT);
  104.   }
  105.   pinMode(btnLockSt, INPUT);
  106.   pinMode(redLed1, OUTPUT);
  107.  
  108.   digitalWrite(redLed1, LOW);
  109.  
  110.   lcd.createChar(0, c0_00);
  111.   lcd.createChar(1, c0_01);
  112.   lcd.createChar(2, c0_10);
  113.   lcd.createChar(3, c0_11);
  114.   lcd.createChar(4, k1);
  115.   lcd.createChar(5, k2);
  116.   lcd.createChar(6, k3);
  117.   lcd.createChar(7, k4);
  118.  
  119.  
  120.   lcd.begin(16, 2);
  121.  
  122.   lcd.clear();
  123.   lcd.setCursor(0, 0);
  124.   lcd.print("HomeSafe");
  125.   lcd.setCursor(0, 1);
  126.   lcd.print("Loading...");
  127.   delay(1500);
  128.   lcd.clear();
  129.   lcd.setCursor(0, 0);
  130.   lockSt = 0;
  131. }
  132.  
  133. void loop() {
  134.   lcd.clear();
  135.   readLockSt();
  136.   checkSensors();
  137.   writeLcd();
  138.   writeTime();
  139.   writeLeds();
  140.   delay(500);
  141. }
  142.  
  143. void readLockSt() {
  144.   if (analogRead(btnLockSt) > 1020) {
  145.     if (lockSt > 0) {
  146.       lockSt = 0;
  147.       unlockScreen();
  148.     } else {
  149.       lockSt = 1;
  150.       lockScreen();
  151.     }
  152.   }
  153. }
  154.  
  155. void checkSensors() {
  156.   for (i = 0; i < sensNum; i++) {
  157.     j = analogRead(sens[i]);
  158.     if (j > 1019) {
  159.       val[i] = 0;
  160.     } else {
  161.       val[i] = 1;
  162.       k = 1;
  163.     }
  164.   }
  165. }
  166.  
  167. void writeLcd() {
  168.   lcd.setCursor(0, 0);
  169.   lcd.print("LOCKED!");
  170.  
  171.   lcd.setCursor(0, 1);
  172.  
  173.   j = 0;
  174.   for (i = 0; i < sensNum; i++) {
  175.     if (val[i] > 0) {
  176.       j++;
  177.     }
  178.   }
  179.  
  180.  
  181.   if (lockSt > 0) {
  182.     writeLocked();
  183.   } else {
  184.     writeUnlocked();
  185.   }
  186.  
  187. }
  188.  
  189. void writeLocked() {
  190.   lcd.setCursor(0, 0);
  191.   lcd.print("LOCKED!");
  192.  
  193.   lcd.setCursor(0, 1);
  194.  
  195.   if (j < 1) {
  196.  
  197.     //Write Big O
  198.     lcd.clear();
  199.     lcd.setCursor(0, 0);
  200.     lcd.write(byte(0));
  201.     lcd.setCursor(1, 0);
  202.     lcd.write(byte(2));
  203.     lcd.setCursor(0, 1);
  204.     lcd.write(byte(1));
  205.     lcd.setCursor(1, 1);
  206.     lcd.write(byte(3));
  207.     //Write Big N
  208.     lcd.setCursor(3, 0);
  209.     lcd.write(byte(4));
  210.     lcd.setCursor(4, 0);
  211.     lcd.write(byte(5));
  212.     lcd.setCursor(3, 1);
  213.     lcd.write(byte(6));
  214.     lcd.setCursor(4, 1);
  215.     lcd.write(byte(7));
  216.  
  217.   } else if (j > 0 && j < 2) {
  218.     j = 0;
  219.     lcd.print("");
  220.     for (i = 0; i < sensNum; i++) {
  221.       if (val[i] > 0) {
  222.         lcd.print(i);
  223.       }
  224.     }
  225.     lcd.print(": OPEN");
  226.   } else {
  227.     j = 0;
  228.     lcd.print("");
  229.     for (i = 0; i < sensNum; i++) {
  230.       if (val[i] > 0) {
  231.         if (j > 0) {
  232.           lcd.print(",");
  233.         }
  234.         lcd.print(i);
  235.         j = j + 1;
  236.       }
  237.     }
  238.     lcd.print(": OPEN");
  239.   }
  240. }
  241.  
  242. void writeUnlocked() {
  243.   lcd.setCursor(0, 0);
  244.   lcd.print("UNLOCKED!");
  245.  
  246.   lcd.setCursor(0, 1);
  247.  
  248.   if (j < 1) {
  249.     lcd.print("OK,BUT UNLOCKED!");
  250.   } else if (j > 0 && j < 2) {
  251.     j = 0;
  252.     lcd.print("");
  253.     for (i = 0; i < sensNum; i++) {
  254.       if (val[i] > 0) {
  255.         lcd.print(i);
  256.       }
  257.     }
  258.     lcd.print(": OPEN");
  259.   } else {
  260.     j = 0;
  261.     lcd.print("");
  262.     for (i = 0; i < sensNum; i++) {
  263.       if (val[i] > 0) {
  264.         if (j > 0) {
  265.           lcd.print(",");
  266.         }
  267.         lcd.print(i);
  268.         j = j + 1;
  269.       }
  270.     }
  271.     lcd.print(": OPEN");
  272.   }
  273. }
  274.  
  275. void writeTime() {
  276.   lcd.setCursor(11, 0);
  277.   lcd.print("00:00");
  278. }
  279.  
  280. void lockScreen() {
  281.   lcd.clear();
  282.   lcd.setCursor(0, 0);
  283.   lcd.print("YOU ARE LOCKED!!");
  284.   delay(3000);
  285.   lcd.clear();
  286. }
  287.  
  288. void unlockScreen() {
  289.   lcd.clear();
  290.   lcd.setCursor(0, 0);
  291.   lcd.print("YOU ARE UNLOCKED");
  292.   delay(3000);
  293.   lcd.clear();
  294. }
  295.  
  296. void writeLeds() {
  297.   if (k > 0 && lockSt > 0) {
  298.     k = 0;
  299.     lcd.clear();
  300.     lcd.setCursor(0,0);
  301.     lcd.print("WARNING !!!");
  302.     lcd.setCursor(0,1);
  303.     lcd.print("ALARM ACTIVATED!");
  304.     for (i = 0; i < 5; i++) {
  305.      
  306.       digitalWrite(redLed1, HIGH);
  307.       delay(600);
  308.       digitalWrite(redLed1, LOW);
  309.       delay(350);
  310.     }
  311.     lcd.clear();
  312.   }
  313.  
  314. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement