จอแสดงผล OLED 0.96 "เป็นหน้าจอขนาดกะทัดรัดและประหยัดพลังงานซึ่งเหมาะสำหรับการแสดงข้อความกราฟิกและข้อมูลเซ็นเซอร์ในโครงการ Arduino บทช่วยสอนนี้จะแนะนำคุณผ่านการตั้งค่าและใช้จอแสดงผล OLED 0.96" กับ Arduino
สิ่งที่คุณต้องการ
- บอร์ด Arduino (เช่น uno, mega, nano)
- โมดูลจอแสดงผล OLED 0.96 " (ด้วยอินเทอร์เฟซ I2C หรือ SPI)
- เครื่องหั่นขนมปังและสายจัมเปอร์
- คอมพิวเตอร์ที่ติดตั้ง Arduino IDE
- ห้องสมุด: 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 คุณต้องมีไลบรารีต่อไปนี้:
- ห้องสมุด Adafruit SSD1306
- ห้องสมุด Adafruit GFX
ขั้นตอนในการติดตั้งไลบรารี
- เปิด Arduino IDE
- ไป ร่าง > รวมห้องสมุด > จัดการห้องสมุด.
- ค้นหา "Adafruit SSD1306" แล้วคลิก ติดตั้ง.
- ค้นหา "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
ปัญหาทั่วไปและการแก้ไขปัญหา
-
OLED ไม่แสดง:
- ตรวจสอบให้แน่ใจว่ามีการใช้ที่อยู่ I2C ที่ถูกต้อง (0x3c หรือ 0x3d) ในรหัส
- ตรวจสอบสายไฟและการเชื่อมต่อ
-
ข้อผิดพลาดของห้องสมุด:
- ตรวจสอบให้แน่ใจว่ามีการติดตั้งไลบรารี Adafruit SSD1306 และ GFX
-
จอแสดงผลกะพริบ:
- ใช้
display.clearDisplay()
เฉพาะเมื่อจำเป็นเพื่อลดการสั่นไหว
- ใช้
-
pinout ไม่ถูกต้อง:
- ตรวจสอบแผ่นข้อมูลของโมดูลสำหรับการเชื่อมต่อ SDA และ SCL PIN ที่ถูกต้อง
แอปพลิเคชันของจอแสดงผล OLED
- การแสดงข้อมูลเซ็นเซอร์ (เช่นอุณหภูมิความชื้น)
- ส่วนต่อประสานผู้ใช้สำหรับระบบฝังตัว
- ข้อเสนอแนะด้วยภาพสำหรับอุปกรณ์ IoT
- จอแสดงผลกราฟิกสำหรับอุปกรณ์อิเล็กทรอนิกส์แบบพกพา
บทสรุป
จอแสดงผล OLED 0.96 "เป็นสิ่งที่หลากหลายและดึงดูดสายตาในโครงการ Arduino โดยทำตามคู่มือนี้คุณสามารถแสดงข้อความกราฟิกและข้อมูลเรียลไทม์บนหน้าจอ OLED ของคุณทดลองใช้ฟังก์ชั่นและไลบรารีที่แตกต่างกันเพื่อสร้างจอแสดงผลแบบไดนามิก สำหรับโครงการของคุณ!