#include <Adafruit_SSD1306.h>
#include <Ultrasonic.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Ultrasonic ultrasonic(12, 13);
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
int buzzerPin = 7;
int pinled_blue = 10;
int pinled_red = 11;
void setup() {
Serial.begin(9600);
if(!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while(1);
}
pinMode(buzzerPin, OUTPUT);
pinMode(pinled_blue, OUTPUT);
pinMode(pinled_red, OUTPUT);
}
void loop() {
int jarak = ultrasonic.read(CM);
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(0,0);
oled.print("Jarak: ");
oled.setTextSize(2);
oled.setCursor(0,20);
oled.print(jarak);
oled.print(" cm");
oled.display();
if (jarak <= 100) {
delay(1000);
tone(buzzerPin, 100, 1000);
oled.clearDisplay();
oled.setCursor(1,2);
oled.println("Alert!");
oled.display();
digitalWrite(pinled_red, HIGH);
delay(1000);
digitalWrite(pinled_red, LOW);
} else {
delay(1000);
tone(buzzerPin, 500, 1000);
oled.clearDisplay();
oled.setCursor(1,2);
oled.println("Safe");
oled.display();
digitalWrite(pinled_blue, HIGH);
delay(1000);
digitalWrite(pinled_blue, LOW);
}
}