🔊
Arduinoで音を出す方法
配線は指すだけ
部品
1個30円。
項目 | 値 |
---|---|
動作電圧範囲 | 30Vp-p以下 |
- Vp-p は Volt peak to peak の略でサイン波の縦の全体幅のこと
- Arduino は最大 5V なので
5Vp-p <= 30Vp-p
で問題ないってこと? - 他に見る項目がないのだけど電流とかは気にしないでいい?
配線
- プラス側を 8 と繋ぐ (PWMではないポートで可)
- ブレッドボード不要
コード
音を出すとかそんなのは割り込み処理を含めハードウェアを知り尽くした者だけが到達できる領域だと勝手にハードルを高くしていたのだけどやってみたら一行だった。
void setup() {
}
void loop() {
tone(8, 262, 500); // ポート8に繋いだスピーカーに C (262) を 0.5 秒鳴らす
delay(1000); // 1秒待つ (1秒間の休符になるわけではない)
}
実際のところ難しいのは確かだけど tone が内部で全部やってくれていた。
tone は非同期なので次の delay と組み合わせると 0.5 秒鳴らす → 0.5 秒待つ を繰り返す。
参考
内部の構造に詳しい (見てもよくわからないけど)
自力で digitalWrite のみを駆使して鳴らしている
鳴らす処理をメインとするなら割り込みは必要ないようだ
通常は1音しか鳴らせないはず
Discussion