#include <Arduino.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define Screen_Width 128
#define Screen_height 64
#define trig_pin 13
#define echo_pin 14
#define speed_sound 0.0343
unsigned long duration;
float distance;
Adafruit_SSD1306 display(Screen_Width,Screen_height, &Wire ,-1);
void setup()
{
Wire.begin(21,22);
Serial.begin(115200);
pinMode(trig_pin, OUTPUT);
pinMode(echo_pin, INPUT);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("OLED failed");
while (true);
}
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.print("OLED WORKING");
display.display();
}
void loop()
{
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
//HcSr04 block
digitalWrite(trig_pin, LOW);
delayMicroseconds(2);
digitalWrite(trig_pin, HIGH);
delayMicroseconds(10);
digitalWrite(trig_pin, LOW);
duration = pulseIn(echo_pin,HIGH,30000);
distance = (speed_sound*duration)/2;
if (duration == 0) {
display.setCursor(20, 25);
display.print("Out of Range");
}
else{
//kalakari barGraph ki
int barwidth = map(distance , 0 , 400, 0, 120);
barwidth = constrain(barwidth,0,120);
//title
display.setCursor(4,5);
display.print("ULTRASONIC SENSORS");
//features
display.setCursor(4,18);
display.print("Distance:- ");
display.print(distance , 1);
//Bar-Graph display
display.drawRect(4, 35, 120, 12, WHITE);
display.fillRect(4, 35, barwidth, 12, WHITE);
}
display.display();
delay(500);
}