У меня проблемы с обнаружением GPIO.BOTH
(нарастание и спад) с кодом Python
на моем Raspberry Pi 3
.Когда я включаю мой SPDT
переключатель в любом положении, а затем через пару секунд обесточиваю, Python
печатает:
- Обнаружен падающий фронт на контакте 7
- Обнаружен падающий фронтна контакте 7
Он обнаруживает Нарастающий фронт как Падающий фронт по какой-то причине, и что еще страннее, он иногда будет печатать Передний фронт обнаружен, когда он должен, но в других случаях нет, согласно приведенному ниже коду:
import RPi.GPIO as GPIO # Import Raspberry Pi GPIO library
import threading # Allows for scheduled Timer
# Declarations
ipins = [7, 8, 10, 11, 12, 13, 15, 16, 18, 19, 21, 22, 23, 24, 26, 29, 31, 32, 33, 35, 36, 37, 38, 40] # Possible Input Pins
GPIO.setmode(GPIO.BOARD) # Use physical pin numbering
# Pin Status Actions
def edgedetect(pin):
if GPIO.input(pin) == 1:
print("Rising edge detected on pin" + str(pin))
else:
print("Falling edge detected on pin" + str(pin))
# Pin Setup
for ipin in ipins:
GPIO.setup(ipin, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) # Setup all pins in ipins list as inputs pulled low (off)
GPIO.add_event_detect(ipin, GPIO.BOTH, callback=edgedetect, bouncetime=250) # Detect input rising edge, ignore bouncing edges for 250ms
GPIO.cleanup # Clean up the GPIO
Что я мог сделать не так?
РЕДАКТИРОВАТЬ: Подробнее о моей физической настройке нижев случае, если проблема может лежать там.У меня есть переключатель SPDT, который имеет общее соединение с 3V3 на Pi и резистором 440 Ом последовательно.Две выходные стороны коммутатора подключены к контакту 7 и контакту 13 соответственно.Каждый из трех проводов # 18 AWG и длиной около 6 дюймов соединен с изолированными Sta-kon, которые, как я подтвердил, не закорачиваются.