Skip to main content

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

2025-05-07 13_24_53-WhatsApp.png

Y me ha salido que tenía dos dispositivos 

2025-05-07 13_29_41-Arduino Lab for MicroPython.png