有機(jī)發(fā)光二極管(OLED)是一種高對比度和高分辨率的顯示器。這種顯示器沒有背光并且自己創(chuàng)建背光,這使得它們比LCD更清晰,更清晰和更平滑。美國物理化學(xué)家Ching W. Tang和Steven Van Slyke在Eastman Kodak于1987年建造了第一臺實(shí)用的OLED設(shè)備。如今我們可以看到升級后的OLED一代,如SAMSUNG的Super AMOLED和AMOLED Plus以及LG的POLED。
小型OLED模塊在電子項(xiàng)目中非常有用。布線的簡單布線和高可讀性適用于顯示數(shù)據(jù),數(shù)字和簡單圖像。您可以找到具有不同分辨率的這些面板的不同尺寸和顏色。根據(jù)您的項(xiàng)目,您可以選擇并行,SPI或I2C模型。有單色,2色和16位全彩色面板可供使用。我們選擇帶有SSD1306驅(qū)動器和Arduino UNO的128 * 64,0.96英寸SPI OLED顯示器。閱讀本文的其余部分,了解如何在OLED顯示屏上顯示文本和圖像。
電路
不同的SPI OLED顯示器具有不同的引腳名稱。使用上面的電路圖來了解模塊引腳名稱的含義。大多數(shù)OLED模塊也使用3.3伏電源。您可以更改Arduino的引腳,但您也必須在代碼中更改它。
如果您沒有組件或不想購買它們,可以通過Proteus仿真嘗試并根據(jù)您的興趣進(jìn)行編輯。下載以下項(xiàng)目文件。
代碼
為OLED模塊編寫了很多庫。在本文中,我們選擇了WaveShare OLED SSD1306庫。它并不復(fù)雜,您甚至可以根據(jù)您的代碼更改庫。您必須先添加庫,然后上傳代碼。如果這是您第一次運(yùn)行Arduino板,請不要擔(dān)心。只需按照以下步驟操作:
訪問www.arduino.cc/en/Main/Software下載您的操作系統(tǒng)軟件。按照說明安裝IDE軟件。
運(yùn)行Arduino IDE并清除文本編輯器并在文本編輯器中復(fù)制以下代碼。
導(dǎo)航到草圖并包含庫(從以下鏈接下載庫)?,F(xiàn)在單擊添加ZIP庫并添加庫
選擇工具和板中的板,選擇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() {
}
您可以使用面包板和公/母跳線來完成它。
現(xiàn)在上傳代碼。
顯示圖像和動畫
要顯示圖像,必須將其轉(zhuǎn)換為十六進(jìn)制代碼。有幾個(gè)應(yīng)用程序?qū)D像轉(zhuǎn)換為十六進(jìn)制代碼。您可以從以下鏈接下載其中一個(gè)。首先,運(yùn)行軟件并從“文件”菜單中打開圖像。您的圖像尺寸應(yīng)小于128 * 64像素。然后單擊“選項(xiàng)”菜單中的轉(zhuǎn)換,并確保設(shè)置與下圖相同。
單擊“文件”菜單中的“轉(zhuǎn)換”?,F(xiàn)在打開.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位置,圖像名稱,寬度,高度)
已完成,上傳代碼到Arduino。
下一步是什么?
為了更多練習(xí),我們添加了一個(gè)示例規(guī)范和文本動畫。嘗試編輯它并在顯示屏上制作自己的動畫。
您還可以在ElectroPeak官方網(wǎng)站上閱讀此項(xiàng)目。
https://electropeak.com/learn/引導(dǎo)件/所述-初學(xué)者引導(dǎo)到顯示文本的圖像的動畫-OLED顯示逐Arduino的上/
-
OLED
+關(guān)注
關(guān)注
119文章
6223瀏覽量
225095 -
Arduino
+關(guān)注
關(guān)注
188文章
6477瀏覽量
188114
發(fā)布評論請先 登錄
相關(guān)推薦
TRCX應(yīng)用:OLED重復(fù)結(jié)構(gòu)的模擬
如何使用Arduino實(shí)現(xiàn)CAN總線通信呢
如何使用Arduino實(shí)現(xiàn)CAN總線通信
在DVEVM上通過ddd運(yùn)行Demo
![在DVEVM上<b class='flag-5'>通過</b>ddd<b class='flag-5'>運(yùn)行</b>Demo](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
![](https://file1.elecfans.com/web2/M00/02/8E/wKgZoma8bfSAcmQGAAuPiF0kd7U008.png)
Arduino Nano 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
![<b class='flag-5'>Arduino</b> Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 <b class='flag-5'>OLED</b>顯示](https://file1.elecfans.com/web2/M00/02/62/wKgZoma7LraAIX68AAHwAf2dvXI565.png)
評論