Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**************************************************
- * Arduino Parking Sensor *
- * learnelectronics 2023 *
- * arduino0169@gmail.com *
- * www.youtube.com/learnelectronics *
- * based on code by Muhammad Ansar *
- **************************************************/
- /* No Libraries required*/
- // First we will define where the HCSR04 pins are connected
- #define echo 8 //Echo pin
- #define trigger 9 //Trigger pin
- //Next we define where the buzzer is connected
- #define buzzer 7 //Piezo buzzer pin
- //Finally we define where the 3 LED traffic light is connected
- #define R_led 4 //Red Led
- #define Y_led 3 //Yellow Led
- #define G_led 2 //Green Led
- // Now we create 2 integer (whole number) variables
- int distance_cm; // Distance to sensor
- int flag=0; // Flag set or not
- // Setup routine - are pins input or output? Serial comms etc
- // setup routine runs only one time at the beginning
- void setup() { // Create setup ruotine
- Serial.begin(9600); //turn on serial comms for debugging and distance reporting
- pinMode(echo, INPUT); // set pin 8 as input (HCSR04 echo pin)
- pinMode(trigger, OUTPUT); // set pin 9 as ouput (HCSR04 trigger pin)
- pinMode(buzzer,OUTPUT); // set pin 7 as output (buzzer)
- pinMode(R_led,OUTPUT); // set pin 4 as output (red LED)
- pinMode(Y_led,OUTPUT); // set pin 3 as output (yellow LED)
- pinMode(G_led,OUTPUT); // set pin 2 as output (green LED)
- delay(100); //wait 1/10 of a second
- } //end setup
- //***************************************************************************************************************
- void loop() { //Main program loop
- distance_cm = Ultrasonic_read(); //set the value of variable distance_cm to reading of HRSC04
- if(distance_cm<4){ //if car is less than 4cm from sensor turn on red led and others off
- flag = !flag; // set flag to not flag
- digitalWrite(R_led, HIGH); // LED Turn On
- digitalWrite(Y_led, LOW); // LED Turn Off
- digitalWrite(G_led, LOW); // LED Turn Off
- }
- else if(distance_cm>=4 && distance_cm<12){ //if car is between 4 and 12 cm from sensor turn on yellow and others off
- flag=0;
- digitalWrite(R_led, LOW); // LED Turn Off
- digitalWrite(Y_led, HIGH); // LED Turn On
- digitalWrite(G_led, LOW); // LED Turn Off
- }
- else if(distance_cm>=12 && distance_cm<25){ //if car is between 12 and 25cm from sensor turn on green and others off
- flag=0;
- digitalWrite(R_led, LOW); // LED Turn Off
- digitalWrite(Y_led, LOW); // LED Turn Off
- digitalWrite(G_led, HIGH); // LED Turn On
- }
- else{ //if nothing triggers sensor turn all leds off
- flag=0;
- digitalWrite(R_led, LOW); // LED Turn Off
- digitalWrite(Y_led, LOW); // LED Turn Off
- digitalWrite(G_led, LOW); // LED Turn Off
- }
- digitalWrite(buzzer, flag); //if car is less than 4 cm from sensor turn on buzzer
- Serial.print("cm: "); //write "cm: " to serial port
- Serial.println(distance_cm); //write the distance in cm to serial port
- delay(150);
- }
- //Ultrasonic_read
- int Ultrasonic_read(){
- digitalWrite(trigger, LOW); //trigger off
- delayMicroseconds(2); //wait
- digitalWrite(trigger, HIGH); //trigger on
- delayMicroseconds(10); //wait
- long time = pulseIn(echo, HIGH); //create variable time and make it equal to reading from HRSC04
- return distance_cm = time / 28.5 / 2; //distance in cm is equal to time divided by 28.5 divided by 2
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement