2.7寸單色128x64 OLED顯示模塊使用指南
一、概述
如果你一直在關(guān)注單色OLED顯示屏,且需要更大尺寸的,那么這款2.7寸的OLED顯示模塊會(huì)讓你滿意。它對(duì)角線尺寸為2.7寸,由于OLED顯示屏的高對(duì)比度,顯示內(nèi)容非常清晰可讀。該顯示屏由128x64個(gè)白色OLED像素組成,每個(gè)像素由控制芯片控制開關(guān)。因?yàn)轱@示屏自身發(fā)光,無需背光源,這不僅降低了運(yùn)行所需的功率,還帶來了高對(duì)比度,顯示效果十分清晰。
文件下載:2674.pdf
驅(qū)動(dòng)芯片SSD1325支持8位和SPI兩種通信方式,個(gè)人更推薦SPI方式,只需4到5根線即可。OLED需要3.3V電源供電,通信也采用3.3V邏輯電平。我們還提供了一個(gè)面包板友好型的電平轉(zhuǎn)換器,可將3V或5V轉(zhuǎn)換為3V,方便與像Arduino這樣的5V邏輯設(shè)備配合使用。顯示屏的功耗會(huì)因點(diǎn)亮像素的多少而有所不同,平均從3.3V電源獲取約50 - 150mA的電流。OLED驅(qū)動(dòng)內(nèi)置了一個(gè)簡(jiǎn)單的開關(guān)電容電荷泵,可將3.3V轉(zhuǎn)換為高電壓來驅(qū)動(dòng)OLED。
每個(gè)訂單包含一個(gè)組裝好的OLED模塊,帶有漂亮的邊框和4個(gè)安裝孔。由于顯示屏采用3V邏輯和電源,我們還配備了HC4050電平轉(zhuǎn)換器和一個(gè)220uF的電容,因?yàn)槲覀儼l(fā)現(xiàn)Arduino為這個(gè)大顯示屏供電時(shí),3.3V電源可能需要更多的電容。顯示屏未附帶引腳頭,但會(huì)提供一根引腳頭供你自行焊接。另外,顯示屏可能默認(rèn)處于8位模式,你可以通過簡(jiǎn)單的焊接操作將其從8位模式切換到SPI模式。
二、引腳定義
這些模塊的引腳標(biāo)記不太清晰,最左邊的引腳為1號(hào),依次向右遞增,最右邊的為20號(hào)。
1. 電源引腳
- 引腳1:電源和信號(hào)地。
- 引腳2:3V電源輸入,需提供具有100 - 150mA電流能力的3V電源。
- 引腳3:未使用,請(qǐng)勿連接任何東西。
2. 信號(hào)引腳
- 引腳4(DC):數(shù)據(jù)/命令引腳,3V邏輯電平輸入引腳,用于SPI和8位連接。
- 引腳5(WR):8位寫引腳,3V邏輯電平輸入引腳,用于8位連接,使用SPI時(shí)請(qǐng)勿連接。
- 引腳6(RD):8位讀引腳,3V邏輯電平輸入引腳,用于8位連接,使用SPI時(shí)請(qǐng)勿連接。
- 引腳7(Data0):SPI時(shí)鐘引腳和8位數(shù)據(jù)位0引腳,SPI模式下為3V邏輯電平輸入引腳,8位模式下為輸入/輸出引腳。
- 引腳8(Data1):SPI數(shù)據(jù)輸入引腳和8位數(shù)據(jù)位1引腳,SPI模式下為3V邏輯電平輸入引腳,8位模式下為輸入/輸出引腳。
- 引腳9 - 14(Data2 - 7):用于8位模式,8位模式下為3V輸入/輸出引腳,使用SPI時(shí)請(qǐng)勿連接。
- 引腳15(CS):芯片選擇引腳,3V邏輯電平輸入引腳,用于SPI和8位連接。
- 引腳16(RESET):復(fù)位引腳,3V邏輯電平輸入引腳,用于SPI和8位連接。
3. 其余引腳
- 引腳17 - 19:未連接,請(qǐng)勿使用。
- 引腳20:“框架地”引腳,連接到OLED周圍的金屬外殼,可接地或懸空。
三、組裝
1. 模式切換
這些模塊可以在SPI或8位模式下使用。不過,切換模式的唯一方法是對(duì)模塊背面的跳線進(jìn)行拆焊和焊接操作。
2. 8位“6800”模式
模塊默認(rèn)可能是這種設(shè)置,此時(shí)R20和R18電阻就位,而R21和R19缺失。
3. SPI模式
這可能是你想要的模式。你需要用烙鐵加熱電阻,移除R18和R20電阻,甚至可能需要熔化一些焊錫。然后移除電阻,并焊接上R19和R21(可以使用任何0 - 10K的0805電阻或一段導(dǎo)線)。
四、Arduino連接與測(cè)試
我們將以Arduino UNO兼容板為例進(jìn)行演示。如果你使用的是3V邏輯設(shè)備,可以跳過電平轉(zhuǎn)換器,直接將微控制器連接到顯示屏。你也可以使用其他類型的電平轉(zhuǎn)換器。任何具有4或5個(gè)引腳的微控制器都可以使用,但建議先使用UNO進(jìn)行測(cè)試,再嘗試其他處理器。別忘了將顯示屏設(shè)置為SPI模式,具體操作可參考組裝步驟。
1. SPI連接
由于該顯示屏支持SPI,我們可以使用硬件或“軟件”SPI。為了使所有Arduino的連接方式一致,我們先從“軟件”SPI開始。以下是應(yīng)使用的引腳連接:
- 引腳1連接到公共電源/數(shù)據(jù)地線(黑色線)。
- 引腳2連接到Arduino的3V電源(紅色線)。
- 跳過引腳3。
- 引腳4(DC)通過電平轉(zhuǎn)換器連接到數(shù)字引腳8(白色線),后續(xù)可使用任何引腳。
- 引腳7(SCLK)通過電平轉(zhuǎn)換器連接到數(shù)字引腳13(藍(lán)色線),后續(xù)可使用任何引腳。
- 引腳8(DIN)通過電平轉(zhuǎn)換器連接到數(shù)字引腳11(綠色線),后續(xù)可使用任何引腳。
- 跳過引腳9 - 14。
- 引腳15(CS)通過電平轉(zhuǎn)換器連接到數(shù)字引腳10(黃色線),后續(xù)可使用任何引腳。
- 引腳16(RST)通過電平轉(zhuǎn)換器連接到數(shù)字引腳9(橙色線),后續(xù)可使用任何引腳。
后續(xù)如果想使用硬件SPI,或者更改引腳,都可以進(jìn)行相應(yīng)調(diào)整。
2. 電平轉(zhuǎn)換器連接
還需要為HC4050電平轉(zhuǎn)換器供電,將引腳1連接到3V(紅色線),引腳8連接到地(黑色線)。
3. 3.3V電容
我們隨訂單提供了一個(gè)220uF的電容,因?yàn)榘l(fā)現(xiàn)通過Arduino的3.3V穩(wěn)壓器供電時(shí),3V線路的電壓波動(dòng)較大,建議安裝該電容。將電容的負(fù)極引腳連接到地,正極引腳連接到3V。
4. 下載庫
要開始讀取傳感器數(shù)據(jù),需要從Arduino庫管理器中下載Adafruit_SSD1325和Adafruit_GFX庫。打開Arduino庫管理器,搜索并安裝這兩個(gè)庫。如果使用的是較舊版本(1.8.10之前)的Arduino IDE,還需要手動(dòng)定位并安裝Adafruit_BusIO庫(較新版本會(huì)自動(dòng)處理)。我們也有關(guān)于Arduino庫安裝的詳細(xì)教程,可參考:http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use 。
5. 運(yùn)行演示
重啟Arduino軟件后,會(huì)看到一個(gè)名為Adafruit_SSD1325的新示例文件夾,其中有一個(gè)名為ssd1325test的示例。將該草圖上傳到Arduino,顯示屏應(yīng)該會(huì)立即更新顯示內(nèi)容。如果沒有顯示任何內(nèi)容,請(qǐng)確保連接正確,可參考前面的連接圖,同時(shí)檢查是否已將模塊轉(zhuǎn)換為“SPI”模式。
6. 更改引腳
顯示屏正常工作后,可以更改引腳。如果使用硬件SPI,時(shí)鐘和MOSI引腳是固定的,無法更改;但可以切換到軟件SPI,雖然速度稍慢,但可以選擇任何引腳。找到以下代碼行進(jìn)行修改:
// If using software SPI, define CLK and MOSI
#define OLED_CLK 13
#define OLED_MOSI 11
// These are neede for both hardware & software SPI
#define OLED_CS 10
#define OLED_RESET 9
#define OLED_DC 8
將其修改為你想要的引腳即可。
7. 使用硬件SPI
如果需要更高的速度,可以“升級(jí)”到硬件SPI。硬件SPI速度更快,繪圖速度可能快2倍,但需要使用硬件SPI引腳。
- SPI時(shí)鐘連接到SPI時(shí)鐘引腳。在Arduino Uno/Duemilanove/328-based上是數(shù)字引腳13;在Mega上是數(shù)字引腳52;在Leonardo/Due上是ICSP - 3(更多詳細(xì)信息可參考SPI連接說明)。
- SPI數(shù)據(jù)輸入連接到SPI MOSI引腳。在Arduino Uno/Duemilanove/328-based上是數(shù)字引腳11;在Mega上是數(shù)字引腳51;在Leonardo/Due上是ICSP - 4(更多詳細(xì)信息可參考SPI連接說明)。
要啟用硬件SPI,找到以下代碼行:
// this is software SPI, slower but any pins
Adafruit_SSD1325 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);
// this is for hardware SPI, fast! but fixed oubs
//Adafruit_SSD1325 display(OLED_DC, OLED_RESET, OLED_CS);
注釋掉第一行,取消注釋第二行。
五、使用Adafruit GFX
Arduino的Adafruit_GFX庫為我們所有的TFT、LCD和OLED顯示屏提供了通用的語法和一組圖形函數(shù)。這使得Arduino草圖可以輕松在不同類型的顯示屏之間進(jìn)行適配,并且任何新功能、性能改進(jìn)和錯(cuò)誤修復(fù)都將立即應(yīng)用到我們所有的顯示屏上。該庫可以讓你繪制點(diǎn)、線、矩形、圓角矩形、三角形、文本等。詳細(xì)教程可參考:http://learn.adafruit.com/adafruit-gfx-graphicslibrary 。由于這是一個(gè)“緩沖”顯示屏,每當(dāng)需要更新OLED時(shí),別忘了調(diào)用“display()”對(duì)象函數(shù),這樣可以一次性繪制整個(gè)顯示屏,提高顯示效率。
六、CircuitPython連接
借助Adafruit_Blinka(我們的CircuitPython - for - Python兼容性庫),你可以將該傳感器與任何CircuitPython微控制器板或具有GPIO和Python的計(jì)算機(jī)配合使用。
1. Adafruit OLED顯示I2C連接
- OLED引腳1連接到微控制器的地。
- OLED引腳2連接到微控制器的3.3V電源。
- OLED引腳4連接到微控制器的地。
- OLED引腳7連接到微控制器的SCL,并從SCL到3.3V連接一個(gè)10K電阻。
- OLED引腳8連接到微控制器的SDA。
- OLED引腳9連接到微控制器的SDA,并從SDA到3.3V連接一個(gè)10K電阻。
- OLED引腳16連接到微控制器的D9。
2. Adafruit OLED顯示SPI連接
- OLED引腳1連接到微控制器的地。
- OLED引腳2連接到微控制器的3.3V電源。
- OLED引腳4連接到微控制器的D6。
- OLED引腳7連接到微控制器的SCK。
- OLED引腳8連接到微控制器的MOSI。
- OLED引腳15連接到微控制器的D5。
- OLED引腳16連接到微控制器的D9。
七、CircuitPython設(shè)置
1. 安裝DisplayIO SSD1325庫
要在Adafruit CircuitPython板上使用SSD1325 OLED,需要在板上安裝Adafruit CircuitPython DisplayIO SSD1325模塊。首先確保你的板運(yùn)行的是Adafruit CircuitPython 5.0或更高版本。然后,需要安裝使用硬件所需的庫,可仔細(xì)按照步驟從Adafruit的CircuitPython庫捆綁包中查找并安裝這些庫。我們的CircuitPython入門指南有關(guān)于如何安裝庫捆綁包的詳細(xì)頁面。如果你愿意,也可以在板上手動(dòng)單獨(dú)安裝庫,例如adafruit_displayio_ssd1325 。在繼續(xù)之前,確保板的lib文件夾或根文件系統(tǒng)中復(fù)制了adafruit_displayio_ssd1325.mpy文件。接下來,連接到板的串行REPL,進(jìn)入CircuitPython的“>>>”提示符。
2. 代碼示例及附加庫
對(duì)于代碼示例,還需要一個(gè)額外的庫。我們使用了Adafruit CircuitPython Display Text庫,以避免代碼過于復(fù)雜。按照與驅(qū)動(dòng)庫相同的方式,將adafruit_display_text文件夾復(fù)制到CircuitPython設(shè)備的lib文件夾中進(jìn)行安裝。
八、CircuitPython使用
1. I2C初始化
如果顯示屏通過I2C連接到板上,首先需要初始化I2C總線。導(dǎo)入必要的模塊:
import board
然后使用默認(rèn)的SCL和SDA引腳創(chuàng)建I2C實(shí)例(如果使用Feather或類似的Adafruit板,引腳會(huì)有標(biāo)記):
i2c = board.I2C()
初始化I2C接口后,創(chuàng)建I2CDisplay總線實(shí)例:
import adafruit_ssd1325
import displayio
display_bus = displayio.I2CDisplay(i2c, device_address=0x3c)
最后,傳入顯示總線并創(chuàng)建SSD1325 I2C驅(qū)動(dòng)實(shí)例:
display = adafruit_ssd1325.SSD1325(display_bus, width=128, height=64)
此時(shí)應(yīng)該能看到REPL的圖像。注意,SSD1325類初始化器的最后兩個(gè)參數(shù)是顯示屏的寬度和高度(以像素為單位),要確保使用正確的值。
2. 更改I2C地址
如果將OLED的引腳4連接到 +3V而不是地,I2C地址將變?yōu)?x3d :
display_bus = displayio.I2CDisplay(i2c, device_address=0x3d)
display = adafruit_ssd1325.SSD1325(display_bus, width=128, height=64)
3. SPI初始化
如果顯示屏通過SPI連接到板上,首先需要初始化SPI總線。如果使用微控制器板,運(yùn)行以下命令:
import board
import displayio
import adafruit_ssd1325
displayio.release_displays()
tft_cs = board.D5
spi = board.SPI()
tft_dc = board.D6
tft_reset = board.D9
display_bus = displayio.FourWire(spi, command=tft_dc, chip_select=tft_cs, reset=tft_reset, baudrate=1000000)
display = adafruit_ssd1325.SSD1325(display_bus, width=128, height=64)
FourWire初始化器的參數(shù)是連接到顯示屏的DC、CS和復(fù)位引腳。由于使用了關(guān)鍵字參數(shù),它們可以處于任何位置。同樣,要確保使用與板連接的正確引腳名稱。
4. 示例代碼
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
# SPDX-License-Identifier: MIT
"""
This test will initialize the display using displayio and draw a solid white
background, a smaller black rectangle, and some white text.
"""
import board
import displayio
import terminalio
from adafruit_display_text import label
import adafruit_ssd1325
displayio.release_displays()
oled_cs = board.D5 # Use for SPI
spi = board.SPI()
oled_dc = board.D6
display_bus = displayio.FourWire(spi, command=oled_dc, chip_select=oled_cs, baudrate=1000000, reset=board.D9)
# i2c = board.I2C() # uses board.SCL and board.SDA # Use for I2C
# i2c = board.STEMMA_I2C() # For using the built-in STEMMA QT connector on a microcontroller
# display_bus = displayio.I2CDisplay(i2c, device_address=0x3c)
WIDTH = 128
HEIGHT = 64
BORDER = 8
FONTSCALE = 1
display = adafruit_ssd1325.SSD1325(display_bus, width=WIDTH, height=HEIGHT)
# Make the display context
splash = displayio.Group()
display.show(splash)
color_bitmap = displayio.Bitmap(display.width, display.height, 1)
color_palette = displayio.Palette(1)
color_palette[0] = 0xFFFFFF # White
bg_sprite = displayio.TileGrid(color_bitmap, pixel_shader=color_palette, x=0, y=0)
splash.append(bg_sprite)
# Draw a smaller inner rectangle
inner_bitmap = displayio.Bitmap(display.width - BORDER * 2, display.height - BORDER * 2, 1)
inner_palette = displayio.Palette(1)
inner_palette[0] = 0x000000 # Black
inner_sprite = displayio.TileGrid(inner_bitmap, pixel_shader=inner_palette, x=BORDER, y=BORDER)
splash.append(inner_sprite)
# Draw a label
text = "Hello World!"
text_area = label.Label(terminalio.FONT, text=text, color=0x888888)
text_width = text_area.bounding_box[2] * FONTSCALE
text_group = displayio.Group(scale=FONTSCALE, x=display.width // 2 - text_width // 2, y=display.height // 2)
text_group.append(text_area) # Subgroup for text scaling
splash.append(text_group)
while True:
pass
5. 代碼解釋
- 首先導(dǎo)入必要的模塊,包括board、displayio、terminalio、
-
Arduino
+關(guān)注
關(guān)注
190文章
6529瀏覽量
197552 -
OLED顯示模塊
+關(guān)注
關(guān)注
0文章
6瀏覽量
3236
發(fā)布評(píng)論請(qǐng)先 登錄
鄭州中景園OLED顯示模塊產(chǎn)品解析
0.96寸4針I(yè)IC OLED顯示模塊的設(shè)計(jì)與使用指南
深入剖析OLED顯示模塊:從規(guī)格到應(yīng)用的全面指南
TPS8213x 電源模塊評(píng)估模塊使用指南
TPS6126x低輸入電壓升壓轉(zhuǎn)換器評(píng)估模塊使用指南
TPS622315EVM - 574評(píng)估模塊使用指南:設(shè)計(jì)與應(yīng)用解析
TPS622312EVM - 574評(píng)估模塊:設(shè)計(jì)與使用指南
TPS6021x評(píng)估模塊使用指南:低功耗電荷泵的評(píng)估利器
德州儀器 TPS6012x 和 TPS6013x 評(píng)估模塊使用指南
德州儀器LMZ3150x系列電源模塊評(píng)估模塊使用指南
Enpirion EP53x2QI DCDC 轉(zhuǎn)換器模塊評(píng)估板使用指南
運(yùn)用CW32F030芯片的SPI來實(shí)現(xiàn)0.96寸的oled屏幕顯示
TDK SmartSound One評(píng)估模塊使用指南
CW32模塊使用 1.3寸單色OLED顯示屏
2.7寸單色128x64 OLED顯示模塊使用指南
評(píng)論