読者です 読者をやめる 読者になる 読者になる

ドレミの歌に合わせてLEDが光るおもちゃ

 

             ☀☀☀ はじまり ☀☀☀

 

 インターンシップ中の学生二人です。

初めてarduinoを使って簡単なおもちゃを作ってみました。

スイッチを押せば、に合わせて4つのLEDがカラフルに光ります。

 

材料

arduino本体       ・抵抗      ・ジャンプワイヤー

・PC           ・スイッチ    ・圧電ブザー

・ブレッドボード      ・LED

 

過程

 曲の1音1音に合わせて、LEDが順番に光るように設定したので、とても長いスケッチになりました。(笑)

 まずは音と同時にLEDを光らせるところでつまずきました。そこで、音を伸ばす時間(delay)を0にして、音が鳴り終わるまでにLEDを光らせることに成功しました。また、音と音との間隔をLEDを光らせる時間(delay)で調節しながら、メロディーを作ることも難しかったです。ちなみに、void setupの部分でLEDの接続をpinModeで宣言しておくと、LEDの明るさが増すことが分かりました。そして、一番試行錯誤を重ねたのは、最後の”ランランラン”の部分です。同時に全てのLEDを光らすために、音の(delay)とLEDの(delay)を微調整しながら、時間をかけて一番よい具合に仕上げることができたと思います。

 電子回路では、arduino本体のGNDの数が限られているので、ブレッドボードのマイナスを利用して、つなぎました。

 途中で圧電ブザーが壊れるハプニングがあり、買い出しに行きました。(笑)

 

                            電子回路の接続図

はドーナツの

は レモンの

はみんなの

ファはファイトのファ

は青い

はラッパの

あわせよ

さあ歌いましょう

ランランラン

スケッチ

*圧電ブザーを鳴らす場合「tone」関数を使います。

   tone(ピン番号,らす音,音の長さ)

           ↓

   :262  :294  :330  ファ:349  :392

   :440  :494  高い:523  シ♭:466

 

int pin = 13;     // ブザーを接続したピン番号
int state = 0 ;
void setup() {
  pinMode(10,OUTPUT);
  pinMode(8,OUTPUT);
  pinMode(7,OUTPUT);
  pinMode(2,OUTPUT);
  pinMode(3,INPUT);
}


void loop() {
  state = digitalRead(3); //スイッチ
 

  if(state == 0){
     tone(pin,262,200) ;  //
     delay(0) ;         // 音がなっている間待機
     digitalWrite(10,HIGH);
     delay(600);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,294,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(500);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,262,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(400);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,262,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(400);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(600);
     digitalWrite(7,LOW);
     delay(10);
    
     tone(pin,294,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(600);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
    
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,294,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(1200);
     digitalWrite(8,LOW);
     delay(10);
    
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(600);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(500);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(400);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(400);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(600);
     digitalWrite(10,LOW);
     delay(10);

     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(600);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(1200);
     digitalWrite(2,LOW);
     delay(10);

     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(600);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,262,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,294,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);

     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(1200);
     digitalWrite(7,LOW);
     delay(10);

     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(600);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,294,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,494,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(1200);
     digitalWrite(8,LOW);
     delay(10);

     tone(pin,494,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(600);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,494,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,523,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(1200);
     digitalWrite(10,LOW);
     delay(10);

     tone(pin,494,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,466,200) ;  // シ♭
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(400);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(400);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,494,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(400);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(400);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,523,200) ;  //
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(1200);
     digitalWrite(2,LOW);
     delay(10);

     tone(pin,262,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,294,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,330,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,349,200) ;  // ファ
     delay(0) ;
     digitalWrite(2,HIGH);
     delay(200);
     digitalWrite(2,LOW);
     delay(10);
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(200);
     digitalWrite(10,LOW);
     delay(10);
     tone(pin,440,200) ;  //
     delay(0) ;
     digitalWrite(8,HIGH);
     delay(200);
     digitalWrite(8,LOW);
     delay(10);
     tone(pin,494,200) ;  //
     delay(0) ;
     digitalWrite(7,HIGH);
     delay(200);
     digitalWrite(7,LOW);
     delay(10);
     tone(pin,523,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(0);
     digitalWrite(8,HIGH);
     delay(0);
     digitalWrite(7,HIGH);
     delay(0);
     digitalWrite(2,HIGH);
     delay(400);

     digitalWrite(10,LOW);
     delay(0);
     digitalWrite(8,LOW);
     delay(0);
     digitalWrite(7,LOW);
     delay(0);
     digitalWrite(2,LOW);
     delay(70);

    
     tone(pin,392,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(0);
     digitalWrite(8,HIGH);
     delay(0);
     digitalWrite(7,HIGH);
     delay(0);  
     digitalWrite(2,HIGH);
     delay(400);

     digitalWrite(10,LOW);
     delay(0);
     digitalWrite(8,LOW);
     delay(0);
     digitalWrite(7,LOW);
     delay(0);
     digitalWrite(2,LOW);
     delay(70);
    
     tone(pin,523,200) ;  //
     delay(0) ;
     digitalWrite(10,HIGH);
     delay(0); 
     digitalWrite(8,HIGH);
     delay(0);
     digitalWrite(7,HIGH);
     delay(0); 
     digitalWrite(2,HIGH);
     delay(1200);

     digitalWrite(10,LOW);
     delay(0);
     digitalWrite(8,LOW);
     delay(0);
     digitalWrite(7,LOW);
     delay(0);
     digitalWrite(2,LOW);
     delay(70);

    
}
}

 感想

 スイッチを押せば、がスタートする仕組みを作るのに一番苦労しました。そのために、ちょっと回路やスケッチを変えただけで音が鳴らなくなったり、LEDが光らなくなったり(笑)

 でも最後には無事にワンタッチで動くおもちゃが完成しました!◎

 

            動画をyoutubeに掲載しています

 

  

 

               ☆☆☆ おわり ☆☆☆