I2C
El protocolo I2C se desarrolló originalmente en 1982 para receptores de TV, y juega principalmente con dos líneas (aparte de la alimentación 3.3V-5V):
- SDA que son los datos bidireccionales
- SCL que es la señal de reloj
Un dispositivo hace de Master y proporciona la señal de reloj. (Puede haber extraordinariamente más de un master) y los otros dispositivos, hacen de Slave y tienen asociado una dirección.
Si quieres conectar dos Arduinos por comunicación I2C visita esta página.
En Arduino Alvik, los pines SDA y SCL están conectados en los pines 11 y 12
Podemos escanear los dispositivos I2C que estén conectados
from machine import I2C
from machine import Pin
i2c = I2C(0, scl=Pin(12, Pin.OUT), sda=Pin(11, Pin.OUT))
print()
print('Scan i2c bus...')
print()
devices = i2c.scan()
if len(devices) == 0:
print("No i2c device !")
else:
print('i2c devices found:',len(devices))
print()
for device in devices:
print("Decimal address: ",device," | Hexa address: ",hex(device))
print()
Fuente : https://docs.arduino.cc/tutorials/alvik/user-manual/#grove-connectors
He conectado un OLED en el conector Grove
Y me ha salido que tenía dos dispositivos