В рамках данного проекта мы подключим микроконтроллерную плату Raspberry Pi Pico к пироэлектрическому датчику движения HC-SR501, который используется во многих радиолюбительских проектах. Программировать их взаимодействие будем с помощью MicroPython.

Запишите прошивку, которую MicroPython использует для работы на Raspberry Pi Pico, которую можно загрузить на micropython.org/download. Чтобы сохранить загруженный файл UF2 с D&D после записи, нажмите кнопку «BOOT SEL» на основном блоке и подключите его к ПК, чтобы он распознавался как папка.
Также установите Thonny, так как он предоставляет практические настройки для проведения экспериментов MicroPython. Чтобы переключиться на Raspberry Pi Pico, щелкните место, где написано Python ниже.

Используемый пироэлектрический датчик HC-SR501 мы подключим к Raspberry Pi Pico следующим образом: VO к GP28, GND к GND и VCC к VBUS.

Вращайте переменные резисторы на основном блоке, используя следующий код, чтобы изменить чувствительность и время.
import machine as m
import utime
sensor = m.Pin(28, m.Pin.IN, m.Pin.PULL_DOWN)
led = m.Pin(25, m.Pin.OUT)
while True:
led.value(sensor.value())
Левая сторона блока переменных резисторов – это чувствительность, а правая – время, если смотреть спереди. Установите разумную цифру, так как если вы повернете настройку времени до упора, сигнал будет высоким в течение очень долгого времени (если ничего не требуется дополнительно, значения по умолчанию могут быть удовлетворительны).

Работа элемента BIS0001, используемого в этом датчике, видна на следующем изображении.

Далее приведен рабочий код.
import machine as m
import utime
sensor = m.Pin(28, m.Pin.IN, m.Pin.PULL_DOWN)
led = m.Pin(25, m.Pin.OUT)
def sensor_callback(Pin):
led.value(1)
utime.sleep_ms(250)
led.value(0)
sensor.irq(trigger = m.Pin.IRQ_RISING, handler = sensor_callback)
© digitrode.ru