Arduino 报警器的多种实现
2022-06-30 本文已影响0人
Charles2018
实验一
利用两个for循环产生两个频率不通音效。
auto beep = PD3;
void setup()
{
pinMode(PD3, OUTPUT);
}
void loop()
{
// output first frequency
for (int i = 0;i < 80;i++)
{
digitalWrite(beep, HIGH);
delay(1);
digitalWrite(beep, LOW);
delay(1);
}
// output second frequency
for (int i = 0;i < 120;i++)
{
digitalWrite(beep,HIGH);
delay(2);
digitalWrite(beep, LOW);
delay(2);
}
}
演示实物
电路图
实验二 利用函数tone()控制扬声器
让扬声器响2s停1s。
代码
auto beep = PD3;
void setup()
{
pinMode(PD3, OUTPUT);
}
void loop()
{
long frequency = 2000; // 定义Hz
tone(beep, frequency);
delay(2000);
noTone(beep); // 停止发声
delay(1000);
}
核心代码解读
tone() reference
在引脚上生成指定频率(和 50% 占空比)的方波
void tone(uint8_t _pin, unsigned int frequency, unsigned long duration = 0);
参数pin; 要产生声音的引脚
参数frequency; 产生声音的频率,单位Hz
// 停止发声
void noTone(uint8_t _pin);
参数pin; 指定哪个引脚