ใช้ OLED 0.96 "กับ Arduino

Using a 0.96" OLED with the Arduino

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


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

  1. บอร์ด Arduino (เช่น uno, mega, nano)
  2. โมดูลจอแสดงผล OLED 0.96 " (ด้วยอินเทอร์เฟซ I2C หรือ SPI)
  3. เครื่องหั่นขนมปังและสายจัมเปอร์
  4. คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
  5. ห้องสมุด: Adafruit SSD1306 และ Adafruit GFX Library

ขั้นตอนที่ 1: ทำความเข้าใจกับจอแสดงผล OLED

โดยทั่วไปแล้วจอแสดงผล OLED 0.96 "จะใช้ไดรเวอร์ SSD1306 และรองรับการสื่อสาร I2C หรือ SPI ส่วนใหญ่โดยทั่วไปจะทำงานผ่านโปรโตคอล I2C ซึ่งต้องการเพียงสองพินข้อมูล (SDA และ SCL)

i2c pinout

หมุดโอเลด การทำงาน Arduino uno pin
VCC แหล่งจ่ายไฟ (3.3V หรือ 5V) 5V
gnd พื้น gnd
SDA สายข้อมูล A4
SCL สายนาฬิกา A5

บันทึก: ตรวจสอบแผ่นข้อมูลโมดูล OLED ของคุณเพื่อยืนยัน pinout


ขั้นตอนที่ 2: การติดตั้งไลบรารีที่จำเป็น

ในการทำงานกับจอแสดงผล OLED คุณต้องมีไลบรารีต่อไปนี้:

  1. ห้องสมุด Adafruit SSD1306
  2. ห้องสมุด Adafruit GFX

ขั้นตอนในการติดตั้งไลบรารี

  1. เปิด Arduino IDE
  2. ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
  3. ค้นหา "Adafruit SSD1306" แล้วคลิก ติดตั้ง.
  4. ค้นหา "Adafruit GFX Library" แล้วคลิก ติดตั้ง.

ขั้นตอนที่ 3: เดินสายจอแสดงผล OLED

เชื่อมต่อ OLED กับ Arduino ดังนี้:

หมุดโอเลด พิน Arduino
VCC 5V
gnd gnd
SDA A4
SCL A5

ขั้นตอนที่ 4: อัปโหลดรหัส

นี่คือตัวอย่างตัวอย่างเพื่อแสดงข้อความและกราฟิกบนหน้าจอ OLED:

ตัวอย่างรหัส: การตั้งค่า OLED พื้นฐาน

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

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET    -1 // Reset pin not used
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  // Initialize the display
  if (!display.begin(SSD1306_I2C_ADDRESS, 0x3C)) { // Address 0x3C for most modules
    Serial.println(F("SSD1306 allocation failed"));
    for (;;);
  }

  display.clearDisplay(); // Clear the buffer

  // Display Welcome Message
  display.setTextSize(1);      // Set text size (1 = small)
  display.setTextColor(SSD1306_WHITE); // Set text color
  display.setCursor(0, 10);    // Set cursor position (x, y)
  display.println(F("Hello, OLED!"));
  display.display();           // Display the message
  delay(2000);

  // Draw a rectangle
  display.clearDisplay();
  display.drawRect(10, 10, 50, 30, SSD1306_WHITE); // x, y, width, height, color
  display.display();
  delay(2000);
}

void loop() {
  // Update screen with dynamic content if needed
}

ขั้นตอนที่ 5: สำรวจฟังก์ชั่นเพิ่มเติม

ไลบรารี Adafruit GFX มีฟังก์ชั่นที่หลากหลายสำหรับกราฟิกและข้อความ นี่คือตัวอย่างบางส่วน:

1. การแสดงข้อความ

  display.setTextSize(2); // Larger text size
  display.setTextColor(SSD1306_WHITE);
  display.setCursor(0, 0);
  display.println("Arduino");
  display.display();

2. การวาดรูปร่าง

  • สี่เหลี่ยมผืนผ้า: display.drawRect(x, y, width, height, color);
  • วงกลม: display.drawCircle(x, y, radius, color);
  • เส้น: display.drawLine(x1, y1, x2, y2, color);

3. สีกลับด้าน

  display.invertDisplay(true); // Invert colors
  delay(1000);
  display.invertDisplay(false); // Revert colors

ปัญหาทั่วไปและการแก้ไขปัญหา

  1. OLED ไม่แสดง:

    • ตรวจสอบให้แน่ใจว่ามีการใช้ที่อยู่ I2C ที่ถูกต้อง (0x3c หรือ 0x3d) ในรหัส
    • ตรวจสอบสายไฟและการเชื่อมต่อ
  2. ข้อผิดพลาดของห้องสมุด:

    • ตรวจสอบให้แน่ใจว่ามีการติดตั้งไลบรารี Adafruit SSD1306 และ GFX
  3. จอแสดงผลกะพริบ:

    • ใช้ display.clearDisplay() เฉพาะเมื่อจำเป็นเพื่อลดการสั่นไหว
  4. pinout ไม่ถูกต้อง:

    • ตรวจสอบแผ่นข้อมูลของโมดูลสำหรับการเชื่อมต่อ SDA และ SCL PIN ที่ถูกต้อง

แอปพลิเคชันของจอแสดงผล OLED

  1. การแสดงข้อมูลเซ็นเซอร์ (เช่นอุณหภูมิความชื้น)
  2. ส่วนต่อประสานผู้ใช้สำหรับระบบฝังตัว
  3. ข้อเสนอแนะด้วยภาพสำหรับอุปกรณ์ IoT
  4. จอแสดงผลกราฟิกสำหรับอุปกรณ์อิเล็กทรอนิกส์แบบพกพา

บทสรุป

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

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

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.