嵌入式

Arduino 报警器的多种实现

2022-06-30  本文已影响0人  老中医167788

实验一

利用两个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; 指定哪个引脚
上一篇下一篇

猜你喜欢

热点阅读