换了有源蜂鸣器后,蜂鸣器问题也解决了,但是用ESP8266的GPIO中断计数有问题,发现触发不了中断。
原来的图大坑,有因为原来的图是给5V单片机设计的,esp8266是3.3的,改了一下,通过电阻分压得到3.3V的下降沿脉冲
用示波器接在INT上都可以测出脉冲了,非常窄的脉冲信号
代码里面用中断来计数
pinMode(D4, INPUT);
digitalWrite(D4, HIGH);
attachInterrupt(D4, tube_impulse, FALLING); //define external interrupts
void ICACHE_RAM_ATTR tube_impulse(){ //subprocedure for capturing events from Geiger Kit
counts++;
Serial.print("count add one\n");
}但是发现没有触发中断。怀疑是脉冲过于狭窄检测不出?
发现国外也有人遇到同样的问题:
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
坑!