ssd1306 OLED と BME280 を Pico に接続しました。ピン 0 (sda) と 1 (scl) i2c ピンに接続すると、すべてが魅力的に機能します。しかし、計画が非常に悪かったため、他の i2c ピンに切り替える必要があります。接続したら、動作させることができません。などから変更しi2c = machine.I2C(0, scl=machine.Pin(1), sda=machine.Pin(0),freq=400000)
ましi2c = machine.I2C(0, scl=machine.Pin(13), sda=machine.Pin(12),freq=400000)
たが、だめでした。コードスニペット:
import machine
import bme280
import time
from machine import Pin, I2C, ADC
from ssd1306 import SSD1306_I2C
i2c = machine.I2C(0, scl=machine.Pin(13), sda=machine.Pin(12),freq=400000)
bme = bme280.BME280(i2c=i2c)
oled = SSD1306_I2C(128, 64, i2c)
私が得ているエラーは次のとおりです。
Traceback (most recent call last): File "<stdin>", line 9, in <module> File "/lib/bme280.py", line 75, in __init__ OSError: 5
それは次のとおりです。
dig_88_a1 = self.i2c.readfrom_mem(self.address, 0x88, 26) from bme280.py (standard driver)
i2c スキャンを実行しましたが、新しいピンで正しいアドレスが返されます。