A 0.91" OLED display ay isang maliit at high-contrast na screen na perpekto para sa pagpapakita ng text, graphics, at data ng sensor sa mga proyekto sa Arduino. Ang gabay na ito ay magtuturo sa iyo ng pag-wire, pag-code, at pagpapakita ng text at graphics gamit ang SSD1306-based OLED module kasama ang Arduino.
1. Mga Kakailanganin
✅ Arduino Board (Uno, Mega, Nano, atbp.)
✅ 0.91" OLED Display (SSD1306, I2C)
✅ Jumper Wires
✅ Naka-install na Arduino IDE
🔹 Paalala: Ang tutorial na ito ay nakatuon sa I2C communication, na gumagamit lamang ng dalawang wire (SDA & SCL), kaya mainam ito para sa mga simpleng proyekto.
2. Pag-wire ng 0.91" OLED sa Arduino (I2C Mode)
| OLED Display Pin | Arduino Uno Pin | Arduino Nano Pin |
|---|---|---|
| VCC | 5V | 5V |
| GND | GND | GND |
| SDA | A4 (SDA) | A4 (SDA) |
| SCL | A5 (SCL) | A5 (SCL) |
🔹 Para sa Arduino Mega: Gamitin ang SDA (Pin 20) at SCL (Pin 21).
3. Pag-install ng mga Kinakailangang Library
Bago mag-code, i-install ang mga library na Adafruit SSD1306 at Adafruit GFX:
- Buksan ang Arduino IDE.
- Pumunta sa Sketch → Include Library → Manage Libraries.
- Hanapin ang Adafruit SSD1306 at i-install ito.
- Hanapin ang Adafruit GFX at i-install ito.
4. Basic na Code para Magpakita ng Text sa OLED
Ang halimbawang ito ay nag-i-initialize sa OLED at nagpapakita ng "Hello, Arduino!".
#include
#include
#include
// Tukuyin ang laki ng OLED screen
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32
// I-initialize ang OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(115200);
// Simulan ang OLED display
if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println("Nabigo ang pag-allocate sa SSD1306");
for (;;);
}
display.clearDisplay(); // Linisin ang buffer
display.setTextSize(1); // Laki ng text
display.setTextColor(SSD1306_WHITE);
display.setCursor(10, 10);
display.println("Hello, Arduino!");
display.display(); // Ipakita ang text sa screen
}
void loop() {
// Walang laman dito (static ang text)
}
🔹 Ano ang ginagawa ng code na ito:
✔ In-i-initialize ang SSD1306 display.
✔ Nagpi-print ng "Hello, Arduino!" sa screen.
✔ Gumagamit ng I2C address 0x3C (ang ilang module ay maaaring gumamit ng 0x3D).
5. Pagpapakita ng Graphics (Mga Linya, Bilog, Larawan)
Para gumuhit ng mga hugis, baguhin ang code gamit ang Adafruit GFX functions.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
// Gumuhit ng rectangle
display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
// Gumuhit ng filled circle
display.fillCircle(90, 16, 10, SSD1306_WHITE);
display.display();
}
void loop() {}
🔹 Iba pang Drawing Functions:
✔ display.drawLine(x1, y1, x2, y2, color); → Gumuguhit ng linya
✔ display.drawCircle(x, y, radius, color); → Gumuguhit ng bilog
✔ display.drawRect(x, y, width, height, color); → Gumuguhit ng rectangle
6. Halimbawa ng Scrolling Text
Ang halimbawang ito ay nag-i-scroll ng text nang pahalang sa OLED screen.
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println("Scrolling Text...");
display.display();
// Simulan ang pag-scroll
display.startscrollleft(0x00, 0x0F);
}
void loop() {}
🔹 Mga Scrolling Function:
✔ display.startscrollleft(start, stop); → I-scroll ang text pakaliwa
✔ display.startscrollright(start, stop); → I-scroll ang text pakanan
✔ display.stopscroll(); → Ititigil ang pag-scroll
7. Mga Tips sa Troubleshooting
Problema: Walang lumalabas sa display.
✅ Suriin ang wiring (tama ang pagkakasaksak ng SDA & SCL).
✅ Siguraduhin na ang OLED I2C address ay 0x3C (o subukan ang 0x3D).
✅ Gumamit ng I2C scanner para ma-detect ang device:
#include
void setup() {
Wire.begin();
Serial.begin(115200);
Serial.println("Nag-i-scan...");
for (byte address = 8; address < 120; address++) {
Wire.beginTransmission(address);
if (Wire.endTransmission() == 0) {
Serial.print("Nakahanap ng I2C device sa 0x");
Serial.println(address, HEX);
}
}
}
void loop() {}
Problema: Masyadong maliit o malaki ang text.
✅ I-adjust ang display.setTextSize(1); (lakihan para sa mas malaking text).
8. Mga Praktikal na Aplikasyon
✔ Pagpapakita ng Data ng Sensor – Ipakita ang real-time readings mula sa DHT11, BMP280, atbp.
✔ Clock Display – Pagsamahin sa DS3231 RTC module para gumawa ng digital clock.
✔ Menu Systems – Gumamit ng mga button para mag-navigate sa mga menu.
✔ Battery Voltage Indicator – Bantayan ang antas ng kuryente sa mga portable na proyekto.
9. Konklusyon
Ang paggamit ng 0.91" OLED kasama ang Arduino ay isang mahusay na paraan para magdagdag ng visual output sa iyong mga proyekto. Gusto mo mang magpakita ng text, graphics, o data ng sensor, ang maliit na screen na ito ay nag-aalok ng mataas na contrast at mababang konsumo sa kuryente.




1 Komento
Sres. buenas noches, gracias a su amables enseñanzas al menos yo he podido programar mis arduinos para escribir en pantallas OLED.
Ahora se me presenta otro reto, programar un arduino nano V3.0 con pantalla OLED 128 × 32 integrada, seria que nos ayudara si es que tienen el IDE para hacerlo?
Saludos afectuosos desde México.
Atte Fernando Soriano López