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