Advertisement
safwan092

Untitled

Mar 21st, 2022
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.08 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <Servo.h>
  3. #include <LiquidCrystal_I2C.h>
  4.  
  5. Servo servo;
  6. LiquidCrystal_I2C lcd(0x27, 16, 2);
  7.  
  8. #define green_LED_parking_1 2
  9. #define red_LED_parking_1 3
  10. #define green_LED_parking_2 4
  11. #define red_LED_parking_2 5
  12. #define green_LED_parking_3 6
  13. #define red_LED_parking_3 7
  14. #define sensor_parking_1 8
  15. #define sensor_parking_2 9
  16. #define sensor_parking_3 10
  17. #define servo_pin 11 //PWM for Servo
  18. #define sensor_entrance 12
  19.  
  20. int emptySpaces = 3;
  21.  
  22. bool parking_1 = 0;
  23. bool parking_2 = 0;
  24. bool parking_3 = 0;
  25.  
  26. void setup() {
  27. initIO();
  28. delay(5000);
  29. }
  30.  
  31. void loop() {
  32.  
  33. chkSensors();
  34.  
  35. lcd.setCursor(0, 0);
  36. // "****************"
  37. lcd.print("Parking Empty:");
  38. lcd.setCursor(0, 1);
  39. // "****************"
  40. lcd.print(emptySpaces);
  41. lcd.print(" ");
  42.  
  43. if (digitalRead(sensor_entrance) == 0) {
  44. Serial.println(digitalRead(sensor_entrance));
  45. Serial.print(emptySpaces);
  46. //check empty spaces
  47. if (emptySpaces > 0) {
  48. //open gate
  49. servo.attach(servo_pin);
  50. servo.write(90);
  51. delay(3000);
  52. servo.write(0);
  53. delay(500);
  54. servo.detach();
  55. }
  56. else {
  57. //keep gate closed
  58. servo.attach(servo_pin);
  59. delay(500);
  60. servo.write(0);
  61. delay(500);
  62. servo.detach();
  63. }
  64. }
  65.  
  66. }// end of LOOP
  67.  
  68. void initIO() {
  69. Serial.begin(9600);
  70. pinMode(green_LED_parking_1, OUTPUT);
  71. pinMode(green_LED_parking_2, OUTPUT);
  72. pinMode(green_LED_parking_3, OUTPUT);
  73. pinMode(red_LED_parking_1, OUTPUT);
  74. pinMode(red_LED_parking_2, OUTPUT);
  75. pinMode(red_LED_parking_3, OUTPUT);
  76. pinMode(sensor_parking_1, INPUT);
  77. pinMode(sensor_parking_2, INPUT);
  78. pinMode(sensor_parking_3, INPUT);
  79. pinMode(sensor_entrance, INPUT);
  80. digitalWrite(green_LED_parking_1, 1);
  81. digitalWrite(green_LED_parking_2, 1);
  82. digitalWrite(green_LED_parking_3, 1);
  83. digitalWrite(red_LED_parking_1, 0);
  84. digitalWrite(red_LED_parking_2, 0);
  85. digitalWrite(red_LED_parking_3, 0);
  86. lcd.init();
  87. lcd.init();
  88. lcd.backlight();
  89. lcd.setCursor(0, 0);
  90. lcd.print("Starting...");
  91. servo.attach(servo_pin);
  92. servo.write(0);
  93. servo.detach();
  94. }
  95.  
  96. void chkSensors() {
  97. parking_1 = digitalRead(sensor_parking_1);
  98. parking_2 = digitalRead(sensor_parking_2);
  99. parking_3 = digitalRead(sensor_parking_3);
  100.  
  101. emptySpaces = parking_1 + parking_2 + parking_3;
  102.  
  103. if (parking_1 == 0) {
  104. digitalWrite(green_LED_parking_1, 0);
  105. digitalWrite(red_LED_parking_1, 1);
  106.  
  107. }
  108. else if (parking_1 == 1) {
  109. digitalWrite(green_LED_parking_1, 1);
  110. digitalWrite(red_LED_parking_1, 0);
  111. }
  112. if (parking_2 == 0) {
  113. digitalWrite(green_LED_parking_2, 0);
  114. digitalWrite(red_LED_parking_2, 1);
  115. }
  116. else if (parking_2 == 1) {
  117. digitalWrite(green_LED_parking_2, 1);
  118. digitalWrite(red_LED_parking_2, 0);
  119. }
  120. if (parking_3 == 0) {
  121. digitalWrite(green_LED_parking_3, 0);
  122. digitalWrite(red_LED_parking_3, 1);
  123. }
  124. else if (parking_3 == 1) {
  125. digitalWrite(green_LED_parking_3, 1);
  126. digitalWrite(red_LED_parking_3, 0);
  127. }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement