Week 12 – Range finder and display

In this week our Arduino project was to let work an ultrasonic sensor,  An ultrasonic sensor is an electronic device that measures the distance of a target object by emitting ultrasonic sound waves, and converts the reflected sound into an electrical signal.

uuultra

This is my ultrasonic range finder or (URF).

HH

I started with collegate my LCD to the Arduino, if you want to see how, go to the week 11 tutorial.

You could follow also this interesting tutorial, it is being useful for me.

I have then added my (URF) to the Arduino in this way

  • VCC to 8

  • TRIG to ~9

  • ECHO to ~10

  • GND to ~11

I add it like this because there was no space due to the LCD.

jj

I followed Christy tutorial and i added the same code.

The actual code.

  • #include <FastIO.h>
    #include <I2CIO.h>
    #include <LCD.h>
    #include <LiquidCrystal.h>
    #include <LiquidCrystal_I2C.h>
    #include <LiquidCrystal_SR.h>
    #include <LiquidCrystal_SR2W.h>
    #include <LiquidCrystal_SR3W.h>

    #include <LiquidCrystal.h>

    /*—–( Import needed libraries )—–*/
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>

    #define echoPin 10 // Echo Pin
    #define trigPin 9 // Trigger Pin
    #define LEDPin 13 // Onboard LED

    int maximumRange = 200; // Maximum range needed
    int minimumRange = 0; // Minimum range needed
    long duration;
    long distance; // Duration used to calculate distance

    LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Set the LCD I2C address

    void setup() /*—-( SETUP: RUNS ONCE )—-*/
    {
    lcd.begin(20,4); // initialize the lcd for 20 chars 4 lines, turn on backlight

    Serial.begin (9600);
    pinMode(11, OUTPUT);
    pinMode(8, OUTPUT);
    pinMode(trigPin, OUTPUT);
    pinMode(echoPin, INPUT);
    pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
    }

    void loop() /*—-( LOOP: RUNS CONSTANTLY )—-*/
    {
    digitalWrite(11, LOW);
    digitalWrite(8, HIGH);
    digitalWrite(trigPin, LOW);
    delayMicroseconds(2);

    digitalWrite(trigPin, HIGH);
    delayMicroseconds(10);

    digitalWrite(trigPin, LOW);
    duration = pulseIn(echoPin, HIGH); // Measures the length of a pulse on echoPin in microseconds
    //waits for the pin to go HIGH, starts timing, then waits for the pin to go LOW and stops timing.
    //Returns the length of the pulse in microseconds.

    //Calculate the distance (in cm) based on the speed of sound.
    distance = duration/58.2;

    if (distance >= maximumRange || distance <= minimumRange){
    /* Send a negative number to computer and Turn LED ON
    to indicate “out of range” */
    Serial.println(“-1”);
    digitalWrite(LEDPin, HIGH);
    lcd.setCursor(0,0);
    lcd.print(“Sonic Range Finder “);
    lcd.setCursor(0,1);
    lcd.print(“The Distance is:- “);
    lcd.setCursor(0,2);
    lcd.print(“-1” );

    }
    else {
    /* Send the distance to the computer using Serial protocol, and
    turn LED OFF to indicate successful reading. */
    Serial.println(distance);
    digitalWrite(LEDPin, LOW);
    }
    lcd.setCursor(0,0); //Start at character 4 on line 0
    lcd.print(“Sonic Range Finder “);
    lcd.setCursor(0,1);
    lcd.print(“The distance is: “);
    lcd.setCursor(0,2);
    lcd.print(distance);
    lcd.print(” cm “);

    delay(500);

    }// –(end main loop )–

 

This should be how it looks like.

loook

It actually work and his measure of the distance is really accurate!

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *