有機(jī)發(fā)光二極管(OLED)是一種高對(duì)比度和高分辨率的顯示器。這種顯示器沒(méi)有背光并且自己創(chuàng)建背光,這使得它們比LCD更清晰,更清晰和更平滑。美國(guó)物理化學(xué)家Ching W. Tang和Steven Van Slyke在Eastman Kodak于1987年建造了第一臺(tái)實(shí)用的OLED設(shè)備。如今我們可以看到升級(jí)后的OLED一代,如SAMSUNG的Super AMOLED和AMOLED Plus以及LG的POLED。
小型OLED模塊在電子項(xiàng)目中非常有用。布線的簡(jiǎn)單布線和高可讀性適用于顯示數(shù)據(jù),數(shù)字和簡(jiǎn)單圖像。您可以找到具有不同分辨率的這些面板的不同尺寸和顏色。根據(jù)您的項(xiàng)目,您可以選擇并行,SPI或I2C模型。有單色,2色和16位全彩色面板可供使用。我們選擇帶有SSD1306驅(qū)動(dòng)器和Arduino UNO的128 * 64,0.96英寸SPI OLED顯示器。閱讀本文的其余部分,了解如何在OLED顯示屏上顯示文本和圖像。
電路
不同的SPI OLED顯示器具有不同的引腳名稱(chēng)。使用上面的電路圖來(lái)了解模塊引腳名稱(chēng)的含義。大多數(shù)OLED模塊也使用3.3伏電源。您可以更改Arduino的引腳,但您也必須在代碼中更改它。
如果您沒(méi)有組件或不想購(gòu)買(mǎi)它們,可以通過(guò)Proteus仿真嘗試并根據(jù)您的興趣進(jìn)行編輯。下載以下項(xiàng)目文件。
代碼
為OLED模塊編寫(xiě)了很多庫(kù)。在本文中,我們選擇了WaveShare OLED SSD1306庫(kù)。它并不復(fù)雜,您甚至可以根據(jù)您的代碼更改庫(kù)。您必須先添加庫(kù),然后上傳代碼。如果這是您第一次運(yùn)行Arduino板,請(qǐng)不要擔(dān)心。只需按照以下步驟操作:
訪問(wèn)www.arduino.cc/en/Main/Software下載您的操作系統(tǒng)軟件。按照說(shuō)明安裝IDE軟件。
運(yùn)行Arduino IDE并清除文本編輯器并在文本編輯器中復(fù)制以下代碼。
導(dǎo)航到草圖并包含庫(kù)(從以下鏈接下載庫(kù))。現(xiàn)在單擊添加ZIP庫(kù)并添加庫(kù)
選擇工具和板中的板,選擇Arduino UNO。
將Arduino連接到PC并設(shè)置工具和端口中的COM端口。
按上傳(箭頭標(biāo)志)按鈕。
您已經(jīng)完成了設(shè)置!
結(jié)果
#include “ssd1306.h”
#define VCCSTATE SSD1306_SWITCHCAPVCC
#define WIDTH 128
#define HEIGHT 64
#define PAGES 8
#define OLED_RST 9
#define OLED_DC 8
#define OLED_CS 10
#define SPI_MOSI 11 /* connect to the DIN pin of OLED */
#define SPI_SCK 13 /* connect to the CLK pin of OLED */
uint8_t oled_buf[WIDTH * HEIGHT / 8];
void setup() {
Serial.begin(9600);
Serial.print(“OLED Example ”);
SSD1306_begin();
SSD1306_clear(oled_buf);
/* display images of bitmap matrix */
SSD1306_bitmap(0, 2, Signal816, 16, 8, oled_buf);
SSD1306_bitmap(24, 2,Bluetooth88, 8, 8, oled_buf);
SSD1306_bitmap(40, 2, Msg816, 16, 8, oled_buf);
SSD1306_bitmap(64, 2, GPRS88, 8, 8, oled_buf);
SSD1306_bitmap(90, 2, Alarm88, 8, 8, oled_buf);
SSD1306_bitmap(112, 2, Bat816, 16, 8, oled_buf);
SSD1306_string(0, 52, “MUSIC”, 12, 0, oled_buf);
SSD1306_string(52, 52, “MENU”, 12, 0, oled_buf);
SSD1306_string(98, 52, “PHONE”, 12, 0, oled_buf);
SSD1306_char3216(0, 16, ‘1’, oled_buf);
SSD1306_char3216(16, 16, ‘2’, oled_buf);
SSD1306_char3216(32, 16, ‘:’, oled_buf);
SSD1306_char3216(48, 16, ‘3’, oled_buf);
SSD1306_char3216(64, 16, ‘4’, oled_buf);
SSD1306_char3216(80, 16, ‘:’, oled_buf);
SSD1306_char3216(96, 16, ‘5’, oled_buf);
SSD1306_char3216(112, 16, ‘6’, oled_buf);
SSD1306_display(oled_buf);
}
void loop() {
}
您可以使用面包板和公/母跳線來(lái)完成它。
現(xiàn)在上傳代碼。
顯示圖像和動(dòng)畫(huà)
要顯示圖像,必須將其轉(zhuǎn)換為十六進(jìn)制代碼。有幾個(gè)應(yīng)用程序?qū)D像轉(zhuǎn)換為十六進(jìn)制代碼。您可以從以下鏈接下載其中一個(gè)。首先,運(yùn)行軟件并從“文件”菜單中打開(kāi)圖像。您的圖像尺寸應(yīng)小于128 * 64像素。然后單擊“選項(xiàng)”菜單中的轉(zhuǎn)換,并確保設(shè)置與下圖相同。
單擊“文件”菜單中的“轉(zhuǎn)換”?,F(xiàn)在打開(kāi).c文件并復(fù)制十六進(jìn)制代碼。在主代碼中,按以下格式添加十六進(jìn)制代碼。
const uint8_t SAMPLE_NAME [] PROGMEM = {0x00,0x00,0x00,0x00 。..。.. 0xFF};
現(xiàn)在,將以下行添加到循環(huán)中。
SSD1306_bitmap(0,0,SAMPLE_NAME,128,64,oled_buf);//(x位置,y位置,圖像名稱(chēng),寬度,高度)
已完成,上傳代碼到Arduino。
下一步是什么?
為了更多練習(xí),我們添加了一個(gè)示例規(guī)范和文本動(dòng)畫(huà)。嘗試編輯它并在顯示屏上制作自己的動(dòng)畫(huà)。
您還可以在ElectroPeak官方網(wǎng)站上閱讀此項(xiàng)目。
https://electropeak.com/learn/引導(dǎo)件/所述-初學(xué)者引導(dǎo)到顯示文本的圖像的動(dòng)畫(huà)-OLED顯示逐Arduino的上/
-
OLED
+關(guān)注
關(guān)注
120文章
6284瀏覽量
227967 -
Arduino
+關(guān)注
關(guān)注
190文章
6497瀏覽量
192016
發(fā)布評(píng)論請(qǐng)先 登錄
如何在樹(shù)莓派上安裝并運(yùn)行 Arduino 集成開(kāi)發(fā)環(huán)境!

TRCX應(yīng)用:OLED 像素模擬及電容提取
Techwiz OLED:多單元&多疇
Techwiz OLED應(yīng)用:透明顯示
Techwiz OLED應(yīng)用:OLED器件的發(fā)光效率
TRCX應(yīng)用:OLED重復(fù)結(jié)構(gòu)的模擬
如何使用Arduino實(shí)現(xiàn)CAN總線通信呢
如何使用Arduino實(shí)現(xiàn)CAN總線通信
oled是什么顯示屏 OLED與LCD的區(qū)別
在DVEVM上通過(guò)ddd運(yùn)行Demo


Arduino Nano 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

評(píng)論