電気素人主婦による備忘録 ※ ご利用は自己責任でお願いします ※
/****************************************************/ /* 【 Elegoo:8 】傾斜センサ */ /* チルトボールスイッチで傾きを検出して */ /* ボード上のLEDを点灯する */ /****************************************************/ // ピンの定義 #define SW_BALL 2 // D2:チルトボールスイッチ /*********/ /* setup */ /*********/ void setup(){ // -------------------------------------------------- // デジタルピンを設定 // -------------------------------------------------- pinMode( LED_BUILTIN, OUTPUT ); // ボード上のLED( D13 ) pinMode( SW_BALL, INPUT ); // -------------------------------------------------- // チルトボールスイッチを初期化( OFF ) // -------------------------------------------------- digitalWrite( SW_BALL, HIGH ); } /********/ /* loop */ /********/ void loop(){ // -------------------------------------------------- // チルトボールスイッチ : OFF ( HIGH ) // -------------------------------------------------- if(digitalRead(SW_BALL) == HIGH){ digitalWrite(LED_BUILTIN,LOW); // LEDを消灯 // -------------------------------------------------- // チルトボールスイッチ : ON ( LOW ) // -------------------------------------------------- } else { digitalWrite(LED_BUILTIN,HIGH); // LEDを点灯 } }
/*****************************************/ /* 【 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 ); }