圧電ブザーとスピーカーの「音の違い」を確認する

2025年11月16日日曜日

マイコン工作

https://notyet-maker.blogspot.com/2025/10/wio-terminali2s-2.html の続き。

前回は、BEEP音だけを鳴らしただけだが、BEEP音が「圧電ブザーなのか」「I2S+WM8960経由のスピーカーなのか」が判別しにくかった。
そこで今回は、出力先を切り替えて音の違いを確認するコードを実行してみた。

・圧電ブザー(WIO_BUZZER)
・スピーカー(I2S → WM8960 → アンプ)
の2つを順番に鳴らし、液晶表示で現在の出力先も確認できるようにした。

#include <Audio.h>
#include <TFT_eSPI.h>
#include <Wire.h>

AudioSynthWaveformSine sine1;
AudioOutputI2S i2s1;
AudioConnection patchCord(sine1, 0, i2s1, 0);
AudioConnection patchCord2(sine1, 0, i2s1, 1);
AudioControlWM8960 codec;
TFT_eSPI tft;

void setup() {
  pinMode(WIO_BUZZER, OUTPUT);
  Wire.begin();
  AudioMemory(8);
  codec.enable();
  codec.volume(0.8);

  tft.begin();
  tft.setRotation(3);
  tft.fillScreen(TFT_BLACK);
  tft.setTextSize(2);
  tft.setTextColor(TFT_WHITE, TFT_BLACK);

  // ① Buzzer
  tft.setCursor(10, 60);
  tft.println("Buzzer: ON");
  tone(WIO_BUZZER, 440);
  delay(1000);
  noTone(WIO_BUZZER);
  tft.setCursor(10, 80);
  tft.println("Buzzer: OFF");
  delay(1000);

  // ② Speaker
  tft.fillScreen(TFT_BLACK);
  tft.setCursor(10, 60);
  tft.println("Speaker: ON");
  sine1.frequency(440);
  sine1.amplitude(0.6f);
  delay(1000);
  sine1.amplitude(0.0f);
  tft.setCursor(10, 80);
  tft.println("Speaker: OFF");
}

void loop() {}

 
 うん、違いは分かった。


このブログを検索

ブログ アーカイブ

幼少期からの浅い呼吸の改善

https://notyet-maker.blogspot.com/2025/11/14.html に関連。 ChatGPTから、横隔膜の動きを良くするなら胸部の弛緩だ、との回答があり、胸部に触れてから寝てみたら、胸あたりが重くなってHRVが急激に下がってしまった。 おそらく、...

QooQ