Introduction: Arduino Ultrasonic Range Finder, With I²C Lcd Display!

Hello,

in this project i want to show and explain you a range sensor with ultrasonic and a 20x04 lcd screen. I wrote the code for this project myself and added lots of comments, so that everybody can understand it and use it for other projects (maybe a light range sensor?!). It is easy to build and much more easier to program, it just requires a few cheap parts and can run on battery, for a portable rangefinder.

The maximum rated range is 500 cm, the range is measured 20 times per seccond. It is Displayed on a lcd screen which is 20x4 chars big, it has a custom start message, and it can have a custom design while measuring. It will have a backlight LED and can run on every arduino, which has I²C communication. That mean you can run it on an Arduino nano, which is very small. It also requires 5V so it has to be a 5V version of an Arduino.

Step 1: What Do You Need & Tools

We dont need much things, the parts should be less then 15$ (without arduino, with arduino may 25-35$):

Parts:

Arduino (5-55$) , http://tinyurl.com/pk2wdt3
Ultrasonic sensor (2$),  HC-SR04  , http://tinyurl.com/d3ss7tl
A 20x4 Display (6$) , http://tinyurl.com/pbk35ry
A IIC/I2C/TWI/SP​​I Serial Interface Board Module (2$) , http://tinyurl.com/nl2tr2k
Some wires
a Breadboard
A USB cable

Software:

Arduino , www.Arduino.cc

wire.h library (should be with the Arduino software)
LiquidCrystal_I2C.h library  for the Display
NewPing.h library for the sensor


Tools:

what are tools? D:

(no tools needed, yay)


Additional:

a Case...

Step 2: The Display

Now we need to connect the IIC I2C TWI SPI Serial Interface Board Module to the display, that allows us to easily use the Display with the I²C bus of the Arduino ( nearly every Arduino/Atmel processor can communicate with I²C, it just need a SDA and a SCL pin). Solder the module to the display ( picture 2 ).

Take care of the heat, it can easily destroy the display and the module!!!

Step 3: The Sensor

The ultrasonic sensor is a very good one, its part number is HC-SR04, it is one with a range of 1cm-500cm. It is a good build one, which is easy to handle and to use.

Step 4: Assembly

Lets assembly it, plug the VCC pins of the Display and the Sensor to the +5V pin of the Arduino, plug the GND pins of the Display and the Sensor to GND of the Arduino.

Now plug the TRIG pin of the Ultrasonic Sensor to pin 12 of your Arduino
and the ECHO pin to pin 11 of your Arduino.

Sensor:

VCC -> +5V
GND -> 0V
TRIG -> pin 12
ECHO -> pin 11



Plug the SDA pin of the display to pin A4 of your Arduino
and the SCL pin of the display to A5 of your Arduino


Display:

VCC  -> +5V
GND -> 0V
SDA -> A4
SCL -> A5

Step 5: Code

Now my favorite chapter, because i wrote the code myself, what made my day, beacuse im not such a good programmer :)

The code is made for the Arduino Uno, you can find it here:

https://github.com/Jan--Henrik/Arduino-ultrasonic-rangefinder

I wrote many commands, to help you understanding it.

You can add a custom startup message (line 57), also you can add a custom design while measuring ( line 87 )


Feel free to comment bugs, addictions and things to make it better!!! :)
Also feel free to comment if you amde the code for other processors (like the Attiny85)!!

Step 6: Finishing

SUCCESS!!! :)

Now your first self build arduino range sensor should work!! congratulations!!

Ideas:

Code it for other processors/platforms
make a nice case
use other parts

troubleshooting:


Display shows bars:

unplug power source, then wait 5 secconds and plug it in again. Sometimes there is a bug, that the display dont refresh :/

may SDA and SCL are reversed


Sensor dont work:

TRIG and ECHO are switched


Display, Arduino and LED´s fade out:

you made a short circuit, unplug your power source immediately!!!!

Other Pages:

http://janhenrik.org/

http://electronics.janhenrik.org/

https://www.facebook.com/JanHenrikHemsingFotografi...



Thank you for Reading, feel free to comment and Vote for me in a Contest!!!

greets Jan Henrik

Comments

author
minoo.ekrani made it! (author)2014-11-09

plz send me ur code

author
ecozcelik made it! (author)2014-09-02

sketch_sep02a.ino:23:53: error: 'POSITIVE' was not declared in this scope,

it gives me this eror how can I fix

author
Jan_Henrik made it! (author)Jan_Henrik2014-09-02

Hi,

my sketch is kind of outdated, I will update it as soon as I can :)

author
Hariharan. GTH made it! (author)2014-08-30

i'm using I2C/TWI 1602 and a 16X2 display , did i wrongly connect the twi interface to the display?

author
Jan_Henrik made it! (author)Jan_Henrik2014-08-31

oh, did you change the code for a 16x2 display? I used a 16x4

author
Hariharan. GTH made it! (author)2014-08-30

what is mean by switching sda and scl , is my interface connection is correct.please check it , deadline to submit my project is fast approaching.please reply

Photo0249.jpgPhoto0248.jpg
author
Jan_Henrik made it! (author)Jan_Henrik2014-08-30

thats interresting, has your display the right controller for the i²c interface?

author
Hariharan. GTH made it! (author)2014-08-30

Display showing bars instead of characters .. what's de solution?

author
Jan_Henrik made it! (author)Jan_Henrik2014-08-30

switch sda and scl

author
Hariharan. GTH made it! (author)2014-08-25

i 'm getting an error POSITIVE not declared under this scope.Tell me the correct LCD library

Capture.JPG
author
Jan_Henrik made it! (author)Jan_Henrik2014-08-25

Hi, this library is for an I²C Display, but you´re right, it is outdated. I will fix it in the afternoon, Thank you for telling me :)

author
Hariharan. GTH made it! (author)Hariharan. GTH2014-08-26

problem solved i used liquid crystal 1.2.1 downloaded from this site https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads done compling . thanks for ur code.

author
Jan_Henrik made it! (author)Jan_Henrik2014-08-26

Awesome! Thanks! :)

author
Fenex made it! (author)2014-06-22

Hey :)

Really cool instructable. I already ordered the parts to build it. Just one question: what's the accuracy of the measurement?

author
Jan_Henrik made it! (author)Jan_Henrik2014-06-22

Hi, the accuracy at 20°C is 3,4% :)

About This Instructable

38,858views

89favorites

License:

More by Jan_Henrik:How to 3D-Print multicolored obejctsPhotographyHow to make a diffusor for your LED Matrix
Add instructable to: