找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 20527|回復(fù): 5
收起左側(cè)

Arduino初學(xué)者在OLED上顯示文本,圖像和動畫 程序+資料

  [復(fù)制鏈接]
ID:472844 發(fā)表于 2019-7-20 20:15 | 顯示全部樓層 |閱讀模式
在本文中,您將學(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 年建造了第一臺實用的

OLED 設(shè)備。如今我們可以看到升級后的 OLED,如 SAMSUNG 的

Super AMOLED 和 AMOLED Plus 以及 LG 的 POLED。


小型 OLED 模塊在電子項目中非常有用。簡單的布線和高可讀性的顯示 器適用于顯示數(shù)據(jù),數(shù)字和簡單圖像。您可以找到具有不同分辨率的這 些面板的不同尺寸和顏色。根據(jù)您的項目,您可以選擇并行,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)行編輯。下載以下項目文件。




有許多針對 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 端
按上傳(箭頭符號)按鈕。
你們都準(zhǔn)備好了!

集合 您可以使用面包板和公/母跳線進(jìn)行操作。 現(xiàn)在上傳代碼。



要顯示圖像,您必須將其轉(zhuǎn)換為十六進(jìn)制代碼。有幾個應(yīng)用程序?qū)D像

轉(zhuǎn)換為十六進(jìn)制代碼。您可以從以下鏈接下載其中一個。首先,運(yùn)行軟 件并從“文件”菜單中打開圖像。您的圖像尺寸應(yīng)小于128 * 64 像素。然 后單擊“選項”菜單中的轉(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 location, y location, Name of image, width, height)


完成后,將代碼上傳到 Arduino。


有關(guān)更多練習(xí),我們添加示例規(guī)范和文本動畫。嘗試編輯它并在顯示屏

上制作自己的動畫。


  1. #include "ssd1306.h"
  2. #define VCCSTATE SSD1306_SWITCHCAPVCC
  3. #define WIDTH     128
  4. #define HEIGHT     64
  5. #define PAGES       8
  6. #define OLED_RST    9
  7. #define OLED_DC     8
  8. #define OLED_CS    10
  9. #define SPI_MOSI   11    /* connect to the DIN pin of OLED */
  10. #define SPI_SCK    13     /* connect to the CLK pin of OLED */

  11. uint8_t oled_buf[WIDTH * HEIGHT / 8];

  12. void setup() {
  13.   Serial.begin(9600);
  14.   Serial.print("OLED Example\n");


  15.   SSD1306_begin();
  16.   SSD1306_clear(oled_buf);

  17.   /* display images of bitmap matrix */
  18.   SSD1306_bitmap(0, 2, Signal816, 16, 8, oled_buf);
  19.   SSD1306_bitmap(24, 2,Bluetooth88, 8, 8, oled_buf);
  20.   SSD1306_bitmap(40, 2, Msg816, 16, 8, oled_buf);
  21.   SSD1306_bitmap(64, 2, GPRS88, 8, 8, oled_buf);
  22.   SSD1306_bitmap(90, 2, Alarm88, 8, 8, oled_buf);
  23.   SSD1306_bitmap(112, 2, Bat816, 16, 8, oled_buf);

  24.   SSD1306_string(0, 52, "MUSIC", 12, 0, oled_buf);
  25.   SSD1306_string(52, 52, "MENU", 12, 0, oled_buf);
  26.   SSD1306_string(98, 52, "PHONE", 12, 0, oled_buf);

  27.   SSD1306_char3216(0, 16, '1', oled_buf);
  28.   SSD1306_char3216(16, 16, '2', oled_buf);
  29.   SSD1306_char3216(32, 16, ':', oled_buf);
  30.   SSD1306_char3216(48, 16, '3', oled_buf);
  31.   SSD1306_char3216(64, 16, '4', oled_buf);
  32.   SSD1306_char3216(80, 16, ':', oled_buf);
  33.   SSD1306_char3216(96, 16, '5', oled_buf);
  34.   SSD1306_char3216(112, 16, '6', oled_buf);

  35.   SSD1306_display(oled_buf);
  36. }

  37. void loop() {

  38. }
復(fù)制代碼

全部資料51hei下載地址:
OLED.zip (10.89 MB, 下載次數(shù): 233)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:1040525 發(fā)表于 2022-7-26 08:00 | 顯示全部樓層
四針如何連接
回復(fù)

使用道具 舉報

ID:53978 發(fā)表于 2021-2-26 21:45 | 顯示全部樓層
怎么加載不上ssd1306.h庫呢
回復(fù)

使用道具 舉報

ID:452731 發(fā)表于 2019-11-19 16:58 | 顯示全部樓層
開發(fā)思路,可以借鑒
回復(fù)

使用道具 舉報

ID:383182 發(fā)表于 2019-11-14 09:10 | 顯示全部樓層
正好需要這個 謝謝
回復(fù)

使用道具 舉報

ID:282095 發(fā)表于 2019-7-21 10:47 | 顯示全部樓層
現(xiàn)在據(jù)說中學(xué)生都在學(xué)adrinuo
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表