Advertisement
learnelectronics

Arduino Parking Sensor

Mar 1st, 2023
1,573
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Arduino 4.87 KB | Source Code | 0 0
  1. /**************************************************
  2.  *              Arduino Parking Sensor            *
  3.  *              learnelectronics 2023             *
  4.  *              arduino0169@gmail.com             *
  5.  *              www.youtube.com/learnelectronics  *
  6.  *              based on code by Muhammad Ansar   *
  7.  **************************************************/
  8.  
  9. /* No Libraries required*/
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.                                                 // First we will define where the HCSR04 pins are connected
  17.  
  18. #define echo 8                                  //Echo pin
  19. #define trigger 9                               //Trigger pin
  20.  
  21.                                                 //Next we define where the buzzer is connected
  22.  
  23. #define buzzer 7                                //Piezo buzzer pin
  24.  
  25.                                                 //Finally we define where the 3 LED traffic light is connected
  26.  
  27. #define R_led 4                                 //Red Led
  28. #define Y_led 3                                 //Yellow Led
  29. #define G_led 2                                 //Green Led
  30.  
  31.                                                 // Now we create 2 integer (whole number) variables
  32. int distance_cm;                                // Distance to sensor
  33. int flag=0;                                     // Flag set or not
  34.  
  35.                                                 // Setup routine - are pins input or output? Serial comms etc
  36.                                                 // setup routine runs only one time at the beginning
  37.  
  38. void setup() {                                  // Create setup ruotine
  39. Serial.begin(9600);                             //turn on serial comms for debugging and distance reporting
  40.  
  41. pinMode(echo, INPUT);                           // set pin 8 as input (HCSR04 echo pin)
  42. pinMode(trigger, OUTPUT);                       // set pin 9 as ouput (HCSR04 trigger pin)
  43.  
  44. pinMode(buzzer,OUTPUT);                         // set pin 7 as output (buzzer)
  45.  
  46. pinMode(R_led,OUTPUT);                          // set pin 4 as output (red LED)
  47. pinMode(Y_led,OUTPUT);                          // set pin 3 as output (yellow LED)
  48. pinMode(G_led,OUTPUT);                          // set pin 2 as output (green LED)
  49.  
  50. delay(100);                                     //wait 1/10 of a second
  51. }                                               //end setup
  52.  
  53. //***************************************************************************************************************
  54.  
  55.  
  56. void loop() {                                   //Main program loop                                
  57.  
  58.  
  59.  
  60. distance_cm = Ultrasonic_read();                //set the value of variable distance_cm to reading of HRSC04  
  61.  
  62.      if(distance_cm<4){                         //if car is less than 4cm from sensor turn on red led and others off
  63. flag = !flag;                                   // set flag to not flag
  64. digitalWrite(R_led, HIGH);                      // LED Turn On  
  65. digitalWrite(Y_led, LOW);                       // LED Turn Off
  66. digitalWrite(G_led, LOW);                       // LED Turn Off  
  67. }
  68.  
  69. else if(distance_cm>=4 && distance_cm<12){      //if car is between 4 and 12 cm from sensor turn on yellow and others off
  70. flag=0;
  71. digitalWrite(R_led, LOW);                       // LED Turn Off  
  72. digitalWrite(Y_led, HIGH);                      // LED Turn On
  73. digitalWrite(G_led, LOW);                       // LED Turn Off
  74. }
  75.  
  76. else if(distance_cm>=12 && distance_cm<25){     //if car is between 12 and 25cm from sensor turn on green and others off
  77. flag=0;
  78. digitalWrite(R_led, LOW);                       // LED Turn Off  
  79. digitalWrite(Y_led, LOW);                       // LED Turn Off
  80. digitalWrite(G_led, HIGH);                      // LED Turn On
  81.  }
  82. else{                                           //if nothing triggers sensor turn all leds off        
  83. flag=0;
  84. digitalWrite(R_led, LOW);                       // LED Turn Off  
  85. digitalWrite(Y_led, LOW);                       // LED Turn Off
  86. digitalWrite(G_led, LOW);                       // LED Turn Off
  87. }
  88.  
  89. digitalWrite(buzzer, flag);                     //if car is less than 4 cm from sensor turn on buzzer
  90. Serial.print("cm: ");                           //write "cm: " to serial port
  91. Serial.println(distance_cm);                    //write the distance in cm to serial port  
  92. delay(150);
  93. }
  94.  
  95.                                                 //Ultrasonic_read
  96. int Ultrasonic_read(){
  97. digitalWrite(trigger, LOW);                     //trigger off
  98. delayMicroseconds(2);                           //wait
  99. digitalWrite(trigger, HIGH);                    //trigger on
  100. delayMicroseconds(10);                          //wait
  101. long time = pulseIn(echo, HIGH);                //create variable time and make it equal to reading from HRSC04
  102. return distance_cm = time / 28.5 / 2;           //distance in cm is equal to time divided by 28.5 divided by 2
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement