Advertisement
safwan092

Untitled

Nov 12th, 2023
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.50 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. #include<EEPROM.h>
  4. LiquidCrystal_I2C lcd(0x27,16,2);
  5. const int stsp = A0;
  6. const int inc = A1;
  7. const int dec = A2;
  8. const int set = A3;
  9. const int buzz = 9;
  10. const int relay = 8;
  11. int hrs = 0;
  12. int Min = 0;
  13. int sec = 0;
  14. unsigned int check_val = 50;
  15. int add_chk = 0;
  16. int add_hrs = 1;
  17. int add_min = 2;
  18. bool RUN = true;
  19. bool min_flag = true;
  20. bool hrs_flag = true;
  21. void setup()
  22. {
  23. lcd.init();
  24. lcd.init();
  25. lcd.backlight();
  26. lcd.clear();
  27. lcd.setCursor(0, 0);
  28. lcd.print("Hello");
  29. lcd.setCursor(0, 1);
  30. lcd.print("TEAM 4");
  31. pinMode(stsp, INPUT_PULLUP);
  32. pinMode(inc, INPUT_PULLUP);
  33. pinMode(dec, INPUT_PULLUP);
  34. pinMode(set, INPUT_PULLUP);
  35. pinMode(buzz, OUTPUT);
  36. pinMode(relay, OUTPUT);
  37. digitalWrite(relay, LOW);
  38. digitalWrite(buzz, LOW);
  39. if (EEPROM.read(add_chk) != check_val)
  40. {
  41. EEPROM.write(add_chk, check_val);
  42. EEPROM.write(add_hrs, 0);
  43. EEPROM.write(add_min, 1);
  44. }
  45. else
  46. {
  47. hrs = EEPROM.read(add_hrs);
  48. Min = EEPROM.read(add_min);
  49. }
  50. delay(1500);
  51. INIT();
  52. }
  53.  
  54.  
  55. void loop()
  56. {
  57. if (digitalRead(stsp) == LOW)
  58. {
  59. lcd.clear();
  60. delay(250);
  61. RUN = true;
  62. while (RUN)
  63. {
  64. if (digitalRead(stsp) == LOW)
  65. {
  66. delay(1000);
  67. if (digitalRead(stsp) == LOW)
  68. {
  69. digitalWrite(relay, LOW);
  70. lcd.clear();
  71. lcd.setCursor(0, 0);
  72. lcd.print(" TIMER STOPPED");
  73. lcd.setCursor(0, 1);
  74. lcd.print("----------------");
  75. delay(2000);
  76. RUN = false;
  77. INIT();
  78. break;
  79. }
  80. }
  81. digitalWrite(relay, HIGH);
  82. sec = sec - 1;
  83. delay(1000);
  84. if (sec == -1)
  85. {
  86. sec = 59;
  87. Min = Min - 1;
  88. }
  89. if (Min == -1)
  90. {
  91. Min = 59;
  92. hrs = hrs - 1;
  93. }
  94. if (hrs == -1) hrs = 0;
  95. lcd.setCursor(0, 1);
  96. lcd.print("****************");
  97. lcd.setCursor(4, 0);
  98. if (hrs <= 9)
  99. {
  100. lcd.print('0');
  101. }
  102. lcd.print(hrs);
  103. lcd.print(':');
  104. if (Min <= 9)
  105. {
  106. lcd.print('0');
  107. }
  108. lcd.print(Min);
  109. lcd.print(':');
  110. if (sec <= 9)
  111. {
  112. lcd.print('0');
  113. }
  114. lcd.print(sec);
  115. if (hrs == 0 && Min == 0 && sec == 0)
  116. {
  117. digitalWrite(relay, LOW);
  118. lcd.setCursor(4, 0);
  119. RUN = false;
  120. for (int i = 0; i < 20; i++)
  121. {
  122. digitalWrite(buzz, HIGH);
  123. delay(100);
  124. digitalWrite(buzz, LOW);
  125. digitalWrite(relay, HIGH);
  126. delay(100);
  127. }
  128. INIT();
  129. }
  130. }
  131. }
  132. if (digitalRead(set) == LOW)
  133. {
  134. delay(500);
  135. while (min_flag)
  136. {
  137. lcd.clear();
  138. lcd.setCursor(0, 0);
  139. lcd.print("SET MINUTE: ");
  140. lcd.print(Min);
  141. delay(100);
  142. if (digitalRead(inc) == LOW)
  143. {
  144. Min = Min + 1;
  145. if (Min >= 60) Min = 0;
  146. delay(100);
  147. }
  148. if (digitalRead(dec) == LOW)
  149. {
  150. Min = Min - 1;
  151. if (Min <= -1) Min = 0;
  152. delay(100);
  153. }
  154. if (digitalRead(set) == LOW)
  155. {
  156. min_flag = false;
  157. delay(250);
  158. }
  159. }
  160. while (hrs_flag)
  161. {
  162. lcd.clear();
  163. lcd.setCursor(0, 0);
  164. lcd.print("SET HOUR: ");
  165. lcd.print(hrs);
  166. delay(100);
  167. if (digitalRead(inc) == LOW)
  168. {
  169. hrs = hrs + 1;
  170. if (hrs > 23) hrs = 0;
  171. delay(100);
  172. }
  173. if (digitalRead(dec) == LOW)
  174. {
  175. hrs = hrs - 1;
  176. if (hrs <= -1) hrs = 0;
  177. delay(100);
  178. }
  179. if (digitalRead(set) == LOW)
  180. {
  181. hrs_flag = false;
  182. delay(250);
  183. }
  184. }
  185. if (hrs == 0 && Min == 0)
  186. {
  187. lcd.clear();
  188. lcd.setCursor(0, 0);
  189. lcd.print(" INVALID TIME");
  190. delay(2000);
  191.  
  192. }
  193. else
  194. {
  195. EEPROM.write(add_hrs, hrs);
  196. EEPROM.write(add_min, Min);
  197. }
  198. INIT();
  199. }
  200. }
  201.  
  202.  
  203. void INIT()
  204. {
  205. hrs = EEPROM.read(add_hrs);
  206. Min = EEPROM.read(add_min);
  207. sec = 0;
  208. lcd.clear();
  209. lcd.setCursor(0, 0);
  210. lcd.print("Start / Set Time");
  211. lcd.setCursor(4, 1);
  212. if (hrs <= 9)
  213. {
  214. lcd.print('0');
  215. }
  216. lcd.print(hrs);
  217. lcd.print(':');
  218. if (Min <= 9)
  219. {
  220. lcd.print('0');
  221. }
  222. lcd.print(Min);
  223. lcd.print(':');
  224. if (sec <= 9)
  225. {
  226. lcd.print('0');
  227. }
  228. lcd.print(sec);
  229. min_flag = true;
  230. hrs_flag = true;
  231. delay(500);
  232. }
  233.  
  234.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement