#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 OLED(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET );
#define PIN_TRIG 3
#define PIN_ECHD 2
void setup() {
Serial.begin(115200);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHD, INPUT);
if (!OLED.begin(SSD1306_SWITCHCAPVCC, 0x3c)) {
Serial.println("SSD1306 allocation failed");
} else {
Serial.println("ArdinoAll OLED Start Work !!!");
}
}
void loop() {
// Start a new measurememt
digitalWrite(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
//Read the resuil:
int duration = pulseIn(PIN_ECHD, HIGH);
Serial.print("Distance in CM: ");
Serial.println(duration /58);
OLED.clearDisplay();
OLED.setTextColor (WHITE, BLACK);
OLED.setCursor (0, 0);
OLED.setTextSize (2);
OLED.println ("Distance=");
OLED.setCursor (40,25);
OLED.println(duration/58,DEC);
OLED.setCursor (40,40);
OLED.println("cm");
OLED.display();
if((duration/58)<=100)
{
int distance=(duration/58)*6;
if(distance<=5)int distance=0;
tone(8,600,100); // Play 262Hz tone for 0.250 seconds
delay( distance);
Serial.println(duration);
}
}