0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

怎樣通過Arduino運(yùn)行OLED

454398 ? 來源:工程師吳畏 ? 2019-08-05 09:32 ? 次閱讀

有機(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。

怎樣通過Arduino運(yùn)行OLED

小型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的上/

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • OLED
    +關(guān)注

    關(guān)注

    119

    文章

    6223

    瀏覽量

    225095
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6477

    瀏覽量

    188114
收藏 人收藏

    評論

    相關(guān)推薦

    TRCX應(yīng)用:OLED重復(fù)結(jié)構(gòu)的模擬

    在計(jì)算OLED面板的MxN區(qū)域的電容時(shí),模擬區(qū)域被分割成重復(fù)的TFT陣列(單位區(qū)域)。為了準(zhǔn)確計(jì)算電容,應(yīng)考慮周圍電極的電場。TRCX的最佳分割和重建算法可以減少計(jì)算機(jī)內(nèi)存使用量和仿真運(yùn)行時(shí)間。另外,工程師可以檢查總模擬區(qū)域和有效模擬區(qū)域的模擬結(jié)果。 模擬區(qū)域和單位區(qū)域
    發(fā)表于 02-18 08:57

    如何使用Arduino實(shí)現(xiàn)CAN總線通信呢

    CAN(Controller Area Network)總線是一種常用于汽車和工業(yè)控制系統(tǒng)的串行通信協(xié)議,以其高可靠性和實(shí)時(shí)性而聞名。Arduino,作為一種流行的開源微控制器平臺,可以通過附加
    的頭像 發(fā)表于 12-23 09:06 ?624次閱讀

    OLED 顯示雷達(dá)數(shù)據(jù)

    使用螢火工場CEM5826-M11雷達(dá)模塊,Arduino IDE 編譯代碼,OLED顯示雷達(dá)數(shù)據(jù)
    的頭像 發(fā)表于 12-10 13:38 ?257次閱讀
    <b class='flag-5'>OLED</b> 顯示雷達(dá)數(shù)據(jù)

    如何使用Arduino實(shí)現(xiàn)CAN總線通信

    開源硬件平臺,通過添加CAN總線模塊,也可以實(shí)現(xiàn)CAN通信。 硬件準(zhǔn)備 Arduino開發(fā)板 :可以選擇Arduino Uno、Mega等型號。 CAN總線模塊 :如MCP2515或MCP2562,這些模塊
    的頭像 發(fā)表于 11-12 10:09 ?1454次閱讀

    在DVEVM上通過ddd運(yùn)行Demo

    電子發(fā)燒友網(wǎng)站提供《在DVEVM上通過ddd運(yùn)行Demo.pdf》資料免費(fèi)下載
    發(fā)表于 10-15 10:05 ?0次下載
    在DVEVM上<b class='flag-5'>通過</b>ddd<b class='flag-5'>運(yùn)行</b>Demo

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

    OLED顯示
    jf_07365693
    發(fā)布于 :2024年08月14日 16:43:01

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

    Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示
    的頭像 發(fā)表于 08-13 18:04 ?1372次閱讀
    <b class='flag-5'>Arduino</b> Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 <b class='flag-5'>OLED</b>顯示

    怎樣Arduino測試鋰電池容量

    本文詳細(xì)介紹了如何用Arduino測量鋰電池的容量。并附有電路圖和Arduino的程序代碼。
    的頭像 發(fā)表于 07-30 09:14 ?1091次閱讀
    <b class='flag-5'>怎樣</b>用<b class='flag-5'>Arduino</b>測試鋰電池容量

    通過I2C PWM IC控制伺服,可以為伺服控制進(jìn)行高優(yōu)先級中斷嗎?

    我開始運(yùn)行一個(gè)具有非常簡單的伺服控制的 Web 服務(wù) 我通過I2C PWM IC控制伺服, 我必須每 10 毫秒向 PWM IC 寫入新值。 但是 server.handleClient
    發(fā)表于 07-12 06:20

    ESP32使用Arduino啟用藍(lán)牙后編譯固件過大,怎樣縮減大小呢?

    ESP32使用Arduino啟用藍(lán)牙后編譯固件過大,怎樣縮減大小,日志級別已經(jīng)最低了,分區(qū)不能動,已經(jīng)是1.9M的OTA分區(qū)配置了,怎樣還能縮減大小,藍(lán)牙功能能否裁剪
    發(fā)表于 06-28 11:27

    Arduino怎樣配置LVGL8.1.0訪問spiffs里面的字庫或圖片?

    抱歉把Arduino的內(nèi)容發(fā)在這個(gè)版塊了. 在Arduino的示例中LITTLEFS_test.ino SPIFFS_Test.ino FFat_Test.ino已經(jīng)測試成功, 并且使用ESP32
    發(fā)表于 06-19 06:15

    使用idf.py命令方式編譯,怎樣才能編譯arduino的庫,并且在項(xiàng)目中可調(diào)用?

    在編譯過程中,提示找不到對應(yīng)的頭文件。 請問使用idf.py命令方式編譯,怎樣才能編譯arduino的庫,并且在項(xiàng)目中可調(diào)用。
    發(fā)表于 06-13 06:56

    求助,在esp-idf中使用arduino作為組件后怎樣使用arduino的庫?

    在esp-idf中使用arduino作為組件后怎樣使用arduino的庫,例如我此時(shí)需要使用arduino的第三方庫blinker,怎樣使用
    發(fā)表于 06-12 07:21

    能否通過arduino訪問TLE9879的速度/電流測量值?

    您好, ,我通過 Arduino IDE 將無刷直流電機(jī)屏蔽 TLE9879 與 Arduino 結(jié)合使用,以 HALL 模式簡單地驅(qū)動無刷直流電機(jī)。 能否通過
    發(fā)表于 05-23 06:39

    微機(jī)二次消諧裝置是怎樣運(yùn)行

    微機(jī)二次消諧裝置是怎樣運(yùn)行的?微機(jī)二次消諧裝置是一種用于電力系統(tǒng)中的無功補(bǔ)償和諧波控制的裝置,它采用先進(jìn)的數(shù)字信號處理技術(shù)和微機(jī)控制技術(shù),能夠?qū)崿F(xiàn)對電力系統(tǒng)中的無功功率和諧波進(jìn)行快速有效的控制和補(bǔ)償
    的頭像 發(fā)表于 03-18 14:47 ?425次閱讀

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品