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.
This is my ultrasonic range finder or (URF).
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.
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 LEDint maximumRange = 200; // Maximum range needed
int minimumRange = 0; // Minimum range needed
long duration;
long distance; // Duration used to calculate distanceLiquidCrystal_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 backlightSerial.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 )–