如何使用OLED顯示器與Arduino
在本教程中,您將了解Arduino OLED接口。在第一部分中,我們將在OLED上顯示溫濕度傳感器的數(shù)據(jù),在第二部分中,我們將在OLED上顯示iPhone,三星和LG的徽標(biāo)。
在將其與Arduino連接之前,讓我們?cè)敿?xì)了解OLED是什么以及它是如何工作的。
OLED
OLED是有機(jī)發(fā)光二極管的縮寫。OLED顯示屏非常小,分辨率很高。這些顯示器沒有背光,它們自己發(fā)光。這就是為什么這些是非常低功耗的設(shè)備。
工作
當(dāng)電壓加到OLED上時(shí)。電流通過OLED的有機(jī)層從陰極流向陽極。陰極將電子提供給有機(jī)分子的發(fā)射層,陽極將電子從有機(jī)分子的導(dǎo)電層中移除。
在導(dǎo)電層和發(fā)射層之間的邊界處,產(chǎn)生電子空穴。這些空穴被電子填滿,OLED就會(huì)發(fā)光。OLED的顏色取決于所使用的有機(jī)分子。
OLED和Arduino
我們將要使用的OLED有單獨(dú)的128X64白色OLED像素。它的尺寸為0.96“(25毫米X 14毫米)。其他尺寸的OLED也可以買到。本教程中使用的OLED是單色的(只有一種顏色),但你也可以得到具有多種顏色的OLED。
該OLED使用SPI通信與Arduino進(jìn)行通信。SPI通信比I2C通信快,因此這將使我們的顯示更快。
線路圖
OLED運(yùn)行在3.3V,所以不要連接到Arduino的5V。它可能會(huì)工作,但OLED的壽命會(huì)減少。
用Arduino連接OLED和DHT22,如下圖所示
如果您想了解更多關(guān)于DHT22與Arduino接口的信息,請(qǐng)遵循本教程|溫濕度傳感器DHT22與Arduino接口
代碼
代碼的解釋
對(duì)于OLED,我們使用了U8glib庫。讓我們看看庫是如何工作的。
數(shù)據(jù)以圖像循環(huán)的形式打印在OLED上。firstPage()顯示了圖片循環(huán)的開始。在它旁邊,我們需要?jiǎng)?chuàng)建“do while”循環(huán)。我們想要在OLED上顯示的任何內(nèi)容都應(yīng)該寫入“do while”循環(huán)?!癲o while”循環(huán)將繼續(xù)運(yùn)行,直到nextpage()返回‘ 1 ’。
u8g.setFont(u8g_font_helvB10)命令將設(shè)置字體。這個(gè)庫有不同的字體大小和設(shè)計(jì),你可以從下面的鏈接找到。
U8glib字體
u8 . drawstr (30,10, “ Welcome “)命令將在X, Y位置打印” Welcome ”。值“30”表示水平位置(X),值“10”表示垂直位置(Y)。其他繪制命令也是這樣工作的。
代碼中使用的u8g.setPrintPos(75,15)命令將指針設(shè)置為X (75), Y(15)位置。然后可以使用u8g.print()命令打印傳感器輸出。
如何在OLED上繪制位圖
現(xiàn)在讓我們?cè)贠LED上畫位圖。我們將在OLED上繪制IPhone、三星、LG的標(biāo)志?!边@個(gè)例子的電路圖如下所示。
在OLED上繪制的圖片的最大尺寸應(yīng)該是128X64像素,圖片應(yīng)該是黑白的,因?yàn)槲覀兊腛LED是單色的,這意味著它只有一種顏色。如果你有多色OLED,那么你可以顯示彩色圖片。
我下載了黑色和白色的標(biāo)志,并在繪畫工具中調(diào)整了它們的大小。油漆在主菜單中有調(diào)整大小的選項(xiàng),在下圖中用黃色突出顯示。如果調(diào)整大小選項(xiàng)不起作用,那么你也可以從下圖中圈出的小矩形中拖動(dòng)繪圖區(qū)域。
你可以從下面下載我使用的位圖圖片。
調(diào)整圖片大小后,需要下載LCD輔助軟件。
下載完成后,打開LCD助手軟件,在文件菜單中加載其中的圖像。LCD助手軟件的設(shè)置應(yīng)該如下圖所示:
現(xiàn)在打開文件菜單并單擊保存輸出。保存文件名,最后以“。c”結(jié)尾,如“l(fā)ogo.c”。然后在文本編輯器中打開保存的文件并從中復(fù)制代碼。這將是在OLED上創(chuàng)建位圖圖片的代碼。然后將其粘貼到Arduino代碼中,就像我在下面的代碼中所做的那樣。
代碼
此代碼將在OLED上逐一繪制IPhone徽標(biāo),三星日志和LG徽標(biāo)。我們?cè)诖a中使用的位圖命令的語法如下:
本文編譯自hackster.io





