Klasse I2C

Beispiel

# Import the I2C class
from robot_hat import I2C

# You can scan for available I2C devices
print([f"0x{addr:02X}" for addr in I2C().scan()])
# You should see at least one device address 0x14, which is the
# on board MCU for PWM and ADC

# Initialize a I2C object with device address, for example
# to communicate with on board MCU 0x14
mcu = I2C(0x14)
# Send ADC channel register to read ADC, 0x10 is Channel 0, 0x11 is Channel 1, etc.
mcu.write([0x10, 0x00, 0x00])
# Read 2 byte for MSB and LSB
msb, lsb = mcu.read(2)
# Convert to integer
value = (msb << 8) + lsb
# Print the value
print(value)

Für weitere Informationen zum I2C-Protokoll siehe adc.py und pwm.py

API

class robot_hat.I2C(address=None, bus=1, *args, **kwargs)

Basisklasse: _Basic_class

I2C-Bus Lese-/Schreibfunktionen

__init__(address=None, bus=1, *args, **kwargs)

Initialisierung des I2C-Busses

Parameter
  • address (int) – I2C-Geräteadresse

  • bus (int) – I2C-Busnummer

scan()

I2C-Bus nach Geräten scannen

Rückgabe

Liste der gefundenen I2C-Adressen von Geräten

Rückgabetyp

list

write(data)

Daten an das I2C-Gerät schreiben

Parameter

data (int/list/bytearray) – Zu schreibende Daten

Wirft

ValueError, falls die Schreiboperation kein int, keine Liste oder kein Bytearray ist

read(length=1)

Daten vom I2C-Gerät lesen

Parameter

length (int) – Anzahl der zu empfangenden Bytes

Rückgabe

Empfangene Daten

Rückgabetyp

list

mem_write(data, memaddr)

Daten an eine spezifische Registeradresse senden

Parameter
  • data (int/list/bytearray) – Zu sendende Daten, int, Liste oder Bytearray

  • memaddr (int) – Registeradresse

Verursacht

ValueError – Falls die Daten kein int, keine Liste oder kein Bytearray sind

mem_read(length, memaddr)

Daten von einer spezifischen Registeradresse lesen

Parameter
  • length (int) – Anzahl der zu empfangenden Bytes

  • memaddr (int) – Registeradresse

Rückgabe

Empfangene Bytearray-Daten oder False bei einem Fehler

Rückgabetyp

list/False

is_avaliable()

Überprüfen, ob das I2C-Gerät verfügbar ist

Rückgabe

True, wenn das I2C-Gerät verfügbar ist, andernfalls False

Rückgabetyp

bool