如何解决在蜂鸣器上演奏和弦,ESP32 Arduino
我想使用 esp32 在蜂鸣器上同时播放两个频率(522 和 660)。
我尝试过这些不同的方法:
void loop()
{
unsigned long t = micros();
if(t % 261 <= 10) //for approximation
{
firstWave = !firstWave;
}
if(t % 330 <= 10)
{
secondWave = !secondWave;
}
if(firstWave && secondWave)
{
digitalWrite(13,HIGH);
}
else
{
digitalWrite(13,LOW);
}
}
这导致完全没有声音。 然后我试着用 FreeRTOS 强制它没有考虑太多......
void secondWave(void* p)
{
while(true)
{
delayMicroseconds(330);
digitalWrite(13,HIGH);
delayMicroseconds(330);
digitalWrite(13,LOW);
}
return;
}
void setup()
{
xTaskCreate(secondWave,"wave",10000,NULL,1,NULL);
}
void loop()
{
delayMicroseconds(261);
digitalWrite(13,HIGH);
delayMicroseconds(261);
digitalWrite(13,LOW);
}
这没有用……但是谁是看门狗,为什么他会被触发。
我不想买第二个蜂鸣器。 我不想买不同的卡。
请帮忙,谢谢
解决方法
您正在尝试只有一个蜂鸣器几乎不可能。
蜂鸣器通过以特定频率振动金属板来工作。 压电蜂鸣器一次只能播放一个频率。我知道你不想再买一个蜂鸣器,但这意味着你每次只能弹一个音符
如果您想演奏和弦,您甚至可能需要最多三个和弦。您可以做的是尝试制作扬声器或回收扬声器。这些通常可以同时播放多个频率。
这是制作演讲者的粗略但好方法:Guide
对于这个坏消息,我深表歉意,我希望这对您有用 - 祝您有美好的一天!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。