请教m48驱动蜂鸣器的问题
电路图如图:现在要求是:当检测到故障信号(低电平有效),蜂鸣器响,故障信号为高电平,蜂鸣器不响。当蜂鸣器响时,按一次键,蜂鸣器不响。这个都可以做到。if((故障 == 0)&& (按键没按标志位))
{
蜂鸣器响;
}
else
{
蜂鸣器不响;
}
if(按键按下)
delay(10);
if(按键按下)
{
按键按下标志位;//可以解除声音
}
现在的问题是:按键按下,声音可以消除,但是下一次故障来的时候,(故障输入信号低-----高--------低),蜂鸣器就不响了。这个如何解决,要求是会响。也就是按键单次有效?
建议驱动蜂鸣器改用共集电极放大电路,不然U11电流不够 多谢回复!现在主要是软件问题! jhjkdz 发表于 2014-2-5 13:22
多谢回复!现在主要是软件问题!
改为边沿检测可能好点
if(故障从1变为0)
蜂鸣器响;
if(按键从0变为1)
蜂鸣器不想;
这样好处是故障只要发生了,不按键蜂鸣器会一直想。但是要加延时去抖,你的延时去抖有问题,第二个if应该改为else if 。 故障信号消除时,清除按键标志就行了 wrmike 发表于 2014-2-5 23:27
改为边沿检测可能好点
if(故障从1变为0)
蜂鸣器响;
多谢!我试试
fzkqi 发表于 2014-2-5 23:41
故障信号消除时,清除按键标志就行了
多谢!我试试
页:
[1]