Lesson 15 Backing a Car

Share for us
Share on facebook
Share on twitter
Share on pinterest
Share on whatsapp

Introduction

In this lesson, we will use an ultrasonic sensor and some other components to simulate how to back a car.

Components

– 1 * SunFounder Uno board

– 1 * USB data cable

– 1 * Ultrasonic sensor

– 1 * Buzzer

– 1 * LCD1602

– Several jumper wires

– 1 * Breadboard

– 1 * Potentiometer

Experimental Principle

When the distance between the ultrasonic and the obstacle is greater than 5cm and less than 15cm, the buzzer will beep in a low frequency, which means backing a car is in progress. When the distance is less than 5cm, the buzzer will beep in a high frequency.

Experimental Procedures

Step 1: Build the circuit

The schematic diagram

Step 2: Program (Please refer to the example code in LEARN -> Get Tutorials on our website)

Note: Here you need to add a library. Refer to the description in Lesson 12 previously in the manual.

Step 3: Compile the code

Step 4: Upload the sketch to the SunFounder Uno board

Now, if the distance between the ultrasonic and the obstacle is greater than 5cm and less than 15cm, the buzzer will make sounds in a low frequency; if the distance is less than 5cm, the buzzer will alarm and make sounds in a high frequency. At the same time, the current distance between the ultrasonic and the obstacle will display on LCD1602.

Code

/***************************************
name:Backing a Car
function:if the distance between the ultrasonic and the obstacle is greater than 5cm and less than 15cm,
the buzzer will make sounds in a low frequency;
if the distance is less than 5cm, the buzzer will alarm and make sounds in a high frequency.
At the same time, the current distance between the ultrasonic and the obstacle will display on LCD1602.
**************************************/
//Email:support@sunfounder.com
//Website:www.sunfounder.com#include<LiquidCrystal.h>LiquidCrystal lcd(7, 8, 9, 10, 11, 12);//initialize the pin of LCD
const int TrigPin = 2;//Trig attach to pin2
const int EchoPin = 3;//Echo attach to pin3
const int buzzer = 6;//buzzer attach to pin6
float cm;void setup()
{
  Serial.begin(9600); //Sets the data rate in bits per second (baud) for serial data transmission
  //set the below pins as OUTPUT
  pinMode(TrigPin,OUTPUT);
  pinMode(EchoPin,INPUT);
  pinMode(buzzer,OUTPUT);
  lcd.begin(16,2); //Initializes the interface to the LCD screen
  lcd.print(“Reversing radar”); //display “Reversing radar”
  delay(2000); //delay 2s
  lcd.clear();//clear lcd
}void loop()//
{
  //set the frequency the pin Trig sends out pulses
  digitalWrite(TrigPin,LOW);
  delayMicroseconds(2);
  digitalWrite(TrigPin,HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin,LOW);

  cm = pulseIn(EchoPin,HIGH)/58.0;// read the pulses at pin Echo, and record the time between the pulse becoming high and then turning into low, which is the length of a pulse. Then convert the length into cm
  cm = (int(cm * 100.0))/100.0; //turn the distance converted from time into a number showing two decimal places
  if(cm < 0)//If the distance is less than 0
  {
    cm = 0;
  }
  lcd.setCursor(0,0);
  lcd.print(“Distance:”);//show the character “Distance:” on the LCD
  lcd.setCursor(0,1); //Place the cursor at Line 1, Column 0, which means the second   line and first column
  lcd.print(” “);//Add 16 spaces to make sure the remaining characters in Line 1, if any, are cleared
  lcd.setCursor(3,1); // put the cursor at Line 1, Column 3.
  lcd.print(cm); //Display the distance on the LCD
  lcd.setCursor(9,1);//put the cursor at Line 1, Column 9
  lcd.print(“cm”);//Display the character “cm” which is the unit
  delay(100);//delay 100ms

  if(cm < 15 & cm >= 5)//If the distance is 5 – 15 cm,buzzer beeping at low frequency
  {
    digitalWrite(buzzer, HIGH);
    delay(100);
    digitalWrite(buzzer, LOW);
  }
  else if(cm < 5 & cm >= 0)// If the distance is between 0 and 5 cm,buzzer keep beeping ceaselessly
  {
    digitalWrite(buzzer, HIGH);
  }
  else //If the distance is larger than 15cm,
  {
    digitalWrite(buzzer, HIGH);
    delay(100);
    digitalWrite(buzzer, LOW);
    delay(1000);
  }
}

Video