א תצוגת OLED 0.91 " הוא מסך קטן בעלות ניגודיות גבוה מושלם עבור הצגת נתוני טקסט, גרפיקה וחיישנים בפרויקטים של ארדואינו. מדריך זה יעבור אותך חיווט, קידוד והצגת טקסט וגרפיקה באמצעות מודול OLED מבוסס SSD1306 עם ארדואינו.
1. מה שאתה צריך
✅ מועצת ארדואינו (אונו, מגה, ננו וכו ')
✅ 0.91 "תצוגת OLED (SSD1306, I2C)
✅ חוטי מגשר
✅ Arduino IDE מותקן
🔹 פֶּתֶק: הדרכה זו מתמקדת תקשורת i2c, שמשתמשים רק שני חוטים (SDA ו- SCL), מה שהופך אותו לאידיאלי לפרויקטים פשוטים.
2. חיווט ה- OLED 0.91 "לארדואינו (מצב I2C)
סיכת תצוגה של OLED | סיכת ארדואינו אונו | סיכת ארדואינו ננו |
---|---|---|
VCC | 5V | 5V |
GND | GND | GND |
SDA | A4 (SDA) | A4 (SDA) |
SCL | A5 (SCL) | A5 (SCL) |
🔹 למגה של ארדואינו: השתמש SDA (סיכה 20) ו- SCL (סיכה 21).
3. התקנת ספריות נדרשות
לפני הקידוד, התקן את Adafruit SSD1306 וכן Adafruit gfx ספריות:
- לִפְתוֹחַ Arduino Ide.
- לך אל סקיצה → כלול ספריה → ניהול ספריות.
- חפש Adafruit SSD1306 ולהתקין אותו.
- חפש Adafruit gfx ולהתקין אותו.
4. קוד בסיסי להצגת טקסט ב- OLED
דוגמה זו מאתחלת את ה- OLED ומציגה "שלום, ארדואינו!".
#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.
✔ הדפסים "שלום, ארדואינו!" על המסך.
✔ שימושים כתובת 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 וכו '.
✔ תצוגת שעון - שילוב עם מודול RTC DS3231 להכנת שעון דיגיטלי.
✔ מערכות תפריט - השתמש בכפתורים כדי לנווט בתפריטים.
✔ מחוון מתח סוללה - עקוב אחר רמות הכוח בפרויקטים ניידים.
9. מסקנה
באמצעות א 0.91 "אולד עם ארדואינו היא דרך נהדרת להוסיף פלט חזותי לפרויקטים שלך. בין אם תרצו להציג נתוני טקסט, גרפיקה או חיישנים, המסך הקטן הזה מציע ניגודיות גבוהה וצריכת חשמל נמוכה.