[Arduino技巧]使用u8g2函式庫建立自訂字庫,讓OLED顯示中文
Arduino的絕大多數的顯示設備,都無法直接顯示中文。一般的解決方法就是用圖形在顯示中文內容,這方法其實也算是可行了。但還有更厲害的招式,就是使用u8g2的顯示器函式庫,它有自訂字型庫的功能,透過它,我們可以自訂自己的字庫! »
Arduino的絕大多數的顯示設備,都無法直接顯示中文。一般的解決方法就是用圖形在顯示中文內容,這方法其實也算是可行了。但還有更厲害的招式,就是使用u8g2的顯示器函式庫,它有自訂字型庫的功能,透過它,我們可以自訂自己的字庫! »
u8g2函式庫,它算是u8glib的新版本,它對顯示器的支援超強大的!舉凡常見的OLED,像是SSD1306和SH1106,或是其它各種TFT LCD,都在它的支援範圍,真的是學一招就無敵了! »
Arduino操作輸入的方法還不少,最簡單的當然是按鈕相關的元件了。但如果輸入變得複雜,像是要輸入密碼之類的,可能就要考慮使用鍵盤模組了。Arduino的鍵盤種類相當多,最常被使用的,就是薄膜式的4x4、4x3,基本上這兩款的使用方法一模一樣,我們先以4x4版本來做說明。 »
在Arduino的應用中,如果你有一些簡單的資料需要記錄,像是溫濕度、時間等等,可以透過SD模組,將資料寫進SD卡或micro SD卡中。傑森最推薦SdFat函式庫,語法簡單,而且有Adafruit版本,如果你要用Adafruit的TFT函式庫,想讀圖檔,就必須和SdFat來配合。 »
ST7290 LCD蠻常見的,也被叫做12864 LCD,因為它的解析度是128x64。它可以顯示蠻好看的字型,還能顯示圖形,重要的是,特定的型號還有內建繁體中文!是的,可以很輕鬆就能顯示中文。 »
有關環境數值的偵測,溫濕度是最常見的應用,而用DHT11來偵測溫度和濕度,也是Arduino的入門範例之一,只要利用DHT的函式庫,真的很簡單!DHT22也適用。然後把數值顯示在LCD上,整個專題就很完整了! »
OLED的尺寸還不少,常見的0.96吋和0.91吋都屬於SSD1106系列,但常見的就有一款1.3吋的,這就麻煩了,它是SH1106模組,函式庫無法共用,傑森習慣上用wonho-maker改寫自Adafruit SSD1106的函式庫,因為用法和Adafruit SSD1106幾乎相同,很方便。 »
這是一個簡單的範例,只是把DS1302時間模組和1602 LCD結合,順便用之前談過的LCD大字型,做成一個蠻漂亮的Arduino時鐘,非常適合初學者練習。 »
Arduino的顯示方式最常見的是用1602 LCD,第二順位應該就是OLED了。OLED的優點在於顯示效果非常漂亮,還能顯示圖片,尺寸雖然不大,但完全不影響閱讀效果,所以相當受開發者的喜愛。 »
一般Arduino常用的1602 LCD,不論是16x2或是20x4,字型尺寸是固定的,有時可能只是要顯示時間或是溫度,字數不多,佔整個LCD的比例有點小,這時就會想說,能不能把字型變大呢?當然是可行的! »