不同引脚触发的GPIO中断

GPIO interrupt triggered by different pin

tl;博士:

监听GPIO PIN14上的RISING事件(带10K下拉电阻); sending/receiving 不同 GPIO 引脚上的数据时的 Ghost RISING 事件;


我有以下问题:

在我的技术室,我有一个 Raspberry Pi 1B,和 Raspberry Pi 3;我在两个单元上测试了这个,我得到了相同的结果;

我的电源电表有一个闪烁的 LED,1000/kWh;我想用一个光敏电阻来测量这个;光敏电阻接GPIO PIN14;只要我不使用任何其他 GPIO 引脚,此设置就可以正常工作。

使用相同的单元,我想通过 433Mhz 发送一些数据(GPIO PIN7,但是一旦我传输数据,我就会在 PIN14 上收到 RISING 事件...

我在互联网上找到了不同的解决方案,none 其中似乎有效:

使用下面的代码,我可以看到光敏电阻和 PIN14 的预期行为;但是一旦我启动传输,发送消息的事件和 PIN14 上的 RISING 事件就会同步。当我停止发送消息时,PIN14 上的侦听器停止工作。

有人知道如何解决这个问题吗?

PIN14 监听码:

import datetime
import time

try:
    import RPi.GPIO as GPIO
except RuntimeError:
    print(
        'Error importing RPi.GPIO!  This is probably because you need superuser privileges.')

delta = datetime.timedelta(microseconds=100000)
global last_electric_ping
last_electric_ping = datetime.datetime.now()

GPIO.setmode(GPIO.BCM)
GPIO.setup(14, GPIO.IN)


def electric_ping(channel):
    if GPIO.input(14):
        global last_electric_ping
        now = datetime.datetime.now()
        if delta + last_electric_ping <= now:
            print(delta + last_electric_ping, end=" ")
            print('ELECTRIC')
        last_electric_ping = now

GPIO.add_event_detect(14, GPIO.RISING, callback=electric_ping)

while True:
    continue

GPIO.cleanup()

传输代码:

import time
from pi_switch import RCSwitchSender

sender = RCSwitchSender()
sender.enableTransmit(15) # use WiringPi pin 0

num = 1
while True:
        time.sleep(1)
        print("Woei!")
        sender.sendDecimal(num, 24)
        num += 1

击鼓:

显然我 运行 遇到了编号问题; BCM 引脚编号表示物理引脚 8 是 GPIO14,这很好;

现在三个猜测 wiringPi 给物理引脚号 8 的数字......是的,数字 15!这是我在第二个脚本中尝试将数据发送到的那个;

现在请原谅,我去那边的角落里用砖头拍打自己...