Skip to content

Instantly share code, notes, and snippets.

@ced404
Created January 26, 2014 16:03
Show Gist options
  • Save ced404/8634860 to your computer and use it in GitHub Desktop.
Save ced404/8634860 to your computer and use it in GitHub Desktop.
Arduino ultrasonic sensor reading displayed on blue LCD 1602A + i2c serial interface, PCF8574T (library : LiquidCrystal I2C)
/*
HC-SR04 Ping distance sensor:
VCC to arduino 5v
GND to arduino GND
Echo to Arduino pin 7
Trig to Arduino pin 8
This sketch originates from Virtualmix: http://goo.gl/kJ8Gl
Has been modified by Winkle ink here: http://winkleink.blogspot.com.au/2012/05/arduino-hc-sr04-ultrasonic-distance.html
And modified further by ScottC here: http://arduinobasics.blogspot.com.au/2012/11/arduinobasics-hc-sr04-ultrasonic-sensor.html
on 10 Nov 2012.
*/
// NOTE: lcd - http://www.dfrobot.com/wiki/index.php?title=I2C/TWI_LCD1602_Module_(SKU:_DFR0063)
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 16 chars and 2 line display
#define echoPin 7 // Echo Pin
#define trigPin 8 // Trigger Pin
#define LEDPin 13 // Onboard LED
long duration, distance; // Duration used to calculate distance
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(LEDPin, OUTPUT); // Use LED indicator (if required)
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
// Blinking block cursor
lcd.blink_on();
}
void loop() {
// Delay 50ms before next reading.
delay(150);
/* The following trigPin/echoPin cycle is used to determine the
distance of the nearest object by bouncing soundwaves off of it. */
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
//Calculate the distance (in cm) based on the speed of sound.
distance = duration/58.2;
// display on lcd
String disp = String(distance);
lcd.clear();
lcd.print("distance :"); // first line
lcd.setCursor(0, 1); // second line
lcd.print(disp);
lcd.print(" cm");
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment