#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
#define led 2
#define tombol 26
#define tombol2 27
#define trigger 19
#define echo 18
int timer;
float jarak;
void setup() {
if(!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;); // Don't proceed, loop forever
}
display.display();
delay(2000); // Pause for 2 seconds
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0,0); display.print("Test LCD OLED");
display.setCursor(0,10); display.print("Baris Kedua");
display.display();
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
pinMode(led,OUTPUT);
pinMode(tombol, INPUT_PULLUP);
pinMode(tombol2, INPUT_PULLUP);
}
void baca_sensor() {
digitalWrite(trigger,HIGH); delayMicroseconds(10);
digitalWrite(trigger,LOW);
timer = pulseIn(echo,HIGH);
jarak = (timer * 340.0 * 100.0 / 1000000.0)/2;
display.clearDisplay();
display.setTextSize(1);
display.setCursor(0,20); display.print("Sensor = ");
display.print(jarak); display.print(" cm ");
display.display();
delay(100);
}
void loop() {
// put your main code here, to run repeatedly:
baca_sensor();
if(jarak<100) {
display.setTextSize(2);
display.setCursor(0,30); display.print("SELAMAT DATANG");
display.display();
}
if(digitalRead(tombol)==LOW) {
digitalWrite(led,HIGH);
}
if(digitalRead(tombol2)==LOW) {
digitalWrite(led,LOW);
}
}
Loading
ssd1306
ssd1306