首頁 > 評測 > OLED+U∞G2,原來單片機的屏幕也可以如此炫

OLED+U∞G2,原來單片機的屏幕也可以如此炫

OLED   U8G2   單片機   Arduino   seeed   GROVE   
  • 作者:SATURN
  • 來源:21ic
  • [導(dǎo)讀]
  • 本想買的是個全彩屏,到手發(fā)現(xiàn)被坑,不支持灰度顯示。不過還好有U8G2的工具支持,玩的依舊很開心!以后評測開發(fā)板不點燈了,點oled。

據(jù)說2016年是OLED元年,兩年過去了,超薄電視、顯示器越來越受歡迎,不過LCD也還健在,當(dāng)然也不必再去挖掘那些喜歡玩VFD的極客們對VFD的鐘愛之情了!

OLED顯示屏是利用有機電致發(fā)光二極管制成的顯示屏。由于同時具備自發(fā)光有機電激發(fā)光二極管,不需背光源、對比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡單等優(yōu)異之特性,被認為是下一代的平面顯示器新興應(yīng)用技術(shù)。

不過在嵌入式開發(fā)中,給MCU等設(shè)備連接一個小型的OLED,來顯示一些簡單的信息如IP地址、溫濕度等等,也是應(yīng)有之義。市面上各種OLED從接口、尺寸等來區(qū)分,確實種類繁多,剛好最近入手來自Seeed Studio的小OLED一枚,來好好體驗一把,真正的近距離!

rId22.jpg

這款OLED模塊使用標準的GROVE接口,以I2C的方式與MCU通信。GROVE OLED DISPLAY 1.12英寸模塊實際上有兩款型號,一款使用的是SSD1327,另一款使用的是SH1107G,這一款模塊使用的是SH1107G?上У氖,SH1107G這一款相比SSD1327來說,少了一些有興趣的特性,例如不支持灰度顯示,也不支持連續(xù)水平滾動。

rId23.jpg

據(jù)官方的文檔,V1.0應(yīng)該使用的是SSD1327主控,可惜實驗時發(fā)現(xiàn)卻是使用的是SH1107G的主控,不解!再有就是官方文檔中也沒有SH1107版的詳細文檔。

關(guān)于OLED和LCD的比較,也小小的學(xué)習(xí)一下。

rId24.jpg

OLED的許多優(yōu)勢,因為自發(fā)光,所以省電。OLED的色彩很漂亮、色域很廣,所以一直很喜歡曬他那NTSC 100%的顏值,不過今天的主角是黑白的,所以不曬也罷。另外其它的一些特性如高對比度,廣視角等特性,在黑白世界里也不怎么突出,所以聽過了就聽過了,一切都是浮云!

模塊使用I2C接口來通信,I2C結(jié)構(gòu)簡單,只要兩根線,通信速度也勉強應(yīng)付,所以很多對速度要求不高的設(shè)備都喜歡用I2C接口,至于對速度有要求的伙伴,可能更喜歡SPI。

接下來開始體驗顯示模塊,需要兩方面的準備工作:準備與之通信的MCU;選擇一套合適的GUI庫。綜合考慮下來,選擇Arduino做為硬件,選擇U8G2做為GUI庫似乎是個挺不錯的主意。Arduino資料豐富,簡單易上手,而U8G2也有配套的Arduino支持庫。

如果手頭有GROVE Arduino擴展板,連接起來很方便,沒有的話也不影響,使用杜邦線也可以很快連接好設(shè)備,如圖

rId25.jpg

官方為之提供了配套的Arduino庫,下載并安裝好后,可以在Examples目錄下找到對應(yīng)的示例程序。OLED的分辨率為128X128,用來顯示一些簡單的文字或LOGO還是比較寬裕的。

打開OLEDDrawBitmap這個程序,編譯并將代碼上傳到Arduino開發(fā)板,看到的顯示效果如下

rId26.jpg

鏡頭下的LOGO圖像略顯生硬,實際上顯示效果還是不錯的。

GROVE OLED DISPLAY提供的演示代碼還包括數(shù)字,英文字符的顯示等,沒有提供中文處理,不過使用簡單的畫點代碼,結(jié)合點陣字庫可以輕松實現(xiàn)中文的顯示,這里不贅述,因為接下來我們要使用更強大的U8G2庫來顯示更復(fù)雜的內(nèi)容,當(dāng)然也包括中文的顯示。

U8g2是非常一個非常強大的庫,是U8GLIB的升級版本,其主工功能包括:大量驅(qū)動芯片及不同分辨率的支持,這就讓用戶幾乎不必關(guān)心底層驅(qū)動的部分,只需要寫自己的程序就可以了,要知道底層驅(qū)動的調(diào)試比較費時間的;不同連接方式支持,可以支持硬件SPI、軟件SPI及8位并行控制方式等;支持Arduino、AVR及ARM等不同芯片,CPU升級時,移植代價比較小;大量字體顯示支持,包括CJK等文字的支持,同時也提供了實用工具來幫助用戶建立自己的字庫文件。

rId27.jpg

這是中英文字符的顯示方式,代碼簡單到不可思議,如下

code.jpg

顯示中文的奧秘隱藏在setFont函數(shù)調(diào)用中,使用中文字庫可以輕松顯示中文內(nèi)容。然而問題來了,中文字庫這么龐大,以Arduino的存儲空間來說,實在是太小了。好在U8G2提供了實用工具來幫助用戶建立自己的中文字庫,可以參考U8G2的幫助文檔來實現(xiàn)。

rId28.jpg

這是U8G2的LOGO顯示效果,這不是現(xiàn)成的圖像,而是使用U8G2的繪圖函數(shù)一筆一筆畫出來的!

越是使用U8G2,越是覺得順手!而這一切都是開源的,老衲也在想,是不是也整個啥藍芯啥的,打上自主研發(fā)的標簽,先實現(xiàn)一個小目標,賺它一個億?(夢醒!)

還在點燈?

現(xiàn)在只需要點幾下鼠標,寫幾行代碼,炫人的畫面就躍然屏上,老衲已按捺不住,偷偷的從MOUSER上訂了一個GROVE OLED DISPLAY,還有Arduino,要正版的!

  • 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!

網(wǎng)友評論