Доброго дня!
Я новичек в работе с контроллерами, и потому если вдруг написал глупости - ткните носом в документацию.
Проблема
- хочу детектировать сработку инфракрасного сенсора который в отсутвие отраженного сигнала выдает логичискую "1" (3.3V) а при наличии - "0"
- Плата прошита под micropython
- Код обработчика (тестовый)
К 25 пину подключен цифровой вывод сенсора
я наблюдаю в логах периодическое срабатывание прерывания
- всегда именно такое и не могу пока понять как это происходит
при эт ом на осцилографе я не вижу никаких импульсов, светодиод на самом датчике не моргает
возможно какой-то дребезг (но откуда когда есть PULL_UP? )
Буду благодарен за любой совет
Я новичек в работе с контроллерами, и потому если вдруг написал глупости - ткните носом в документацию.
Проблема
- хочу детектировать сработку инфракрасного сенсора который в отсутвие отраженного сигнала выдает логичискую "1" (3.3V) а при наличии - "0"
- Плата прошита под micropython
- Код обработчика (тестовый)
Python:
def ir_sensor_irq_handler(pin):
IRQ_COUNTER = IRQ_COUNTER +1.
print("IRQ CALL number {IRQ_COUNTER}".format(IRQ_COUNTER=IRQ_COUNTER))
# Detect if it was rise or fall
status = "uncknown"
pin_id = T._get_pin_id(pin)
print(pin.value())
if pin.value() == 0:
print("changed from 1 to 0 on pin {pin_id}".format(pin_id=pin_id))
status = "falling"
else:
print("changed from 0 to 1 on pin {pin_id}".format(pin_id=pin_id))
status = "rising"
print(status)
pin_irq = machine.Pin(SENSOR_DIGIT_PINS["left"], machine.Pin.IN, machine.Pin.PULL_UP)
pin_irq.irq(trigger=(machine.Pin.IRQ_RISING|machine.Pin.IRQ_FALLING), handler=ir_sensor_irq_handler)
К 25 пину подключен цифровой вывод сенсора
я наблюдаю в логах периодическое срабатывание прерывания
Python:
changed from 0 to 1 on pin 25
rising
IRQ CALL number 74
при эт ом на осцилографе я не вижу никаких импульсов, светодиод на самом датчике не моргает
возможно какой-то дребезг (но откуда когда есть PULL_UP? )
Буду благодарен за любой совет