2024年5月20日 星期一

利用ESP32配合U8g2程式庫在OLED中輸出字串

在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);
}

沒有留言:

張貼留言

熱門文章