Paano gumamit ng isang 0.91 "OLED display kasama si Arduino

How to Use a 0.91" OLED Display with Arduino

0.91 "OLED display ay isang maliit, mataas na kaibahan na screen na perpekto para sa Pagpapakita ng data ng teksto, graphics, at sensor sa mga proyekto ng Arduino. Ang gabay na ito ay lalakad sa iyo Ang mga kable, coding, at pagpapakita ng teksto at graphics Gamit ang SSD1306 na nakabase sa OLED module kasama si Arduino.


1. Ano ang kailangan mo

Lupon ng Arduino (Uno, mega, nano, atbp.)
0.91 "OLED Display (SSD1306, I2C)
Jumper wires
Naka -install ang Arduino IDE

🔹 Tandaan: Nakatuon ang tutorial na ito Komunikasyon ng I2C, na gumagamit lamang Dalawang Wire (SDA & SCL), ginagawang perpekto para sa mga simpleng proyekto.


2. Wiring Ang 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 kay Arduino Mega: Gumamit SDA (pin 20) at SCL (pin 21).


3. Pag -install ng mga kinakailangang aklatan

Bago ang pag -cod, i -install ang Adafruit SSD1306 at Adafruit GFX Mga Aklatan:

  1. Buksan Arduino Ide.
  2. Pumunta sa Sketch → Isama ang Library → Pamahalaan ang mga aklatan.
  3. Maghanap Adafruit SSD1306 at i -install ito.
  4. Maghanap Adafruit GFX at i -install ito.

4. Pangunahing code upang ipakita ang teksto sa OLED

Ang halimbawang ito ay sinisimulan ang OLED at ipinapakita "Kumusta, Arduino!".

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

// Define OLED screen size
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 32

// Initialize OLED display (I2C address 0x3C)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

void setup() {
    Serial.begin(115200);

    // Start OLED display
    if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
        Serial.println("SSD1306 allocation failed");
        for (;;);
    }

    display.clearDisplay();  // Clear buffer
    display.setTextSize(1);  // Text size
    display.setTextColor(SSD1306_WHITE);
    display.setCursor(10, 10);
    display.println("Hello, Arduino!");
    display.display(); // Show text on screen
}

void loop() {
    // Nothing here (text is static)
}

🔹 Ano ang ginagawa ng code na ito:
✔ Initialize ang SSD1306 display.
✔ Mga kopya "Kumusta, Arduino!" Sa screen.
✔ Gamit I2C Address 0x3c (Maaaring gamitin ang ilang mga module 0x3d).


5. Pagpapakita ng mga graphic (linya, bilog, mga imahe)

Upang gumuhit mga hugis, baguhin ang code gamit ADAFRUIT GFX FUNCTIONS.

void setup() {
    display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
    display.clearDisplay();

    // Draw a rectangle
    display.drawRect(10, 10, 50, 20, SSD1306_WHITE);
    
    // Draw a filled circle
    display.fillCircle(90, 16, 10, SSD1306_WHITE);

    display.display();
}

void loop() {}

🔹 Iba pang mga pag -andar sa pagguhit:
display.drawLine(x1, y1, x2, y2, color); → Gumuhit ng isang linya
display.drawCircle(x, y, radius, color); → Gumuhit ng isang bilog
display.drawRect(x, y, width, height, color); → Gumuhit ng isang rektanggulo


6. Pag -scroll ng halimbawa ng teksto

Ang halimbawang ito ay nag -scroll ng teksto pahalang Sa buong screen ng OLED.

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();
    
    // Start scrolling
    display.startscrollleft(0x00, 0x0F); 
}

void loop() {}

🔹 Mga Pag -andar ng Pag -scroll:
display.startscrollleft(start, stop); → Mag -scroll ng teksto Kaliwa
display.startscrollright(start, stop); → Mag -scroll ng teksto tama
display.stopscroll(); → Tumigil sa pag -scroll


7. Mga Tip sa Pag -aayos

Suliranin: Ipakita na hindi nagpapakita ng anuman.
✅ Suriin Mga kable (SDA & SCL na tama na konektado).
✅ Tiyakin ang Oled i2c address ay 0x3c (o subukan ang 0x3d).
✅ Gumamit ng isang I2C scanner Upang makita ang aparato:

#include <Wire.h>
void setup() {
    Wire.begin();
    Serial.begin(115200);
    Serial.println("Scanning...");
    
    for (byte address = 8; address < 120; address++) {
        Wire.beginTransmission(address);
        if (Wire.endTransmission() == 0) {
            Serial.print("Found I2C device at 0x");
            Serial.println(address, HEX);
        }
    }
}
void loop() {}

Suliranin: Ang teksto ay napakaliit o napakalaki.
✅ Ayusin display.setTextSize(1); (Dagdagan para sa mas malaking teksto).


8. Mga praktikal na aplikasyon

Pagpapakita ng data ng sensor -Ipakita ang mga real-time na pagbabasa mula sa DHT11, BMP280, atbp.
Display ng orasan - Pagsamahin sa DS3231 RTC Module Upang makagawa ng isang digital na orasan.
Mga System ng Menu - Gumamit ng mga pindutan upang mag -navigate sa pamamagitan ng mga menu.
Tagapagpahiwatig ng boltahe ng baterya - Subaybayan ang mga antas ng kapangyarihan sa mga portable na proyekto.


9. Konklusyon

Gamit ang a 0.91 "OLED kasama si Arduino ay isang mahusay na paraan upang idagdag Visual output sa iyong mga proyekto. Kung nais mong ipakita Teksto, graphics, o data ng sensor, Nag -aalok ang maliit na screen na ito Mataas na kaibahan at mababang pagkonsumo ng kuryente.

Mag -iwan ng komento

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.