In acest articol vom vedea cum putem detecta adresa I2C a diferitilor senzori folosind Raspberry Pi Pico.
Pentru a incarca fisierul cu codul sursa vom folosi editorul Thonny. Configurarea acestui editor pentru a fi utilizat cu Raspberry Pi Pico poate fi facuta conform instructiunilor din acest articol.
Senzorii folositi in acest articol sunt urmatorii: BMP180, BH1750, VEML6070, MPU9250, ADS1115, HMC5883L si ADXL345.
Acestia vor fi conectati la Raspberry Pi Pico dupa cum urmeaza:
Pin SDA senzor la pinul GPIO 0 iar pinul SCL se va conecta la GPIO 1.
Codul sursa folosit este cel de mai jos:
import machine
sda=machine.Pin(0)
scl=machine.Pin(1)
i2c=machine.I2C(0,sda=sda, scl=scl, freq=400000)
print('Scan i2c bus...')
devices = i2c.scan()
if len(devices) == 0:
print("No i2c device !")
else:
print('i2c devices found:',len(devices))
for device in devices:
print("Decimal address: ",device," | Hexa address: ",hex(device))
Prin rularea acestui cod se va returna adresa I2C a fiecarui senzor.
Pentru BMP180 se va returna urmatorul rezultat:
Scan i2c bus...
i2c devices found: 1
Decimal address: 119 | Hexa address: 0x77
BH1750:
Scan i2c bus...
i2c devices found: 1
Decimal address: 35 | Hexa address: 0x23
VEML6070:
Scan i2c bus...
i2c devices found: 2
Decimal address: 56 | Hexa address: 0x38
Decimal address: 57 | Hexa address: 0x39
MPU9250:
Scan i2c bus...
i2c devices found: 1
Decimal address: 104 | Hexa address: 0x68
HMC5883L:
Scan i2c bus...
i2c devices found: 1
Decimal address: 30 | Hexa address: 0x1e
ADS1115:
Scan i2c bus...
i2c devices found: 1
Decimal address: 72 | Hexa address: 0x48
ADXL345:
Scan i2c bus...
i2c devices found: 1
Decimal address: 83 | Hexa address: 0x53