在Arduino平臺中,要在OLED顯示器中輸出資訊(文字、圖形)可使用最簡單方便的 U8g2 程式庫,U8g2支援單色OLED和LCD的顯示,支援的顯示晶片除常見的SSD系列外,還支援SH、TR、RA、LC...等晶片,詳細支援列表請參考 這裡。
接腳設定
在Arduino IDE 中安裝 U8g2 程式庫
點選 草稿碼 / 匯入程式庫 管理程式庫
輸入 u8g2 關鍵字即可搜尋到程式庫,按下 安裝 按鈕即可匯入程式庫。
U8g2 程式庫常用方法
- begin():建立顯示物件
- clearDisplay():清除顯示內容
- clearBuffer():清除暫存區
- enableUTF8Print():啓用 UTF8字串列印功能
- disableUTF8Print():停用 UTF8字串列印功能
- setFont(const uint8_t *font):設置字型,完整字型清單請參考 這裡
- drawStr(u8g2_uint_t x, u8g2_uint_t y, const char *s) :繪製字串
- @param x 左上角的x座標
- @param y 左上角的y座標
- param s 字串內容
- drawUTF8(u8g2_uint_t x, u8g2_uint_t y, const char *s):繪製UTF8字串
- @param x 字串在屏幕上的左下角x座標
- @param y 字串在屏幕上的左下角y座標
- @param s 要繪製的UTF-8編碼字串
- setCursor(u8g2_uint_t x, u8g2_uint_t y):設定繪製座標
- print(...):在當前繪製座標上繪製內容(輸出字串、圖形)
1. 電源接線:
【ESP32】3.3V →【OLED】VCC
【ESP32】GND →【OLED】GND
2. 信號接線:
【ESP32】22→【ESP-01】SCL
【ESP32】21→【ESP-01】SDA
撰寫實驗程式如下:
#include <U8g2lib.h>//引入程式庫 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE); int x=127; //初始繪製字串的X座標位置 void setup(void) { u8g2.begin(); //初始顯示器物件 u8g2.setFont(u8g2_font_t0_22b_te); //指定字型 } void loop(void) { u8g2.clearBuffer(); //清除暫存區 u8g2.drawStr(x+10, 20, "WELLCOME"); 設定繪製內容 u8g2.drawStr(x, 55, "ValorStudio"); u8g2.sendBuffer(); //送出繪製內容 //改變繪製位置 x=x-1; if(x<=-127) {x=127;}; delay(10); }