- จอแสดงผล OLED
- ส่วนประกอบที่จำเป็น
- การเชื่อมต่อ SPI Pin ระหว่าง NodeMCU และ OLED Display
- การเขียนโปรแกรม NodeMCU สำหรับเชื่อมต่อ OLED
- แปลงรูปภาพเป็นค่าบิตแมป
ในการกวดวิชานี้เราจะเชื่อมต่อจอแสดงผล OLED กับ NodeMCU ESP8266 NodeMCU เป็นแพลตฟอร์ม IoT แบบโอเพนซอร์สที่มีเฟิร์มแวร์ซึ่งทำงานบน ESP8266 Wi-Fi SoC ที่เปิดใช้งาน Wi-Fi ราคาประหยัดจาก Espressif Systems มีหมุด GPIO สำหรับเชื่อมต่ออุปกรณ์ต่อพ่วงอื่น ๆ และรองรับการสื่อสารแบบอนุกรมโดยใช้หมุด SPI, I2C และ UART นอกจากนี้ยังมีหมุดสำหรับ ADC และ PWM ก่อนหน้านี้เราได้เชื่อมต่อ OLED กับไมโครคอนโทรลเลอร์อื่น ๆ รวมถึงคอนโทรลเลอร์ของตระกูล ESP (ESP32):
- การเชื่อมต่อจอแสดงผล OLED SSD1306 กับ Raspberry Pi
- การเชื่อมต่อจอแสดงผล OLED SSD1306 กับ Arduino
- สร้างนาฬิกาอัจฉริยะโดยเชื่อมต่อจอแสดงผล OLED กับโทรศัพท์ Android โดยใช้ Arduino
- นาฬิกาอินเทอร์เน็ตโดยใช้ ESP32 และจอแสดงผล OLED
ในบทช่วยสอนนี้เราจะใช้โปรโตคอล SPI เพื่อเชื่อมต่อ Monochrome 7-pin SSD1306 0.96 OLED Display กับ NodeMCUและจะเรียนรู้การแสดงภาพบนหน้าจอ OLED ด้วย NodeMCU ESP8266
จอแสดงผล OLED
Organic Light Emitting Diode (OLED) เป็นไดโอดเปล่งแสงชนิดหนึ่งที่ชั้นเปล่งแสงซึ่งทำจากสารประกอบอินทรีย์จะเปล่งแสงเมื่อจ่ายกระแสไฟฟ้า ชั้นนี้วางอยู่ระหว่างขั้วไฟฟ้าสองขั้ว เทคโนโลยีนี้ใช้ในหน้าจอแสดงผลเช่นคอมพิวเตอร์โทรทัศน์สมาร์ทโฟนเป็นต้นจอแสดงผล OLED มีแสงในตัวเองและไม่ต้องการแสงพื้นหลังเหมือนใน LCD ดังนั้นจึงประหยัดพลังงานและใช้กับไมโครคอนโทรลเลอร์หลายตัว ข้อดีอีกอย่างของการใช้จอแสดงผล OLED บน LCD คือการแสดงผลกราฟิกที่มีขนาดใหญ่และคุณภาพดีกว่าบน OLED เรียนรู้เพิ่มเติมเกี่ยวกับเทคโนโลยีจอแสดงผล OLED ที่นี่
มีจอแสดงผล OLED หลายประเภทในตลาด จอแสดงผลเหล่านี้มีลักษณะตามสีจำนวนพิน IC คอนโทรลเลอร์และขนาดของหน้าจอ บนพื้นฐานของสี OLED มีให้เลือกในสีฟ้าขาวดำขาวดำและสีเหลือง / น้ำเงิน และบนพื้นฐานของการสื่อสารส่วนใหญ่มี OLED สองประเภทคือ 3 พินและ 7 พิน OLED 3 พินสามารถใช้ในโหมดการสื่อสาร I2C และ OLED 7 พินสามารถใช้ได้ทั้งในโหมด SPI หรือในโหมด I2C
ในบทช่วยสอนนี้เราจะใช้จอแสดงผล OLED “ Monochrome 7-pin SSD1306 0.96 ” ซึ่งกว้าง 128 พิกเซลและยาว 64 พิกเซล จอแสดงผลนี้สามารถทำงานได้ทั้งบนโปรโตคอลการสื่อสาร SPI และ I2C เราจะใช้โปรโตคอล SPI ในบทช่วยสอนนี้ SSD1306 ICมีอยู่ใน OLED นี้ซึ่งช่วยในการแสดงพิกเซลบนหน้าจอ
ส่วนประกอบที่จำเป็น
- จอภาพ Monochrome 7-pin SSD1306 0.96” OLED
- NodeMCU ESP8266
- สายไมโคร USB
- เขียงหั่นขนม
- สายจัมเปอร์ชายถึงชาย
การเชื่อมต่อ SPI Pin ระหว่าง NodeMCU และ OLED Display
ด้านล่างนี้คือแผนภาพวงจรสำหรับเชื่อมต่อจอแสดงผล OLED 7 พินกับ NodeMCUเพื่อสื่อสารโดยใช้โปรโตคอลการสื่อสารแบบอนุกรม SPI
ตารางด้านล่างแสดงการเชื่อมต่อระหว่างจอแสดงผล OLED และ NodeMCU ESP8266 พิน GND ไปที่ NodeMCU GND พิน VDD สามารถเชื่อมต่อกับ 3.3V หรือ 5V, SCK คือพินนาฬิกาบนจอแสดงผล OLED ซึ่งเชื่อมต่อกับ D5 ของ NodeMCU สำหรับนาฬิกา SPI พิน SDA ซึ่งเป็นพิน MOSI บน OLED ของอินเทอร์เฟซ SPI ไปที่ D7 ของ NodeMCU หมุด RESET จะไปที่ D3 DC พินคำสั่งข้อมูลเชื่อมต่อกับ D2 ของ NodeMCU หมุดสุดท้ายคือ CS ไปที่ D8 เลือกชิปของ NodeMCU
ไม่ |
จอแสดงผล Oled |
NodeMCU |
1 |
GND |
GND |
2 |
VDD |
3.3V |
3 |
SCK |
D5 |
4 |
MOSI (SPI) หรือ SDA (I2C) |
D7 |
5 |
รีเซ็ต |
D3 |
6 |
กระแสตรง |
D2 |
7 |
CS |
D8 |
ที่นี่เราจะใช้คำว่า“ Adafruit _SSD1306.h” และ“ Adafruit_GFX.h ” ห้องสมุดสำหรับการเชื่อมต่อกับ OLED NodeMCU เปิด Arduino IDE และติดตั้งเวอร์ชันล่าสุดจาก Arduino IDE ( Sketch> Include Library> Manage Libraries หรือ Ctrl + Shift_I )
เนื่องจากขนาดพิกเซลของรหัสการแสดงผล OLED ของเรา 128x64ดังนั้นเราจึงต้องทำการเปลี่ยนแปลงไฟล์ส่วนหัวของ Adafruit_SSD1306 เปิดไลบรารี Arduino ไปที่ Adafruit_SSD1306 แล้วเปิดไฟล์ส่วนหัว ( Adafruit _SSD1306.h ) แสดงความคิดเห็นในบรรทัด“ #define SSD1306_128_32 ” และยกเลิกการแสดงความคิดเห็นในบรรทัด “ #define SSD1306_128_64 ” ตามที่แสดงในภาพด้านล่างจากนั้นบันทึกไฟล์ โดยค่าเริ่มต้นไลบรารีนี้มาพร้อมกับ“ # define SSD1306_128_32 ”
สุดท้ายเปลี่ยนหมายเลขพินในตัวอย่าง“ ssd1306_128x64_spi ” Adafruit SSD1306 ตามตารางที่แสดงอย่างย่อ ตอนนี้เมื่อคุณเรียกใช้แบบร่างหลังจากทำการเชื่อมต่อ OLED Display กับ NodeMCU อย่างเหมาะสมคุณจะเห็นโลโก้ของ Adafruit บนจอแสดงผล OLED ซึ่งโดยค่าเริ่มต้นจะบันทึกไว้ในไลบรารี หลังจากโลโก้ Adafruit จะแสดงกราฟิกอื่น ๆ อีกมากมายเช่นเส้นสี่เหลี่ยมสามเหลี่ยมวงกลมสตริงตัวเลขภาพเคลื่อนไหวและบิตแมป ที่นี่ในการกวดวิชานี้เราจะได้เรียนรู้วิธีการแสดงภาพใด ๆ บน OLED กับ NodeMCU ESP8266
การเขียนโปรแกรม NodeMCU สำหรับเชื่อมต่อ OLED
เช่นเคยมีการระบุรหัสที่สมบูรณ์ไว้ในตอนท้ายเราได้อธิบายรหัสโดยละเอียดที่นี่
เริ่มต้นรหัสด้วยการนำเข้าห้องสมุดที่จำเป็นเนื่องจากเราใช้โปรโตคอล SPI ดังนั้นเราจึงนำเข้าไลบรารี“ SPI.h” และนำเข้า“ Adafruit_GFX.h” และ“ Adafruit_SSD1306.h” สำหรับจอแสดงผล OLED
# รวม
ขนาด OLED ของเราคือ 128x64 ดังนั้นเราจึงตั้งค่าความกว้างและความสูงของหน้าจอเป็น 128 และ 64 ตามลำดับ ดังนั้นกำหนดตัวแปรสำหรับหมุด OLED ที่เชื่อมต่อกับ NodeMCU สำหรับการสื่อสาร SPI
# กำหนด SCREEN_WIDTH 128 // ความกว้างของจอแสดงผล OLED เป็นพิกเซล #define SCREEN_HEIGHT 64 // ความสูงของจอแสดงผล OLED เป็นพิกเซล // การประกาศสำหรับจอแสดงผล SSD1306 ที่เชื่อมต่อโดยใช้ซอฟต์แวร์ SPI (ตัวพิมพ์เริ่มต้น): # กำหนด OLED_MOSI D7 # กำหนด OLED_CLK D5 # กำหนด OLED_DC D2 # กำหนด OLED_CS D8 # กำหนด OLED_RESET D3 จอแสดงผล Adafruit_SSD1306 (SCREEN_WIDTH, SCREEN_HEIGHT, OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
เริ่มต้นของจอแสดงผล OLEDโดยใช้ SSD1306_SWITCHCAPVCC เพื่อสร้าง 3.3V ภายในเพื่อเริ่มต้นการแสดงผล
ถ้า (! display.begin (SSD1306_SWITCHCAPVCC)) { Serial.println (F ("การจัดสรร SSD1306 ล้มเหลว")); สำหรับ(;;); // ไม่ดำเนินการวนซ้ำตลอดไป }
การแสดงผลของหน้าจอ OLED จะถูกล้างก่อนที่จะแสดงสิ่งใด ๆ โดยเรียกใช้ฟังก์ชัน display.clearDisplay () เรากำหนดขนาดตัวอักษรถึง 2โดยการเรียกฟังก์ชั่น setTextSize (font-size) และการตั้งค่าสีของตัวอักษรและตำแหน่งเคอร์เซอร์โดยใช้ SetTextColor และ SetCursor ฟังก์ชั่น คำสั่ง Display.display () ใช้เพื่อถ่ายโอนข้อมูลไปยังหน่วยความจำภายในของคอนโทรลเลอร์ SSD1306 หลังจากถ่ายโอนพิกเซลจะปรากฏบนหน้าจอ ตอนนี้เราสามารถเริ่มเลื่อนข้อความได้หลายวิธีโดยเรียก display.startscrollright (x-pos, y-pos) และ display.startscrollleft (x-pos, y-pos) สำหรับเวลาที่กำหนดในฟังก์ชันหน่วงเวลา สามารถหยุดการเลื่อนข้อความได้โดยใช้ฟังก์ชัน display.stopscroll ()
เป็นโมฆะ testscrolltext (โมฆะ) {display.clearDisplay (); // ล้างหน้าจอแสดงผล OLED display.setTextSize (2); // วาดข้อความขนาด 2X display.setTextColor (WHITE); display.setCursor (0, 0); display.println (F ("CIRCUIT")); display.println (F ("DIGEST")); display.display (); // แสดงข้อความล่าช้าเริ่มต้น (100); // เลื่อนไปในทิศทางต่างๆหยุดระหว่าง: display.startscrollright (0x00, 0x0F); ล่าช้า (2000); display.stopscroll (); ล่าช้า (1,000); display.startscrollleft (0x00, 0x0F); ล่าช้า (2000); display.stopscroll (); ล่าช้า (1,000); display.startscrolldiagright (0x00, 0x07); ล่าช้า (2000); display.startscrolldiagleft (0x00, 0x07); ล่าช้า (2000); display.stopscroll (); ล่าช้า (1,000); }
เราเรียกฟังก์ชัน display.drawBitmap () ซึ่งใช้ 6 พารามิเตอร์ (พิกัด x, พิกัด y, อาร์เรย์บิตแมป, ความกว้าง, ความสูงและสี) เพื่อวาดภาพบน OLEDเนื่องจากขนาดหน้าจอของเราคือ 128x64 ดังนั้นเราจึงตั้งค่าความกว้างและความสูงเป็น 128 และ 64 ตามลำดับ ที่นี่บิตแมปอาร์เรย์ประกอบด้วยข้อมูลพิกเซลเพื่อวาดพิกเซลบนหน้าจอเพื่อสร้างภาพอาร์เรย์บิตแมปนี้สามารถสร้างได้ทางออนไลน์ซึ่งอธิบายไว้ด้านล่างหรือมีซอฟต์แวร์มากมายที่สามารถแปลงรูปภาพเป็นอาร์เรย์บิตแมป
const ไม่ได้ลงนามถ่าน myBitmap PROGMEM = { 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0ff, 0xff, 0xff, 0xff, 0xc0ff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf7, 0xc0, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc7, 0x80, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0f, 0x01, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0x03, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1e, 0x03, 0x3f, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3e, 0x03, 0x3f, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x3c, 0x03, 0x7f, 0xfeff, 0x07 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7c, 0x03, 0xf0, 0x3f, 0x83, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0x78, 0x00, 0xc0, 0x0f, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0xf8, 0x00, 0x00, 0x07, 0xe0, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x01, 0xf0, 0x00, 0x00, 0x03, 0xf8, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x001, 0xff, 0xfc, 0x001, 0xff 0x00, 0x00, 0xfc, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x03, 0xe0, 0x00, 0x0f, 0x00, 0x7e, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x07, 0xc0, 0x3f, 0xff, 0xff, 0x3f 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x7f, 0xf9, 0x80, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0x80, 0xff, 0xf9, 0x80, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0xff, 0xff, 0x80, 0x03, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xf0, 0x1f, 0x80, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xc0, 0x00, 0xff 0x06, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xc0, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x07, 0xc0, 0x00, 0x00, 0x00, 0x00 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x07, 0x80, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80 0x0f, 0x80, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x0f, 0x00, 0x80, 0x00, 0x00, 0x01, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x1e, 0x01, 0xe0, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03e , 0x00, 0xff, 0x03e 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x3c, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x7c, 0x03, 0x3f, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xf8, 0x01, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff , 0x00, 0x00, 0x00 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x01, 0xf0, 0x00, 0x00, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80 0x03, 0xb0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x03, 0x18, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x03, 0xbc, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x01 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0xff, 0xff, 0x80, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x1f, 0xff, 0x03, 0x00, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x07, 0xfc, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0x80, 0x03, 0xf0, 0x00, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0xc0, 0x00, 0x00, 0x0f, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x03, 0xff, 0xf8, 0x03, 0xff 0x00, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0xff, 0xe0, 0x00, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0xe0, 0x00, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x0e, 0x30, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0x07, 0x70, 0x00, 0xff, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x03, 0xe0, 0x1b, 0xfc, 0x01, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x01, 0xc0, 0x7f, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0x00, 0xff 0x7f, 0xc0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x67, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x66, 0x00, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x7e, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0x00, 0x00, 0x3c, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; display.drawBitmap (35, 0, myBitmap, 128, 64, ดำ, ขาว); display.display ();
แปลงรูปภาพเป็นค่าบิตแมป
สามารถสร้าง Bitmap ออนไลน์ได้จาก http://javl.github.io/image2cpp/ อัปโหลดไฟล์ภาพที่คุณต้องการแสดงบน OLED และกำหนดขนาดเป็น 128x64 ภาพตัวอย่างจะปรากฏขึ้นจากนั้นจะสร้างอาร์เรย์บิตแมป
ภาพหน้าจอด้านล่างแสดงกระบวนการสร้างค่าบิตแมปของรูปภาพใด ๆ
ในที่สุดอัปโหลดรหัสที่สมบูรณ์ไปยัง NodeMCU ESP8266 และคุณจะเห็นภาพที่แสดงบนหน้าจอ OLED ที่นี่เราจะแสดงโลโก้ CircuitDigest บนจอแสดงผล