curious4dev

中国旅行、Arduinoなどを使った電子工作、その他色々。

*

音階に合わせてLEDを光らせてみた。

 

お疲れ様です。高橋です。

主旋律に合わせてLEDを光らせてみる実験を行いました。

今回初めてパソコンの部屋からの録画ではなく、Arduino2号(びんぼうでいいの)に9V電池をDCから供給して持ち運び可能な状態にし、別な部屋で録画してみました。奥さんが、なんかわからない特攻隊のドラマ?を見ていてとても音を鳴らせる状況に無いことと、LEDの光を解りやすく出すには暗い所に行く必要があったからです。色々持ち運べるArduino、便利ですね。

複数のLEDを使うための準備

通常複数のLEDを別々に制御するには、入力側のピンをLED1本につき1本消費し、GNDは共通、というのが一般的かと思いますが、Arduinoが自由に使えるピンの数には限りがあります。ましてやYMZ294やI2C LCD等を一緒に動かしつつとなると、より少なくなってしまいます。

74HC595

そこで74HC595という、シフトレジスタというICを使います。これを使えば、少ないピンで多くのLED等を制御する事が出来ます。下ではLEDを16個挿していますが、ド~シまでの12個しか使っていません。

IMG_5191

 

1つのICは8個のI/Oを制御出来ますが、それを数珠つなぎにする事で、8個ずつ制御出来るLEDが増えていきます。秋月での74HC595のお値段はひとつ40円です。結構人気商品ぽく、しばしば売り切れている時があります。

YMZ294は3和音出せるので、各チャンネル毎にピカピカ光れば面白いかもしれません。色も赤色LED、緑色LED、青色LEDと変えたりして。そのためには74HC595がチャンネル毎に2個ずつ必要になるのでしょうか。

久しぶりにブレッドボード上に部品を組んでみましたが、連なる抵抗を見て、伏見稲荷大社のどこまでも続く鳥居を想起してしまいました。

IMG_5195

今回とても参考になったのが「少ない出力ピンで、大量のLEDを制御する(シフトレジスタ使用)」さんのサイトです。

回路図は上記参考サイトをそのまま利用します。

今回の動画で使ったスケッチはこちらです。gramorning_with_i2clcd_74hc595.zip

playSong()の中で実際の演奏がなされますが、そこでコールするset_chの中で

 if(ch == CH_A && note != 0) {
 int intNote = note % 12;
 int intLED = 15 - intNote;
 digitalWrite(LATCHPIN, LOW);
 MyShiftOut( DATAPIN, CLOCKPIN, 16, 1L << intLED );
 digitalWrite(LATCHPIN, HIGH);
 }

と、チャンネルAで、かつ、完全無音以外だったら、12で割った余りをLEDの0番目~11番目に割り当てて表示しなさいよ、という箇所。これが音階LEDの表現になっています。

以上、よろしくお願い致します。

 - 耳コピArduino, 電子工作

  関連記事

Arduino+EEPROM+YMZ294で曲の抜き差し

お疲れ様です。高橋です。 I2Cの256KBitなEEPROMに曲データを書き込 …

満員電車内でのオナラと検知 #5

お疲れ様です。高橋です。 マイコンと5V給電 先日実験に成功した硫化水素センサー …

Castlevania SotN “Dance of Pales”を耳コピ

お疲れ様です。高橋です。 久々に耳コピ。Castlevania Symphony …

【完成】ArduinoIDE1.6.4+ATTiny13Aで赤外線リモコン

お疲れ様です。高橋です。 苦戦していたArduinoIDE1.6.4を使ったAT …

赤外線リモコンをケースに格納

お疲れ様です。高橋です。 先日作ったATtiny13Aの赤外線リモコンを、ケース …

FM音源YM2203をArduinoで鳴らしたい #2

お疲れ様です。高橋です。 先に結論 FM楽曲及びPSG楽曲の演奏に成功しました。 …

猫×おもちゃ×動画×アプリ

お疲れ様です。高橋です。 金魚水槽 先日フラフラとネットサーフィンしていて目に入 …

FF3のオープニングをArduino+YMZシールドで鳴らしてみた

お疲れ様です。高橋です。 ファイナルファンタジー3のオープニング曲を耳コピし、こ …

bluetoothモジュールHC-06とAndroid

お疲れ様です。高橋です。 先日AliExpressで購入したbluetoothモ …

Arduino電源ON/OFF機

お疲れ様です。高橋です。 Arduinoを使っている時、特に2個とか複数同時に使 …