見出し画像

【応用】Arduinoで電子ピアノを作ろう!#9

今回はパッシブブザーを使った応用例として、電子ピアノの作り方を解説します。

タクトスイッチを鍵盤に見立て、押された時にド、レ、ミといった音階が鳴るようなプログラムを作ります。

前回の「パッシブブザーの使い方 #8」を先に読んでいただくと、よりスムーズに進められます。

ぜひ最後まで、チャレンジしてみてくださいね👍


はじめに

この記事では、ELEGOOのArduino用電子LearningキットE3を使います。

👆のキットを使って、Arduino UNO R4でスイッチを使う方法を解説したいと思います。

【 注意 】
当Webサイトに掲載された内容によって生じた損害等の一切の責任を負いません。また生じた問題についてはご自身の責任において解決いただくことをあらかじめご承知おきください。詳しくは下記URLの免責事項をご確認願います。当サイトの免責事項に同意いただける場合に限り、当サイトの内容をご利用いただけます

https://note.com/shingo_shirogane/n/n3d5686bf512b

YouTube動画

電子ピアノの作り方を、動画で分かりやすく解説しています。

必要なもの

1. マイコンボード

本記事では、Arduino UNO R4 Wi-Fiを使います。

2. 電子部品

ELEGOO LearningキットE3に入っている電子部品を使います。

パッシブブザー × 1
タクトスイッチ × 8
ジャンパーワイヤー 適量
ブレッドボード × 1

電子ピアノを作るための基礎知識

1. パッシブブザーで音を鳴らす

電子ピアノを作るために、パッシブブザーを使います。

基本的な構造や使い方については、👇の記事で詳細に解説しています。

2. タクトスイッチの使い方

タクトスイッチを電子ピアノの鍵盤に見立てて使います。スイッチが押されたら、ドやレの音が鳴るようにプログラミングするわけです。

タクトスイッチの構造や使い方について知りたい方は、ぜひ👇の記事をご覧ください。

Arduinoで作る電子ピアノの回路

1. 回路図

タクトスイッチをたくさん使います。ワイヤーの挿す場所を間違えないように気を付けてください。

またワイヤーの色は何色でもよいですが、図中のオレンジや赤色はできるだけ暖色系を、GNDには黒・緑・青などの暗い色を選ぶと分かりやすいです。

2. 配線の様子

ブレッドボードをめいっぱい広く使います。

プログラミング

1. ライブラリのインストール

今回のプログラムでは、ライブラリ「TonePitch by Rodrigo」のインストールが必要です。

詳細なインストール方法については、👇の記事をご覧ください。

2. 電子ピアノのプログラム

👇が電子ピアノのプログラムです。注意事項をよく読んだ上で、ご使用ください。

//当Webサイトに掲載された内容によって生じた損害等の一切の責任を負いません。
//当webサイトの免責事項に同意いただける場合に限り、プログラムをご利用いただけます。
//ライブラリTonePitch by Rodrigoのインストールが必要です。

//ヘッダーファイルの読み込み
#define TONE_USE_INT
#define TONE_PITCH 440
#include <TonePitch.h>

//スイッチのピン番号
#define SW_C4 2   //ド
#define SW_D4 3   //レ
#define SW_E4 4   //ミ
#define SW_F4 5   //ファ
#define SW_G4 6   //ソ
#define SW_A4 7   //ラ
#define SW_B4 8   //シ
#define SW_C5 9   //(高い)ド

#define BUZZ_PIN 10 //ブザーのピン

void setup() {
  pinMode( SW_C4, INPUT_PULLUP );    //入力ピンに設定
  pinMode( SW_D4, INPUT_PULLUP );    //入力ピンに設定
  pinMode( SW_E4, INPUT_PULLUP );    //入力ピンに設定
  pinMode( SW_F4, INPUT_PULLUP );    //入力ピンに設定
  pinMode( SW_G4, INPUT_PULLUP );    //入力ピンに設定
  pinMode( SW_A4, INPUT_PULLUP );    //入力ピンに設定
  pinMode( SW_B4, INPUT_PULLUP );    //入力ピンに設定
  pinMode( SW_C5, INPUT_PULLUP );    //入力ピンに設定
  pinMode( BUZZ_PIN, OUTPUT );    //出力ピンに設定
}

void loop() {
  if(digitalRead(SW_C4)==LOW){  //ドが押された時
    buzzSound(NOTE_C4);
  }
  else if(digitalRead(SW_D4)==LOW){ //レが押された時
    buzzSound(NOTE_D4);
  }
  else if(digitalRead(SW_E4)==LOW){ //ミが押された時
    buzzSound(NOTE_E4);
  }
  else if(digitalRead(SW_F4)==LOW){ //ファが押された時
    buzzSound(NOTE_F4);
  }
  else if(digitalRead(SW_G4)==LOW){ //ソが押された時
    buzzSound(NOTE_G4);
  }
  else if(digitalRead(SW_A4)==LOW){ //ラが押された時
    buzzSound(NOTE_A4);
  }
  else if(digitalRead(SW_B4)==LOW){ //シが押された時
    buzzSound(NOTE_B4);
  }
  else if(digitalRead(SW_C5)==LOW){ //高いドが押された時
    buzzSound(NOTE_C5);
  }
  else{   //何も押されてない時
    noTone(BUZZ_PIN);   //消音
  }
}

//音を鳴らす関数
void buzzSound(int frequency){
  tone(BUZZ_PIN, frequency);  //音を鳴らす
  delay(50);
}

*もう少しスマートにプログラムが書きたかったのですがアイデアが思いつかず、else ifだらけに。笑

3. プログラムの検証と書き込み

プログラムが完成したら、Arduinoをパソコンとつなぎ、検証→書き込みを行います。

  • 「✓マーク」を押す(検証)

  • 問題なければ、「→マーク」を押す(書き込み)

書き込みが終わり、上手く回路とプログラムが作れていれば、ボタンを押すとそれぞれ割り当てられた音階がブザーから鳴るはずです。

音が鳴るのを写真で伝えるのは難しい…。

やりましたね!ここまでお疲れさまでした👍

おわりに

いかがだったでしょうか。

もしこの記事がお役に立てたら、"スキ"をいただけると励みになります!

見た目こそピアノっぽくありませんが、鍵盤のように音を鳴らせる工作を楽しんでいただけると思います。

最後まで読んでいただき、ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?