使用Arduino IDE將OLED顯示器與Raspberry Pi Pico W接口
在這個項目中,我們將學(xué)習(xí)和探索OLED(有機發(fā)光二極管)顯示器與使用Arduino IDE的樹莓派Pico W的接口。由于其高對比度和低功耗,OLED顯示器在小規(guī)模項目中使用越來越受歡迎。
在此之前,我們已經(jīng)學(xué)習(xí)了OLED與ESP32的接口,并建立了一些項目,如GPS跟蹤器,土壤濕度監(jiān)測系統(tǒng),心跳監(jiān)測系統(tǒng)等。
樹莓派Pico W是基于RP2040芯片的微控制器板,具有雙核Arm Cortex-M0+處理器和豐富的GPIO引腳。我們可以利用Arduino IDE輕松編程Pico W,利用其靈活性和與各種硬件外設(shè)和大型庫生態(tài)系統(tǒng)的兼容性。我們將使用Arduino IDE生態(tài)系統(tǒng)在OLED上顯示文本。
將Raspberry Pico與OLED顯示器相結(jié)合可以解決各種小項目,如顯示傳感器數(shù)據(jù)和輸出值,創(chuàng)建迷你儀表板等等,本項目將指導(dǎo)您完成設(shè)置和使用Pico W的OLED顯示器的過程。
組件的要求
?OLED顯示屏0.96英寸I2C接口
?樹莓派Pico W板
?跳線和面包板
SSD1306 OLED顯示器
SSD1306 OLED顯示器是一個I2C顯示器,只需要兩個接口引腳。由于I2C是一種廣泛使用的通信方式,使得與微控制器和其他設(shè)備的接口變得容易。
OLED顯示器有不同的尺寸,但我們使用通用的SSD1306驅(qū)動IC和基于128*64分辨率的顯示器。
OLED顯示屏的連接方式包括四個端子:
VCC:該引腳用于為顯示模塊供電。工作在3.3V或5V電源輸入。
GND:接在電源的接地(0V)上。
SDA:串行數(shù)據(jù)線(SDA)在微控制器和SSD1306顯示器之間傳輸雙向數(shù)據(jù)。它連接到微控制器的SDA引腳或I2C總線。
SCL:串行時鐘線(SCL)用于同步微控制器和SSD1306顯示器之間的數(shù)據(jù)傳輸。它連接到微控制器的SCL引腳或I2C總線。
OLED與樹莓派Pico的接口電路圖
通過參考所提供的接口關(guān)系圖,您將能夠毫不費力地建立必要的連接。雖然樹莓派Pico W板提供多個I2C通信引腳,但Arduino IDE內(nèi)部庫目前僅支持一對默認(rèn)的I2C通信引腳,即GP4和GP5 IO。
OLED的Vcc或電源引腳應(yīng)連接到Raspberry Pi Pico W的VBUS引腳上。
OLED的GND連接到Pico板的任何接地端子。由于電路板上有各種接地端子,您可以使用其中任何一個。
SDA終端引腳用于I2C通信,連接到GP4(#6引腳)。
SCL端子引腳也用于連接到GP5(#7引腳)的I2C通信。
OLED與Raspberry Pi Pico W接口的Arduino代碼
代碼初始化OLED顯示器,設(shè)置文本屬性,并在OLED屏幕上顯示指定的文本。
為了將顯示器與微控制器板連接,首先我們需要定義必要的庫,包括Adafruit_SSD1306.h和Adafruit_GFX.h。
Adafruit_SSD1306庫用于控制基于ssd1306的分辨率為128x64像素的OLED顯示器,Adafruit_GFX是一個圖形庫,提供通用圖形功能來調(diào)整顯示文本大小,字體,顏色和更多圖形。
此外,還創(chuàng)建了Adafruit_SSD1306類的構(gòu)造函數(shù),以與名為“display”的OLED顯示器進行交互,其參數(shù)是顯示寬度(128)像素和高度(64)像素。第三個參數(shù)也可以傳遞給構(gòu)造函數(shù),這是重置引腳編號,但由于我們的OLED模塊沒有任何重置引腳終端,因此我們沒有使用該參數(shù)。
在setup()函數(shù)中:
?顯示。開始(SSD1306_SWITCHCAPVCC 0 x3c);通過指定電源方案(SSD1306_SWITCHCAPVCC)來初始化顯示器,以打開內(nèi)部電路和顯示器的I2C地址(0x3C)。
?display.clearDisplay ();清除顯示緩沖區(qū),使其完全為空。
?display.setTextColor(白色);將文本顏色設(shè)置為白色使背景變暗,而黑色使背景變亮。
?display.setTextSize (2);將文本大小設(shè)置為2,使其變大。使用1將使文本變小。
?顯示。setCursor (0,0);將光標(biāo)位置設(shè)置為顯示器的左上角。這兩個參數(shù)作為文本位置的x軸和y軸。
?display.println ();在引號內(nèi)打印指定的文本。我們使用這個函數(shù)兩次來根據(jù)屏幕調(diào)整單詞的顯示。
?display.display ();該功能將顯示緩沖區(qū)推送到SSD1306控制器存儲器,以顯示在OLED屏幕上。
?loop()函數(shù)被反復(fù)調(diào)用,但在本例中,不需要重復(fù)調(diào)用任何命令。因此,函數(shù)將保持空白。
設(shè)置完成后,它會持續(xù)顯示靜態(tài)文本,因為循環(huán)中沒有實現(xiàn)活動功能。
OLED與樹莓派Pico W的工作
要將代碼上傳到Raspberry Pi Pico W,必須在Arduino IDE中安裝板庫。為了幫助您完成這個過程,下面是Raspberry Pi Pico w的教程。本教程為安裝過程提供了詳細(xì)的分步說明。
在編譯和上傳代碼到您的Raspberry Pi Pico之前,請按照以下步驟安裝所需的庫:
打開Arduino IDE。
點擊“Sketch”->“Include Library”->“Manage Libraries”。
在庫管理器中,搜索“Adafruit GFX庫”并安裝它。
搜索“Adafruit SSD1306”并安裝它。
現(xiàn)在,您可以將代碼上傳到Raspberry Pi Pico W
上傳代碼成功后,OLED屏幕上會顯示“Raspberry Pi Pico W”和“with OLED display”字樣。
本文編譯自iotdesignpro