วิธีใช้จอแสดงผล OLED 0.91 "กับ Arduino

How to Use a 0.91" OLED Display with Arduino

อัน จอแสดงผล OLED 0.91 " เป็นหน้าจอขนาดเล็กที่มีความคมชัดสูงเหมาะสำหรับ การแสดงข้อมูลข้อความกราฟิกและเซ็นเซอร์ ในโครงการ Arduino คู่มือนี้จะนำคุณผ่าน การเดินสายการเข้ารหัสและการแสดงข้อความและกราฟิก ใช้ โมดูล OLED ที่ใช้ SSD1306 กับ Arduino


1. สิ่งที่คุณต้องการ

บอร์ด Arduino (uno, mega, nano ฯลฯ )
จอแสดงผล OLED 0.91 "(SSD1306, I2C)
สายจัมเปอร์
Arduino IDE ติดตั้ง

🔹 บันทึก: บทช่วยสอนนี้มุ่งเน้นไปที่ การสื่อสาร i2cซึ่งใช้เท่านั้น สองสาย (SDA & SCL)ทำให้เหมาะสำหรับโครงการที่เรียบง่าย


2. การเดินสายไฟ 0.91 "OLED ไปยัง Arduino (โหมด I2C)

PIN หน้าจอ OLED Arduino uno pin Arduino Nano Pin
VCC 5V 5V
gnd gnd gnd
SDA A4 (SDA) A4 (SDA)
SCL A5 (SCL) A5 (SCL)

🔹 สำหรับ Arduino Mega: ใช้ SDA (PIN 20) และ SCL (PIN 21).


3. การติดตั้งไลบรารีที่จำเป็น

ก่อนการเข้ารหัสให้ติดตั้งไฟล์ Adafruit SSD1306 และ Adafruit GFX ห้องสมุด:

  1. เปิด Arduino ide.
  2. ไป ร่าง→รวมไลบรารี→จัดการไลบรารี.
  3. ค้นหา Adafruit SSD1306 และติดตั้ง
  4. ค้นหา Adafruit GFX และติดตั้ง

4. รหัสพื้นฐานเพื่อแสดงข้อความบน OLED

ตัวอย่างนี้เริ่มต้น OLED และจอแสดงผล "สวัสดี 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)
}

🔹 รหัสนี้ทำอะไร:
✔ เริ่มต้น จอแสดงผล SSD1306.
✔ ภาพพิมพ์ "สวัสดี Arduino!" บนหน้าจอ
✔ ใช้ ที่อยู่ i2c 0x3c (บางโมดูลอาจใช้ 0x3d).


5. การแสดงกราฟิก (บรรทัด, วงกลม, รูปภาพ)

เพื่อวาด รูปทรงแก้ไขรหัสโดยใช้ ฟังก์ชั่น Adafruit GFX.

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() {}

🔹 ฟังก์ชั่นการวาดภาพอื่น ๆ :
display.drawLine(x1, y1, x2, y2, color); →วาดเส้น
display.drawCircle(x, y, radius, color); →วาดวงกลม
display.drawRect(x, y, width, height, color); →วาดสี่เหลี่ยมผืนผ้า


6. ตัวอย่างข้อความเลื่อน

ตัวอย่างนี้เลื่อนข้อความ ตามแนวนอน ข้ามหน้าจอ 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() {}

🔹 ฟังก์ชั่นการเลื่อน:
display.startscrollleft(start, stop); →เลื่อนข้อความ ซ้าย
display.startscrollright(start, stop); →เลื่อนข้อความ ขวา
display.stopscroll(); →หยุดการเลื่อน


7. เคล็ดลับการแก้ไขปัญหา

ปัญหา: แสดงไม่แสดงอะไรเลย
✅ ตรวจสอบ การเดินสาย (เชื่อมต่อ SDA & SCL อย่างถูกต้อง).
✅ ตรวจสอบให้แน่ใจว่า ที่อยู่ OLED I2C คือ 0x3c (หรือลอง 0x3d).
✅ ใช้ สแกนเนอร์ i2c เพื่อตรวจจับอุปกรณ์:

#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() {}

ปัญหา: ข้อความเล็กเกินไปหรือใหญ่เกินไป
✅ ปรับ display.setTextSize(1); (เพิ่มสำหรับข้อความที่ใหญ่กว่า)


8. แอปพลิเคชันที่ใช้งานได้จริง

การแสดงข้อมูลเซ็นเซอร์ -แสดงการอ่านแบบเรียลไทม์จาก DHT11, BMP280 ฯลฯ
การแสดงนาฬิกา - รวมกับ โมดูล DS3231 RTC เพื่อทำนาฬิกาดิจิตอล
ระบบเมนู - ใช้ปุ่มเพื่อนำทางผ่านเมนู
ตัวบ่งชี้แรงดันไฟฟ้าของแบตเตอรี่ - ตรวจสอบระดับพลังงานในโครงการพกพา


9. บทสรุป

ใช้ไฟล์ 0.91 "OLED กับ Arduino เป็นวิธีที่ดีในการเพิ่ม เอาต์พุตภาพ ไปยังโครงการของคุณ ไม่ว่าคุณต้องการแสดง ข้อมูลข้อความกราฟิกหรือเซ็นเซอร์หน้าจอขนาดเล็กนี้มี ความคมชัดสูงและการใช้พลังงานต่ำ.

แสดงความคิดเห็น

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.