首頁(yè) > 評(píng)測(cè) > OLED+U∞G2,原來(lái)單片機(jī)的屏幕也可以如此炫
OLED+U∞G2,原來(lái)單片機(jī)的屏幕也可以如此炫
- [導(dǎo)讀]
- 本想買(mǎi)的是個(gè)全彩屏,到手發(fā)現(xiàn)被坑,不支持灰度顯示。不過(guò)還好有U8G2的工具支持,玩的依舊很開(kāi)心!以后評(píng)測(cè)開(kāi)發(fā)板不點(diǎn)燈了,點(diǎn)oled。
據(jù)說(shuō)2016年是OLED元年,兩年過(guò)去了,超薄電視、顯示器越來(lái)越受歡迎,不過(guò)LCD也還健在,當(dāng)然也不必再去挖掘那些喜歡玩VFD的極客們對(duì)VFD的鐘愛(ài)之情了!
OLED顯示屏是利用有機(jī)電致發(fā)光二極管制成的顯示屏。由于同時(shí)具備自發(fā)光有機(jī)電激發(fā)光二極管,不需背光源、對(duì)比度高、厚度薄、視角廣、反應(yīng)速度快、可用于撓曲性面板、使用溫度范圍廣、構(gòu)造及制程較簡(jiǎn)單等優(yōu)異之特性,被認(rèn)為是下一代的平面顯示器新興應(yīng)用技術(shù)。
不過(guò)在嵌入式開(kāi)發(fā)中,給MCU等設(shè)備連接一個(gè)小型的OLED,來(lái)顯示一些簡(jiǎn)單的信息如IP地址、溫濕度等等,也是應(yīng)有之義。市面上各種OLED從接口、尺寸等來(lái)區(qū)分,確實(shí)種類繁多,剛好最近入手來(lái)自Seeed Studio的小OLED一枚,來(lái)好好體驗(yàn)一把,真正的近距離!
這款OLED模塊使用標(biāo)準(zhǔn)的GROVE接口,以I2C的方式與MCU通信。GROVE OLED DISPLAY 1.12英寸模塊實(shí)際上有兩款型號(hào),一款使用的是SSD1327,另一款使用的是SH1107G,這一款模塊使用的是SH1107G。可惜的是,SH1107G這一款相比SSD1327來(lái)說(shuō),少了一些有興趣的特性,例如不支持灰度顯示,也不支持連續(xù)水平滾動(dòng)。
據(jù)官方的文檔,V1.0應(yīng)該使用的是SSD1327主控,可惜實(shí)驗(yàn)時(shí)發(fā)現(xiàn)卻是使用的是SH1107G的主控,不解!再有就是官方文檔中也沒(méi)有SH1107版的詳細(xì)文檔。
關(guān)于OLED和LCD的比較,也小小的學(xué)習(xí)一下。
OLED的許多優(yōu)勢(shì),因?yàn)樽园l(fā)光,所以省電。OLED的色彩很漂亮、色域很廣,所以一直很喜歡曬他那NTSC 100%的顏值,不過(guò)今天的主角是黑白的,所以不曬也罷。另外其它的一些特性如高對(duì)比度,廣視角等特性,在黑白世界里也不怎么突出,所以聽(tīng)過(guò)了就聽(tīng)過(guò)了,一切都是浮云!
模塊使用I2C接口來(lái)通信,I2C結(jié)構(gòu)簡(jiǎn)單,只要兩根線,通信速度也勉強(qiáng)應(yīng)付,所以很多對(duì)速度要求不高的設(shè)備都喜歡用I2C接口,至于對(duì)速度有要求的伙伴,可能更喜歡SPI。
接下來(lái)開(kāi)始體驗(yàn)顯示模塊,需要兩方面的準(zhǔn)備工作:準(zhǔn)備與之通信的MCU;選擇一套合適的GUI庫(kù)。綜合考慮下來(lái),選擇Arduino做為硬件,選擇U8G2做為GUI庫(kù)似乎是個(gè)挺不錯(cuò)的主意。Arduino資料豐富,簡(jiǎn)單易上手,而U8G2也有配套的Arduino支持庫(kù)。
如果手頭有GROVE Arduino擴(kuò)展板,連接起來(lái)很方便,沒(méi)有的話也不影響,使用杜邦線也可以很快連接好設(shè)備,如圖
官方為之提供了配套的Arduino庫(kù),下載并安裝好后,可以在Examples目錄下找到對(duì)應(yīng)的示例程序。OLED的分辨率為128X128,用來(lái)顯示一些簡(jiǎn)單的文字或LOGO還是比較寬裕的。
打開(kāi)OLEDDrawBitmap這個(gè)程序,編譯并將代碼上傳到Arduino開(kāi)發(fā)板,看到的顯示效果如下
鏡頭下的LOGO圖像略顯生硬,實(shí)際上顯示效果還是不錯(cuò)的。
GROVE OLED DISPLAY提供的演示代碼還包括數(shù)字,英文字符的顯示等,沒(méi)有提供中文處理,不過(guò)使用簡(jiǎn)單的畫(huà)點(diǎn)代碼,結(jié)合點(diǎn)陣字庫(kù)可以輕松實(shí)現(xiàn)中文的顯示,這里不贅述,因?yàn)榻酉聛?lái)我們要使用更強(qiáng)大的U8G2庫(kù)來(lái)顯示更復(fù)雜的內(nèi)容,當(dāng)然也包括中文的顯示。
U8g2是非常一個(gè)非常強(qiáng)大的庫(kù),是U8GLIB的升級(jí)版本,其主工功能包括:大量驅(qū)動(dòng)芯片及不同分辨率的支持,這就讓用戶幾乎不必關(guān)心底層驅(qū)動(dòng)的部分,只需要寫(xiě)自己的程序就可以了,要知道底層驅(qū)動(dòng)的調(diào)試比較費(fèi)時(shí)間的;不同連接方式支持,可以支持硬件SPI、軟件SPI及8位并行控制方式等;支持Arduino、AVR及ARM等不同芯片,CPU升級(jí)時(shí),移植代價(jià)比較小;大量字體顯示支持,包括CJK等文字的支持,同時(shí)也提供了實(shí)用工具來(lái)幫助用戶建立自己的字庫(kù)文件。
這是中英文字符的顯示方式,代碼簡(jiǎn)單到不可思議,如下
顯示中文的奧秘隱藏在setFont函數(shù)調(diào)用中,使用中文字庫(kù)可以輕松顯示中文內(nèi)容。然而問(wèn)題來(lái)了,中文字庫(kù)這么龐大,以Arduino的存儲(chǔ)空間來(lái)說(shuō),實(shí)在是太小了。好在U8G2提供了實(shí)用工具來(lái)幫助用戶建立自己的中文字庫(kù),可以參考U8G2的幫助文檔來(lái)實(shí)現(xiàn)。
這是U8G2的LOGO顯示效果,這不是現(xiàn)成的圖像,而是使用U8G2的繪圖函數(shù)一筆一筆畫(huà)出來(lái)的!
越是使用U8G2,越是覺(jué)得順手!而這一切都是開(kāi)源的,老衲也在想,是不是也整個(gè)啥藍(lán)芯啥的,打上自主研發(fā)的標(biāo)簽,先實(shí)現(xiàn)一個(gè)小目標(biāo),賺它一個(gè)億?(夢(mèng)醒!)
還在點(diǎn)燈?
現(xiàn)在只需要點(diǎn)幾下鼠標(biāo),寫(xiě)幾行代碼,炫人的畫(huà)面就躍然屏上,老衲已按捺不住,偷偷的從MOUSER上訂了一個(gè)GROVE OLED DISPLAY,還有Arduino,要正版的!
- 本文系21ic原創(chuàng),未經(jīng)許可禁止轉(zhuǎn)載!
網(wǎng)友評(píng)論
- 聯(lián)系人:巧克力娃娃
- 郵箱:board@21ic.com
- 我要投稿
-
歡迎入駐,開(kāi)放投稿
- NRF52810藍(lán)牙數(shù)字耳機(jī)找人定制
預(yù)算:¥30005天前
- 125KW模塊式PCS軟硬件外包開(kāi)發(fā)
預(yù)算:¥1100000015小時(shí)前
- 12V汽車(chē)啟動(dòng)電源項(xiàng)目BMS設(shè)計(jì)
預(yù)算:¥50000023小時(shí)前
- 數(shù)據(jù)可視化軟件 開(kāi)發(fā)
預(yù)算:¥5000023小時(shí)前
- PLC項(xiàng)目調(diào)試修改
預(yù)算:¥100001天前
- 起動(dòng)電機(jī)控制器開(kāi)發(fā)
預(yù)算:¥1100001天前