當你更改了 I2C 地址之後,可以使用 i2cdetect 命令來檢查 OLED 顯示器的 I2C 地址是否正確。
安裝 I2C 工具(如果尚未安裝):
bash
複製程式碼
sudo apt-get install -y i2c-tools
檢查 OLED 顯示器的 I2C 地址:
使用以下命令來檢查 I2C 線上的設備地址:
i2cdetect -y 1
這會顯示 I2C 線上所有設備的地址。典型的 SSD1306 顯示器會顯示 0x3C 或 0x3D。
ai🍓raspberrypi:~ 🍓 i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- 27 -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- 3c -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
OLED 顯示器的 I2C 地址一般來說是固定的,但有些 SSD1306 驅動的 OLED 顯示器允許通過焊接跳線或切換電路板上的跳線來更改其 I2C 地址。具體的設置方式取決於你所使用的 OLED 顯示模組的設計。
預設 I2C 地址:許多 SSD1306 驅動的 OLED 顯示器的預設 I2C 地址為 0x3C。
可更改的 I2C 地址:有些 OLED 顯示器允許將 I2C 地址更改為 0x3D,通常是通過焊接跳線進行設置。
檢查 OLED 模組上的跳線:
很多 OLED 顯示模組會有標示 ADDR、A0、A1、A2 的跳線(solder pads 或 jumper pads),你可以通過焊接或配置跳線來改變地址。大部分情況下,你會在模組上看到焊接點,這些點可以讓你選擇 I2C 地址。
一些 OLED 顯示模組在背面會有像這樣的焊點:
ADDR:此焊點控制 I2C 地址。當 ADDR 焊點沒有連接時,地址為 0x3C。當你將焊點短接或連接時,地址變為 0x3D。
如何焊接:
如果你的 OLED 顯示器有兩個焊點(通常是 ADDR 焊點),你可以使用焊鐵將這兩個焊點短接(連接在一起)。這樣會將 OLED 顯示器的地址從 0x3C 更改為 0x3D。
如果焊點已經短接了,則可以使用吸錫工具將錫去除,恢復為 0x3C 地址。
如果你需要在同一台樹莓派上連接兩個或更多的 OLED 顯示器,你需要保證每個顯示器的 I2C 地址不同。例如:
OLED 顯示器 1 的地址是 0x3C(預設地址)。
OLED 顯示器 2 的地址是 0x3D(通過焊接跳線修改)。
在你的程式中,你可以針對每個顯示器分別初始化並控制它們:
python
複製程式碼
import board
import busio
import adafruit_ssd1306
# 使用 I2C 初始化
i2c = busio.I2C(board.SCL, board.SDA)
# 初始化兩個 OLED 顯示器,地址不同
oled1 = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3C) # 地址 0x3C
oled2 = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3D) # 地址 0x3D
# 接下來你可以獨立控制每個顯示器
oled1.fill(0)
oled1.show()
oled2.fill(0)
oled2.show()
非可更改地址的 OLED 顯示器:如果你使用的是不可更改 I2C 地址的 OLED 顯示模組,那麼你需要一個 I2C 多路複用器(如 TCA9548A)來擴展 I2C 通道,從而同時使用多個相同地址的 I2C 設備。
焊接技巧:在焊接跳線時,務必小心操作,以免損壞 OLED 顯示模組。如果你不確定如何焊接,建議先練習焊接技巧。