Facebook
From shivam, 1 Year ago, written in C++.
Embed
Download Paste or View Raw
Hits: 96
  1. // Viral Science www.viralsciencecreativity.com www.youtube.com/c/viralscience
  2. // Arduino Car Parking System
  3.  
  4. #include <Wire.h>
  5. #include <LiquidCrystal_I2C.h>
  6. LiquidCrystal_I2C lcd(0x27, 16, 2); // Change the HEX address
  7. #include <Servo.h>
  8.  
  9. Servo myservo1;
  10.  
  11. int IR1 = 2;
  12. int IR2 = 4;
  13.  
  14. int Slot = 4; // Enter Total number of parking Slots
  15.  
  16. int flag1 = 0;
  17. int flag2 = 0;
  18.  
  19. void setup()
  20. {
  21.   lcd.init();
  22.   lcd.backlight();
  23.   pinMode(IR1, INPUT);
  24.   pinMode(IR2, INPUT);
  25.  
  26.   myservo1.attach(3);
  27.   myservo1.write(100);
  28.  
  29.   lcd.setCursor(0, 0);
  30.   lcd.print("     ARDUINO    ");
  31.   lcd.setCursor(0, 1);
  32.   lcd.print(" PARKING SYSTEM ");
  33.   delay(2000);
  34.   lcd.clear();
  35.   Serial.begin(9600)
  36. }
  37.  
  38. void loop()
  39. {
  40.   Serial.println("loop start");
  41.  
  42.   if (digitalRead(IR1) == LOW && flag1 == 0)
  43.   {
  44.     Serial.println("IR1: LOW flag1: 0");
  45.     if (Slot > 0)
  46.     {
  47.       Serial.print("X ");
  48.       Serial.println(Slot);
  49.       flag1 = 1;
  50.       if (flag2 == 0)
  51.       {
  52.         myservo1.write(0);
  53.         Slot = Slot - 1;
  54.       }
  55.     }
  56.     else
  57.     {
  58.       Serial.println("Full");
  59.       lcd.setCursor(0, 0);
  60.       lcd.print("    SORRY :(    ");
  61.       lcd.setCursor(0, 1);
  62.       lcd.print("  Parking Full  ");
  63.       delay(3000);
  64.       lcd.clear();
  65.     }
  66.   }
  67.  
  68.   if (digitalRead(IR2) == LOW && flag2 == 0)
  69.   {
  70.     Serial.println("IR2: LOW flag2: 0");
  71.     flag2 = 1;
  72.     if (flag1 == 0)
  73.     {
  74.       myservo1.write(0);
  75.       Slot = Slot + 1;
  76.     }
  77.   }
  78.  
  79.   if (flag1 == 1 && flag2 == 1)
  80.   {
  81.     Serial.println("flag1: 1 flag2: 1");
  82.     delay(1000);
  83.     myservo1.write(100);
  84.     flag1 = 0, flag2 = 0;
  85.   }
  86.  
  87.   lcd.setCursor(0, 0);
  88.   lcd.print("    WELCOME!    ");
  89.   lcd.setCursor(0, 1);
  90.   lcd.print("Slot Left: ");
  91.   lcd.print(Slot);
  92.   Serial.println("loop end");
  93. }
  94.