#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display lebar dalam piksel
#define SCREEN_HEIGHT 64 // OLED display tinggi dalam piksel
// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
//global variabel untuk membuat tulisan rata tengah
byte panjang, lebar;
int16_t x, y;
uint16_t w, h;
//global variabel
boolean tekan;
void setup() {
Serial.begin(115200);
pinMode(13, INPUT_PULLUP);
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for (;;); // Don't proceed, loop forever
}
display.clearDisplay();
//atur ukuran tulisan
display.setTextSize(1); // ukuran normal 1:1
display.setTextColor(WHITE); // tulisan warna putih
//buat tulisan welcome to hollanda academy
display.getTextBounds("WELCOME TO", 0, 0, &x, &y, &w, &h); //untuk mendapatkan jumlah piksel dalam lebar dan tinggi untuk tulisan WELCOME
panjang = (SCREEN_WIDTH - w) / 2; // Untuk menentukan penempatan piksel pertama
display.setCursor(panjang, 0); // kursor diletakkan pada rata tengah kolom 0
display.print("WELCOME TO");
display.display();
delay(500);
//sekarang kita buat tulisan di bagian tengah layar
display.getTextBounds("HOLLANDA ACADEMY", 0, 0, &x, &y, &w, &h); //untuk mendapatkan jumlah piksel dalam lebar dan tinggi untuk tulisan WELCOME
panjang = (SCREEN_WIDTH - w) / 2; // Untuk menentukan penempatan piksel pertama
lebar = (SCREEN_HEIGHT - h) / 2;
display.setCursor(panjang, lebar); // kursor diletakkan pada rata tengah kolom 0
display.print("HOLLANDA ACADEMY");
display.display();
//sekarang kita buat tulisan di bagian bawah layar
display.getTextBounds("JANGAN LUPA SUBSCRIBE", 0, 0, &x, &y, &w, &h); //untuk mendapatkan jumlah piksel dalam lebar dan tinggi untuk tulisan WELCOME
panjang = (SCREEN_WIDTH - w) / 2; // Untuk menentukan penempatan piksel pertama
lebar = SCREEN_HEIGHT - h;
display.setCursor(panjang, lebar - 10); // kursor diletakkan pada rata tengah kolom 0
display.print("JANGAN LUPA SUBSCRIBE");
display.display();
delay(500);
}
void loop() {
tekan = digitalRead(13);
Serial.print(tekan);
Serial.print(" ");
display.clearDisplay();
if (tekan == 0) {
Serial.println("tombol ditekan");
display.setTextSize(2);
display.getTextBounds("SWITCH ON", 0, 0, &x, &y, &w, &h); //untuk mendapatkan jumlah piksel dalam lebar dan tinggi untuk tulisan WELCOME
panjang = (SCREEN_WIDTH - w) / 2; // Untuk menentukan penempatan piksel pertama
lebar = (SCREEN_HEIGHT - h) / 2;
display.setCursor(panjang, lebar); // kursor diletakkan pada rata tengah kolom 0
display.print("SWITCH ON");
display.display();
}
else{
Serial.println("tombol tidak ditekan");
display.setTextSize(2);
display.getTextBounds("SWITCH OFF", 0, 0, &x, &y, &w, &h); //untuk mendapatkan jumlah piksel dalam lebar dan tinggi untuk tulisan WELCOME
panjang = (SCREEN_WIDTH - w) / 2; // Untuk menentukan penempatan piksel pertama
lebar = (SCREEN_HEIGHT - h) / 2;
display.setCursor(panjang, lebar); // kursor diletakkan pada rata tengah kolom 0
display.print("SWITCH OFF");
display.display();
}
delay(200);
}