Raspberry Pi Pico: I2C сканер (MicroPython) — поиск адреса I2C устройств

Это краткое руководство, которое покажет вам, как найти адрес I2C устройств с помощью Raspberry Pi Pico, запрограммированного на прошивке MicroPython.

Raspberry Pi Pico I2C сканер MicroPython — поиск адреса I2C устройств

Уже знакомы с Raspberry Pi Pico? Перейти сразу к скетчу I2C сканера.

Предварительные требования — прошивка MicroPython

Для прохождения данного руководства вам необходима прошивка MicroPython, установленная на вашу плату Raspberry Pi Pico. Вам также потребуется IDE для написания и загрузки кода на плату.

Рекомендуемая IDE для работы с MicroPython на Raspberry Pi Pico — это Thonny IDE. Следуйте приведённому ниже руководству, чтобы узнать, как установить Thonny IDE, прошить прошивку MicroPython и загрузить код на плату.

Raspberry Pi Pico — пины I2C по умолчанию

В Raspberry Pi Pico доступны две периферии I2C, называемые I2C0 и I2C1. Вы можете использовать две разные шины (I2C0 и I2C1) одновременно, но вы не можете использовать два I2C0 или два I2C1 одновременно. Вы можете использовать I2C связь на любых доступных пинах I2C.

Пины I2C по умолчанию — GPIO 4 (SDA) и GPIO 5 (SCL)ознакомьтесь с распиновкой Raspberry Pi Pico.

В следующей таблице показаны все пины, которые можно использовать для I2C связи.

Контроллер I2C

SDA GPIO

SCL GPIO

I2C0

GPIO0, GPIO4, GPIO8, GPIO12, GPIO16, GPIO20

GPIO1, GPIO5, GPIO9, GPIO13, GPIO17, GPIO21

I2C1

GPIO2, GPIO6, GPIO10, GPIO14, GPIO18, GPIO26

GPIO3, GPIO7, GPIO11, GPIO15, GPIO19, GPIO27

I2C сканер — MicroPython

Если вы хотите найти I2C адрес конкретного датчика, дисплея или любой другой I2C периферии, подключите её к пинам I2C Raspberry Pi Pico и затем запустите приведённый ниже код I2C сканера.

Откройте Thonny IDE или другую IDE по вашему выбору и скопируйте следующий код.

# I2C Scanner MicroPython
from machine import Pin, SoftI2C

# You can choose any other combination of I2C pins
i2c = SoftI2C(scl=Pin(5), sda=Pin(4))

print('I2C SCANNER')
devices = i2c.scan()

if len(devices) == 0:
  print("No i2c device !")
else:
  print('i2c devices found:', len(devices))

  for device in devices:
    print("I2C hexadecimal address: ", hex(device))

Просмотреть исходный код

Raspberry Pi Pico I2C сканер — код скрипта MicroPython

После копирования кода:

  • подключите Raspberry Pi Pico к вашему компьютеру, если он ещё не подключён;

  • убедитесь, что ваша I2C периферия правильно подключена к плате на соответствующих пинах I2C (SCL=GPIO5; SDA=GPIO4). Если вы используете другие пины, убедитесь, что вы изменили их в коде.

i2c = SoftI2C(scl=Pin(5), sda=Pin(4))
  • запустите предыдущий код (скетч I2C сканера). Если вы используете Thonny IDE, вам достаточно нажать на зелёную кнопку запуска.

Запуск скрипта I2C сканера MicroPython на Raspberry Pi Pico

I2C адрес вашей периферии будет выведен в консоли (Shell).

Пример вывода I2C сканера MicroPython Raspberry Pi Pico — найденные устройства

Если у вас подключено несколько устройств к одной и той же шине I2C, будут отображены адреса всех устройств.

Заключение

В этом руководстве вы узнали, как быстро найти адрес I2C устройств. Вам достаточно подключить вашу I2C периферию к Raspberry Pi Pico и запустить код I2C сканера.

Надеемся, что это руководство было для вас полезным.

Узнайте больше о Raspberry Pi Pico с помощью наших ресурсов:

Также у нас есть руководства для других популярных плат микроконтроллеров: