#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define ECHO_PIN 16
#define TRIG_PIN 17
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 oled(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
pinMode(35, OUTPUT);
if (loled.begin(SSD1306_SWITCHCAPVCC, 0x3C)){
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
}
delay(3000);
oled.clearDisplay();
oled.setTextSize(2);
oled.setTextColor(WHITE);
oled.setCursor(1,5);
oled.println("PENGUKUR KETINGGIAN AIR - NAMA SISWA");
oled.display();
Serial.begin(9600);
pinMode(ECHO_PIN, INPUT);
pinMode(TRIG_PIN, OUTPUT);
}
float ultrasonik(){
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
digitalWrite(35,LOW);
delay(1000);
digitalWrite(35, HIGH);
delay(3000);
oled.clearDisplay();
float jarak = ultrasonik();
if(jarak > 150){
Serial.println("Air Rendah");
Serial.print("Nilai Jarak");
Serial.print(jarak);
Serial.println("cm ");
oled.print(jarak);
oled.println("cm ");
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 2);
oled.println("Jarak Air: Rendah");
oled.display();
delay(1000);
}
else if(jarak <= 150 && jarak > 75){
Serial.println("Air Sedang");
Serial.print("Nilai Jarak");
Serial.print(jarak);
Serial.println("cm ");
oled.print(jarak);
oled.println("cm ");
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 2);
oled.println("Jarak Air: Sedang");
oled.display();
delay(1000);
}
else if (jarak <= 75){
Serial.println("Air Tinggi");
Serial.print("Nilai Jarak");
Serial.print(jarak);
Serial.println("cm ");
oled.print(jarak);
oled.println(" cm ");
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 2);
oled.println("Jarak Air: Tinggi");
oled.display();
delay(1000);
}
}