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$)
Ultrasonic sensor (2$), HC-SR04
A 20x4 Display (6$)
A IIC/I2C/TWI/SPI Serial Interface Board Module (2$)
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
Take care of the heat, it can easily destroy the display and the module!!!
Step 3: The Sensor
Step 4: Assembly
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/Jana-MarieArduino-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 changed 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!!!!
Jana