//RANGE FINDER
#include "U8glib.h"
#define trig 2
#define echo 3
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0 | U8G_I2C_OPT_NO_ACK | U8G_I2C_OPT_FAST); // Fast I2C / TWI
void setup(){}
void loop()
{
float distanceIN = getDistance();
if (distanceIN > 12)
{
float distanceFT = distanceIN / 12.0;
float remainder = (int)distanceIN % 12;
u8g.firstPage();
do {
char buf [10];
String rangeStr = String(distanceFT) + "ft " + String(remainder) + "in ";
rangeStr.toCharArray(buf, rangeStr.length());
u8g.drawStr(28, 28, buf);
} while ( u8g.nextPage() );
}
else
{
u8g.firstPage();
do {
char buf [10];
String rangeStr = String(distanceIN) + "in ";
rangeStr.toCharArray(buf, rangeStr.length());
u8g.drawStr(28, 28, buf);
} while ( u8g.nextPage() );
}
}
float getDistance()
{
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
float duration = pulseIn(echo, HIGH);
float distanceCM = 0.017 * duration;
return distanceCM * 0.3937008;
}