圧電スピーカをつないで音を鳴らします

〔Arduinoの動かせ方入門に戻る〕



圧電スピーカ(圧電ブザー)を使ってメロディを鳴らす事が出来ます。

普通のスピーカを使ってメロディを鳴らす場合はこちらを参考にして下さい。
EEPROMメモリーにメロディのデータを作成して鳴らす方法はこちらを参考にして下さい。
圧電スピーカを振動センサー替わりにして音を鳴らす方法はこちらを参考にして下さい。

@まずは、下記図画面の様に配線しましょう。
 圧電スピーカの出力にはデジタル出力12番ピンを使用します。

Sound1

Aarduinoボード(Arduino Duemilanove 328)はUSBケーブルで接続して、arduino IDEを起動させます。

BIDEに下記のスケッチプログラムをコピーペーストして貼り付けて下さい。
---------------------------------------------------------------------
#define BEAT 300   // 音の長さを指定
#define PINNO 12   // 圧電スピーカを接続したピン番号

void setup() {
}
void loop() {
     tone(PINNO,262,BEAT) ;  // ド
     delay(BEAT) ;
     tone(PINNO,294,BEAT) ;  // レ
     delay(BEAT) ;
     tone(PINNO,330,BEAT) ;  // ミ
     delay(BEAT) ;
     tone(PINNO,349,BEAT) ;  // ファ
     delay(BEAT) ;
     tone(PINNO,392,BEAT) ;  // ソ
     delay(BEAT) ;
     tone(PINNO,440,BEAT) ;  // ラ
     delay(BEAT) ;
     tone(PINNO,494,BEAT) ;  // シ
     delay(BEAT) ;
     tone(PINNO,523,BEAT) ;  // ド
     delay(3000) ;           // 3秒後に繰り返す
}
---------------------------------------------------------------------
CIDEツールバーの赤枠部分「Upload」ボタンをクリックしてコンパイルとarduinoボードに書込みを
 行います。

upload

D正常終了後、3秒おきにメロディが鳴と思います。

《やさしく解説》

圧電スピーカ(圧電ブザー)について

圧電スピーカは音声は無理です、ブザー音のみしか鳴らせません。
また、普通のブザーのようにつなげれば鳴る品物でなく、電気を流したり切ったりを高速で繰り返す事により鳴ります。

Sound2

ON(電気入)とOFF(電気切)の時間の長さを可変すると音程を変える事が出来ますが、ONとOFFの長さが長すぎると音は出ません。
尚、つなぐ圧電スピーカ種類でかなり音のなり方が異なったりします。

スケッチについて

tone(pin, frequency, duration)
 pin:圧電スピーカを接続したピン番号(12番ピン)
 frequency:周波数(Hz)値で音の高さを指定する数値です(下記一覧参照)
       (frequencyは65535までのようです、たぶんunsigned int宣言のような感じです)
 duration:出力する時間をミリ秒で指定、音の長さを指定する数値です
      (4分音符=60M.M.) 全音符=4000 2分音符=2000 4分音符=1000 8分音符=500 16分音符=250
      (4分音符=80M.M.) 全音符=3000 2分音符=1500 4分音符=750 8分音符=375 16分音符=188
      (4分音符=120M.M.)全音符=2000 2分音符=1000 4分音符=500 8分音符=250 16分音符=125

※ toneの標準関数を使用する場合はpinMode関数でデジタル出力指定は必要有りません。
※ tone関数は最近のIDEにて追加された関数みたいです、少なくともIDE 0014には有りませんでした。
 だから前のバージョンではエラーが出ます、最新のIDEを使用して下さい。

 tone関数を使用しないサンプルスケッチをこちらからダウンロード出来ます。
 ダウンロードスケッチの保存先と開き方はこちらを参照下さい。
 メロディのデータを作成して鳴らす方法はこちらを参考にして下さい。

delay(value)
 プログラムを指定した時間だけ一時停止します。
 value:停止したい時間を指定します、単位はミリ秒です。
 delay(10000)なら10秒ですね、1秒は1000msです。

#define
 これは数値に名前を付けます、
 "#define BEAT 300"だとBEATと言う名前は数値の300であると言う事です。
 数値を変更したい場合はこの300を変えるだけだから便利です。

《その他》

下記にarduinoのExamplesのtoneMelodyで使用しているpitches.hファイル内容を記載します。
これはtoneのfrequencyで設定する周波数(Hz)値です。(数値が大きくなるほど高音になります)
---------------------------------------------------------------------
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262     // ド
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978
---------------------------------------------------------------------




【きむ茶工房ガレージハウス】
Copyright (C) 2006-2011 Shigehiro Kimura All Rights Reserved.