|
在本文中,您將學(xué)習(xí)如何通過Arduino運(yùn)行OLED,并在其上顯示文本,圖像和動畫。
硬件組件:
Arduino Uno Rev3× 1
0.96英寸OLED 64x128顯示模塊× 1
21厘米40P公/母跳線× 1
軟件應(yīng)用程序和在線服務(wù):
Arduino IDE
在本文附件中,我們將介紹OLED顯示器、OLED顯示器的差異,如何通過簡單的控制器運(yùn)行它們,以及在它們上顯示文本和圖像。非常適合新手小白學(xué)習(xí)如何在OLED上顯示文本、圖像和動畫。
在本文中,我們將討論 OLED 顯示器的故事及其差異,如何通過簡單的
控制器運(yùn)行它們,以及在它們上顯示文本和圖像。在本文結(jié)尾處,您將 能夠:
解釋 OLED 顯示理論
運(yùn)行 Arduino 的 OLED 顯示器
顯示所有類型的文本或圖像
顯示簡單的動畫
OLED:什么是理論? 有機(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)航到草圖并包含庫(從以下鏈接下載庫)。現(xiàn)在單擊添加 ZIP 庫并添 加庫
選擇工具和板卡中的板,選擇 Arduino UNO。
將 Arduino 連接到 PC 并在工具和端口中設(shè)置 COM 端 按上傳(箭頭符號)按鈕。
你們都準(zhǔn)備好了!
集合 您可以使用面包板和公/母跳線進(jìn)行操作。 現(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)換。現(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 location, y location, Name of image, width, height)
完成后,將代碼上傳到 Arduino。
有關(guān)更多練習(xí),我們添加示例規(guī)范和文本動畫。嘗試編輯它并在顯示屏
上制作自己的動畫。

- #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\n");
- 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() {
- }
復(fù)制代碼
全部資料51hei下載地址:
OLED.zip
(10.89 MB, 下載次數(shù): 233)
2019-7-20 20:15 上傳
點(diǎn)擊文件名下載附件
原理圖、項(xiàng)目詳細(xì)、源碼 下載積分: 黑幣 -5
|
評分
-
查看全部評分
|