Sommaire

La classe I2CI2C

La classe I2C prend en charge la communication sur le bus 2 fils du même nom. Le bus est constitué des signaux SDA pour les données et SCL pour le signal d’horloge.

Ce bus a été traité de façon détaillée dans le chapitre sur la programmation de la Pyboard (cf. Programmer - Bus I2C).

images/07RI34b.png

Emplacement des bus I2C sur la Pyboard

À noter que l’affichage d’un objet de type I2C affiche des informations sur sa configuration.

Lorsqu’un bus I2C est créé avec la mention des broches, c’est le support logiciel I2C (bit-banging) qui est utilisé à la place du pilote matériel.

from machine import I2C 
 
# Créer une instance du bus I2C(1) sur SDA=X10 et SCL=X9 
# Fréquence de bus à 400 kHz 
i2c = I2C(1, freq=400000)   
 
# Création du bus I2C avec pilote logiciel (bit-banging) 
i2c = I2C( sda=Pin(‘Y12’), scl=Pin(‘Y11’), freq=10000 ) 
 
# Scanner le bus I2C (retourne une liste d’adresses) 
i2c.scan() 
 
# Envoyer les octets 49, 50, 52 sur le périphérique I2C 
# à l’adresse 42. 
i2c.writeto(42, b’124’) 
# Idem appel précédent. 
i2c.writeto(42, bytes([49,50,52]) ) 
 
# Lire 4 octets depuis le périphérique à l’adresse 42          
i2c.readfrom(42, 4) 
 
# Lecture ...