電子種別 | 電子部品 | 個数 |
マイコン | Elegoo UNO R3 マイコンボード | 1 |
USBケーブル | 1 | |
能動 | アクティブブザー | 1 |
パッシブブザー | 1 | |
機構 | プッシュボタン | 3 |
ブレッドボード | 1 | |
ジャンプワイヤ(赤)[オス-メス] | 1 | |
ジャンプワイヤ(黒)[オス-メス] | 1 | |
ジャンプワイヤ(青)[オス-オス] | 1 | |
ジャンプワイヤ(黄)[オス-オス] | 1 | |
ジャンプワイヤ(緑)[オス-オス] | 1 | |
ジャンプワイヤ(黒)[オス-オス] | 4 |
- 電子ブザーはDC電源で集積回路を備えている。
- PCやプリンタ、アラームや電子玩具、車載電子機器、電話機、タイマ及び音声デバイス用の電子製品に広く使用されている
- ピンを上に向けて、黒色のテープで囲まれているのがアクティブ(能動的)ブザー、緑色の回路基板を持つのがパッシブ(受動的)ブザー
- アクティブブザーは発振器内臓で、決まった直流電圧を掛けると決まった音程のブザー音(BEEP音)が鳴る。また周波数(2k~5k)にて音程を変えたり、メロディーを流すことも可能
- パッシブブザーは周波数にて音程を変えたり、メロディーを流すことができる
- 【pitches】音階の周波数を宣言
/*****************************************/ /* 【 Elegoo: 6-7 】 ブザー */ /* 電子音・音階・メロディを鳴らす */ /*****************************************/ // pitchesライブラリ:音階の周波数(Hz)を宣言 #include "pitches.h" // ピンの定義 #define BUZZER 5 // D5 : BUZZER #define SW_BEEP 7 // D7 : Switch 電子音(BEEP) #define SW_TONE 8 // D8 : Switch 音階 #define SW_MELODY 9 // D9 : Switch メロディ /*-------------------------*/ /* 音階 */ /* "pitches.h"より */ /*-------------------------*/ int aryFrequency[] = { NOTE_C4, NOTE_D4, NOTE_E4, NOTE_F4, NOTE_G4, NOTE_A4, NOTE_B4, NOTE_C5 }; /*-------------------------*/ /* メロディ : きらきらぼし */ /* "pitches.h"より */ /*-------------------------*/ int aryMelody[] = { NOTE_C4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_G4, NOTE_G4, NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_C4, NOTE_C4, NOTE_G4, NOTE_G4, NOTE_A4, NOTE_A4, NOTE_G4, NOTE_F4, NOTE_F4, NOTE_E4, NOTE_E4, NOTE_D4, NOTE_D4, NOTE_C4 }; // 音の長さ int aryMelodyDurations[] = { 4,4,4,4,4,4,2, 4,4,4,4,4,4,2, 4,4,4,4,4,4,2, 4,4,4,4,4,4,2, 4,4,4,4,4,4,2, 4,4,4,4,4,4,2 }; /*-------------------------*/ /* 音階総数 */ /*-------------------------*/ int noteNum; /*********/ /* setup */ /*********/ void setup(){ // pinの設定 pinMode( BUZZER, OUTPUT ); // BUZZER : 出力用 pinMode( SW_BEEP, INPUT_PULLUP ); // Switch : プルアップ時に発動 pinMode( SW_TONE, INPUT_PULLUP ); // Switch : プルアップ時に発動 pinMode( SW_MELODY, INPUT_PULLUP ); // Switch : プルアップ時に発動 } /********/ /* loop */ /********/ void loop(){ // -------------------------------------------------- // Switch 電子音(BEEP) ==> BEEP音 出力 // -------------------------------------------------- if( digitalRead( SW_BEEP ) == LOW ) outputBeep(); // -------------------------------------------------- // Switch 音階 ==> 音階 出力 // -------------------------------------------------- if( digitalRead( SW_TONE ) == LOW ) outputTone(); // -------------------------------------------------- // Switch メロディ ==> メロディ 出力 // -------------------------------------------------- if( digitalRead( SW_MELODY ) == LOW ) outputMelody(); } /********************************/ /* BEEP音 出力 */ /********************************/ void outputBeep(){ int i, j; // -------------------------------------------------- // 音の長さ // -------------------------------------------------- for( j = 0; j <= 600; j += 150 ){ // -------------------------------------------------- // 演奏回数 // -------------------------------------------------- for( i = 0; i < 5; i++ ){ digitalWrite( BUZZER, HIGH ); delay( j ); digitalWrite( BUZZER, LOW ); delay( j ); } } } /********************************/ /* 音階 出力 */ /********************************/ void outputTone(){ // -------------------------------------------------- // 音階総数の設定 // -------------------------------------------------- noteNum = sizeof aryFrequency / sizeof aryFrequency[0]; // -------------------------------------------------- // 音階数の周波数を出力する // -------------------------------------------------- for( int i = 0; i < noteNum; i++ ){ tone( BUZZER, aryFrequency[i] ); delay( 500 ); // 演奏速度 } // -------------------------------------------------- // 周波数の出力を停止する // -------------------------------------------------- noTone( BUZZER ); delay( 500 ); } /********************************/ /* メロディ 出力 */ /********************************/ void outputMelody(){ // -------------------------------------------------- // 音階総数の設定 // -------------------------------------------------- noteNum = sizeof aryMelody / sizeof aryMelody[0]; // -------------------------------------------------- // 音階数の周波数を音の長さだけ出力する // -------------------------------------------------- for( int i = 0; i < noteNum; i++){ tone( BUZZER, aryMelody[i],( 1000 / aryMelodyDurations[i] ) ); delay( 500 ); //演奏速度 } // -------------------------------------------------- // 周波数の出力を停止する // -------------------------------------------------- noTone( BUZZER ); delay( 500 ); }
※ 発振器が内臓されていないため、
電圧を掛けてもブザー音(BEEP音)は鳴らない
電圧を掛けてもブザー音(BEEP音)は鳴らない
0 件のコメント:
コメントを投稿