Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

@onigiritech

M5StickC + Speaker Hat で音を出す

動機など

先日 M5StickC を購入した際、合わせて買っていた「Speaker Hat」を使ってみようとサンプルコードを開いてみたものの、公式のスケッチサンプルが仰々しく(?)、私の手には余るものだったので、とりあえず音を出すにはどうしたらいいかを調べることにしました。

音を出す方法

参考にしたサイト

最終的にこちらの説明やソースがわかりやすかったです。

M5Stack の内蔵スピーカーから Beep 音(電子音)を出す実験(mgo-tec電子工作)

ポイントだと思ったところ

  • SPEAKER HAT で音を出すのに使うのは26番ピン
  • 音を出すのには dacWrite() 関数が使える。
  • 調べたところ、これ以外にも方法はありそう。参考→ESP-WROOM-32に関するTIPSの中にある「DAC(アナログ出力)」「PWM等」の部分
  • 音量を調整しようとしたら、ひとまずdacWrite()を使うことになるのかも。

ソースコード

これで「プー」と1回鳴ります。

#define GPIO_PIN 26 //SPEAKER HATの出力は26番ピン

// スピーカーの音量調整。
uint8_t beepVolume = 50;

// とりあえず1回だけ鳴らすために、setup()の中に書いた

void setup() {
  for (int i = 0; i <= 1000; i++) {
    dacWrite(GPIO_PIN, 0);
    delayMicroseconds(500);
    dacWrite(GPIO_PIN, beepVolume);
    delayMicroseconds(500);
  }
}

感想など

とりあえずこれで、M5StickC+SPEAKER HATで「音を出す仕組みの基本」みたいなところはわかりました。
それにしても、ノイズがかなり出ます。使い方によっては気になると思いますが、今回はひとまず音が出たのでよしとします。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
1
Help us understand the problem. What are the problem?