Raspberry Pi Pico: I2C сканер (MicroPython) — поиск адреса I2C устройств
Это краткое руководство, которое покажет вам, как найти адрес I2C устройств с помощью Raspberry Pi Pico, запрограммированного на прошивке MicroPython.
Уже знакомы с 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 периферия правильно подключена к плате на соответствующих пинах I2C (SCL=GPIO5; SDA=GPIO4). Если вы используете другие пины, убедитесь, что вы изменили их в коде.
i2c = SoftI2C(scl=Pin(5), sda=Pin(4))
запустите предыдущий код (скетч I2C сканера). Если вы используете Thonny IDE, вам достаточно нажать на зелёную кнопку запуска.
I2C адрес вашей периферии будет выведен в консоли (Shell).
Если у вас подключено несколько устройств к одной и той же шине I2C, будут отображены адреса всех устройств.
Заключение
В этом руководстве вы узнали, как быстро найти адрес I2C устройств. Вам достаточно подключить вашу I2C периферию к Raspberry Pi Pico и запустить код I2C сканера.
Надеемся, что это руководство было для вас полезным.
Узнайте больше о Raspberry Pi Pico с помощью наших ресурсов:
Также у нас есть руководства для других популярных плат микроконтроллеров: