MicroPython 'ValueError: invalid I2C peripheral' beheben

English Deutsch

Wenn du die Fehlermeldung siehst

traceback_invalid_i2c.txt
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid I2C peripheral

führst du wahrscheinlich Code wie diesen aus:

invalid_i2c_example.py
import machine

i2c = machine.I2C(machine.Pin(5), machine.Pin(4))

Lösung

Die MicroPython-API hat sich geändert (Quelle: Forum). Du musst stattdessen diese Syntax verwenden:

invalid_i2c_fix.py
import machine

i2c = machine.I2C(-1, machine.Pin(5), machine.Pin(4))

-1 ist die I2C-ID, die ein spezifisches Peripheriegerät auswählt. -1 wählt eine Software-I2C-Implementierung aus, die auf den meisten Pins funktionieren kann. Siehe die MicroPython-I2C-Klassendokumentation für weitere Details.


Check out similar posts by category: Electronics, MicroPython, Python