基于ArduinoUno的警报器
我的项目是一个按钮控制的警报器,具有不同的LED转换。您可以更改每次按下的警笛声(例如警察或救护车警笛等)。我使用10个LED为每个警报器添加了2个不同的LED模式。我总共添加了4个警笛音。
代码解释
1。由于我们使用按键来切换音调,我们必须消除按键去抖的问题,我通过软件实现使用布尔去抖功能消除了这个问题。
2。条件ifelse用于在不同功能之间切换。这里one()和oneA()是具有两个不同LED转换的第一个音调,对于其他功能也是如此。每个功能的音调都与delay()适当使用的LED转换同步。
同步的工作原理
tone()使用Arduino上的内置计时器之一,并且该计时器独立于delay()。或者换句话说,我们可以说,如果你想播放区域节拍,你应该检查延迟时间和持续时间之间的差异,tone()因为这两个功能是并行工作的。现在我所做的是将延迟分成更小的部分,以便与不同的LED组一起使用。
让我们以three()一个例子来理解它。
voidthree(){Thisfunctionproducesthe3rdsiren(AMBULANCEsound)。tone(buzz,440,200);
delay(300);
for(inti3;i6;i)
digitalWrite(i,HIGH);
noTone(buzz);
tone(buzz,494,500);
delay(300);
for(inti3;i6;i)
{digitalWrite(i,LOW);
digitalWrite(i6,HIGH);}
noTone(buzz);
tone(buzz,523,300);
delay(200);
digitalWrite(7,HIGH);
delay(50);
digitalWrite(8,HIGH);
delay(50);
noTone(buzz);
}
最后tone()我将300ms的延迟分为200、50和50,这样7脚和8脚的LED在523hz音调结束时有闪烁效果,而音调在后台持续300ms(因为没有如上所述的延迟和音调持续时间之间的差异)。
更多详情资料可前往基于ArduinoUno的警报器电路方案与非网
此方案版权归电路城用户所有,如作者不愿发布在头条可私信或前往电路城联系相关人员删除。