#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Fonts/FreeMonoBoldOblique12pt7b.h>
#include <Fonts/FreeSans9pt7b.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 width, height;
int16_t x, y;
uint16_t w, h;
void setup() {
Serial.begin(115200);
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
display.setFont(&FreeMonoBoldOblique12pt7b);
for (byte i = 0; i <= 12; i++) {
display.clearDisplay();
Serial.println(i);
display.setCursor(0, i*10);
display.print("Hello");
display.display();
delay(100);
}
display.setFont(&FreeSans9pt7b);
for (byte i = 0; i <= 12; i++) {
display.clearDisplay();
Serial.println(i);
display.setCursor(0, i*10);
display.print("Hello");
display.display();
delay(100);
}
//go back to original font
display.setFont();
for (byte i = 0; i <= 12; i++) {
display.clearDisplay();
Serial.println(i);
display.setCursor(0, i*10);
display.print("Hello");
display.display();
delay(100);
}
}
void loop() {
}