safwan092

Untitled

Dec 20th, 2022
127
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. #include <Servo.h> //includes the servo library
  4. LiquidCrystal_I2C lcd(0x27, 20, 4);
  5.  
  6. Servo myservo;
  7.  
  8. #define ir_enter 2
  9. #define ir_back 4
  10.  
  11. #define ir_car1 5
  12. #define ir_car2 6
  13. #define ir_car3 7
  14. #define ir_car4 8
  15. #define ir_car5 9
  16. #define ir_car6 10
  17.  
  18. int S1 = 0, S2 = 0, S3 = 0, S4 = 0, S5 = 0, S6 = 0;
  19. int flag1 = 0, flag2 = 0;
  20. int slot = 6;
  21.  
  22. void setup() {
  23. Serial.begin(9600);
  24.  
  25. pinMode(ir_car1, INPUT);
  26. pinMode(ir_car2, INPUT);
  27. pinMode(ir_car3, INPUT);
  28. pinMode(ir_car4, INPUT);
  29. pinMode(ir_car5, INPUT);
  30. pinMode(ir_car6, INPUT);
  31.  
  32. pinMode(ir_enter, INPUT);
  33. pinMode(ir_back, INPUT);
  34.  
  35. myservo.attach(3);
  36. myservo.write(90);
  37.  
  38. lcd.init(); // initialize the lcd
  39. lcd.init();
  40. // Print a message to the LCD.
  41. lcd.backlight();
  42. lcd.setCursor (0, 1);
  43. lcd.print(" Car parking ");
  44. lcd.setCursor (0, 2);
  45. lcd.print(" System ");
  46. delay (2000);
  47. lcd.clear();
  48.  
  49. Read_Sensor();
  50.  
  51. int total = S1 + S2 + S3 + S4 + S5 + S6;
  52. slot = slot - total;
  53. }
  54.  
  55. void loop() {
  56.  
  57. Read_Sensor();
  58.  
  59. lcd.setCursor (0, 0);
  60. lcd.print(" Have Slot: ");
  61. lcd.print(slot);
  62. lcd.print(" ");
  63.  
  64. lcd.setCursor (0, 1);
  65. if (S1 == 1) {
  66. lcd.print("S1:Fill ");
  67. }
  68. else {
  69. lcd.print("S1:Empty");
  70. }
  71.  
  72. lcd.setCursor (10, 1);
  73. if (S2 == 1) {
  74. lcd.print("S2:Fill ");
  75. }
  76. else {
  77. lcd.print("S2:Empty");
  78. }
  79.  
  80. lcd.setCursor (0, 2);
  81. if (S3 == 1) {
  82. lcd.print("S3:Fill ");
  83. }
  84. else {
  85. lcd.print("S3:Empty");
  86. }
  87.  
  88. lcd.setCursor (10, 2);
  89. if (S4 == 1) {
  90. lcd.print("S4:Fill ");
  91. }
  92. else {
  93. lcd.print("S4:Empty");
  94. }
  95.  
  96. lcd.setCursor (0, 3);
  97. if (S5 == 1) {
  98. lcd.print("S5:Fill ");
  99. }
  100. else {
  101. lcd.print("S5:Empty");
  102. }
  103.  
  104. lcd.setCursor (10, 3);
  105. if (S6 == 1) {
  106. lcd.print("S6:Fill ");
  107. }
  108. else {
  109. lcd.print("S6:Empty");
  110. }
  111.  
  112. if (digitalRead (ir_enter) == 0 && flag1 == 0) {
  113. if (slot > 0) {
  114. flag1 = 1;
  115. if (flag2 == 0) {
  116. myservo.write(180);
  117. slot = slot - 1;
  118. }
  119. } else {
  120. lcd.setCursor (0, 0);
  121. lcd.print(" Sorry Parking Full ");
  122. delay(1500);
  123. }
  124. }
  125.  
  126. if (digitalRead (ir_back) == 0 && flag2 == 0) {
  127. flag2 = 1;
  128. if (flag1 == 0) {
  129. myservo.write(180);
  130. slot = slot + 1;
  131. }
  132. }
  133.  
  134. if (flag1 == 1 && flag2 == 1) {
  135. delay (1000);
  136. myservo.write(90);
  137. flag1 = 0, flag2 = 0;
  138. }
  139.  
  140. delay(1);
  141. }
  142.  
  143. void Read_Sensor() {
  144. S1 = 0, S2 = 0, S3 = 0, S4 = 0, S5 = 0, S6 = 0;
  145.  
  146. if (digitalRead(ir_car1) == 0) {
  147. S1 = 1;
  148. }
  149. if (digitalRead(ir_car2) == 0) {
  150. S2 = 1;
  151. }
  152. if (digitalRead(ir_car3) == 0) {
  153. S3 = 1;
  154. }
  155. if (digitalRead(ir_car4) == 0) {
  156. S4 = 1;
  157. }
  158. if (digitalRead(ir_car5) == 0) {
  159. S5 = 1;
  160. }
  161. if (digitalRead(ir_car6) == 0) {
  162. S6 = 1;
  163. }
  164. }
Advertisement
Add Comment
Please, Sign In to add comment