ESP32, IOT物聯網

【IOT物聯網應用-ESP32】第六篇:控制蜂鳴器 電子門鈴設計

實驗說明:

  • 本實驗將讓大家的ESP32電路發出聲音,能夠發出聲音的最常見的元器件就是蜂鳴器和喇叭了,兩者相比較蜂鳴器更簡單和易用,所以我們本實驗採用蜂鳴器。
  • 蜂鳴器基本上分兩類:有源蜂鳴器、無源蜂鳴器。無源蜂鳴器可透過 PWM (PWM:Pulse Width Modulation)方式控制其發聲頻率 ,我們就可以利用它來播放簡單的旋律。有源蜂鳴器則是內建了一組固定的頻率,只要接通電源,就會發出固定的音調,無法利用 PWM 對其音頻進行控制。

材料:

  • ESP32-E DevKit
  • USB 傳輸線
  • 無源蜂鳴器
  • 有源蜂鳴器
  • 麵包板
  • 麵包板跳線

▼ 購買IoT物聯網學習教材:

ESP32 物聯網應用學習套件 ESP32CAM IoT物聯網學習教材 適用Arduino

 

接線說明:

 

程式(有源蜂鳴器):

int buzzPin = 15;
void setup()  
{        
  pinMode(buzzPin, OUTPUT);  
}

void loop()                     
{
  digitalWrite(buzzPin, HIGH); //有源蜂鳴器響起
  delay(2000); 
  digitalWrite(buzzPin, LOW);  //有源蜂鳴器關閉
  delay(2000);      
}

 

程式(無源蜂鳴器):

int buzzer=15;
void setup() 
{ 
  pinMode(buzzer,OUTPUT);
} 
void loop() 
{ 
  int i;
  while(1) 
  { 
    for(i=0;i<50;i++)
    { 
      digitalWrite(buzzer,HIGH);
      delay(1);
      digitalWrite(buzzer,LOW);
      delay(1);
    } 
    delay(1000);
    for(i=0;i<100;i++)
    { 
      digitalWrite(buzzer,HIGH);
      delay(3);
      digitalWrite(buzzer,LOW);
      delay(3);
    } 
    delay(1000);
  } 
} 

 

程式說明:

針對無源蜂鳴器程式碼說明如下

  • 第 1 列設置控制蜂鳴器的數位接口GPIO15 Pin。
  • 第 3 列設置數位I\O腳模式,buzzer GPIO15 Pin為數位輸出Pin 。
  • 第 8 列宣告變數。
  • 第 11~17 列輸出一個頻率的短聲音。
  • 第 18 列延遲1秒。
  • 第 19~25 列輸出另一個頻率的長聲音。
  • 第 26 列延遲1秒。

 

下載完程序就可以聽到ESP32的數位接口GPIO15 Pin外接蜂鳴器在發出一長一短的聲音。

 

 

進階範例電子門鈴(有源蜂鳴器):

材料:

  • ESP32-E DevKit
  • USB 傳輸線
  • 有源蜂鳴器
  • 按鍵開關
  • 10kΩ直插電阻
  • 麵包板
  • 麵包板跳線

 

 

程式(有源蜂鳴器):

int buzzPin=15;
int inpin=16;
int val;
void setup()
{
  pinMode(buzzPin,OUTPUT);
  pinMode(inpin,INPUT);
}
void loop()
{
  val=digitalRead(inpin);
  if(val==LOW)
  { 
    digitalWrite(buzzPin,LOW);
  }
  else
  { 
    digitalWrite(buzzPin,HIGH);
  }
}

 

分析電路可知當按鍵按下時,數位接口GPIO16 Pin可讀出為高電位,這時我們使數位接口GPIO15 Pin輸出高電位則可使有源蜂鳴器發出聲響,在程式中我們判斷數位接口GPIO16 Pin是否為低電位,若是低電位則使數位接口GPIO15 Pin輸出為低電位有源蜂鳴器無聲。

 

 

 

 

相關文章