音に従い光るLED--ADコンバーター機能を使ってみる
2004年6月12日
音声出力を「見える」ようにする
イヤホン端子から出力される音の信号の大きさに応じて、LEDを点灯させるおもちゃを作ってみました。
音が出ていることを目で確認できます。
アナログの電気信号を、光の強さに変換するだけなので、必ずしもマイコンを使う必要はないのですが、ADコンバータを内蔵するPICマイコンを使って作ってみました。
マイコンで信号を処理するので、プログラムで動作をカスタマイズできます。感度の調整を、プッシュスイッチで簡単にできるようにしてみました。
「音に従い光るLED」の概要
イヤホン端子に取り付けると、ある程度以上の音が出ているときに、LEDが点灯します。感度を押しボタンで調整できます。マイコンには、PIC12F675を使いました。
安全上の注意点
- ヒューズをつけていませんので、うっかり回路をショートさせてしまうと、発熱して発火する場合があります。充電式電池は、ショートした場合の発熱が特に激しいので、使わないほうがよいでしょう。
- 回路の構成上、イヤホン端子から-0.6Vを下回る電圧(例えば-0.7Vなど)を受けると、マイコンが壊れる可能性があり、発熱や発火の原因となります。出力レベルが大きい機器には、つながないほうがよいでしょう。
- これ以外にも、マイコンの誤動作や、他の理由により危ないことになる可能性があります。電子工作で作ったおもちゃは、いつ壊れても不思議ではないと考えて、使うようにしましょう。
この装置は、こんなふうに使います。
- オーディオ機器のイヤホン端子と、この装置のイヤホン端子とをケーブルでつないで使います。
- 入力される音量に応じて、LEDが赤く光ります。
- 青いボタンと黄色いボタンは、感度調節用のボタンで、青は「下げる」、黄色は「上げる」として使います。感度は8段階で調節可能です。
- 感度が最低の状態から、さらに青いボタンを押すと、スリープモードになり、消費電流をほとんど0に抑えられます。スリープモードからは、黄色いボタンで抜けられます。
- 赤いボタンはリセットボタンで、押すと感度最大の状態で起動します。スリープ中でも、押せば機能します。
- 感度を調整すると、LEDが0.2秒ほど点滅します。ただし、感度が上限のときに黄色いボタンを押したり、スリープ状態に青いボタンを押したりしても、状態を変更できないので、光りません。
- 電源には、単4形アルカリ乾電池(LR03)を2本使います。消費電流は、測ってみたところ、光っているときで6mAくらい。消えているときで0.3mAくらい。スリープ状態で0.00mAくらいでした。
こだわったポイントは、次の点です。
- 8ピンのPICマイコン「PIC12F675」を採用しました。小型で安価ですが、ADコンバーターを内蔵していたり、SLEEP機能で消費電力を下げられたり、発振子がなくても内蔵クロックで動作したりと、たいへん便利な一品です。
- 感度調整機能は、ソフトウエアで実装しました。可変抵抗がいらないので、扱いやすいです。ADコンバーターは、アナログ量を幅のある数値としてデジタル化するので、ソフトウエアの側でLEDを光らせるしきい値を変えられるのです。
- 単純明快な回路となるよう、部品の数は少なめにしました。電源スイッチも、マイコンのSLEEP機能で代用することにして、省略してあります。ずいぶん、小さくまとまりました。
回路図
こちらが、回路図です。部品代は、600円くらいでした。ちなみに、50円もする高級LED(すごくまぶしい)を使っています。
プログラム
そして、プログラムリストはこちらです。
マイクロチップ社の「MPLAB 6」のアセンブラで使えると思います。
プログラムは、こんな部分からなっています。
- I/Oピンなどの設定を決める、初期化を行う。
- ボタンが押されたかを判断して、それに応じて感度の変数を更新する。
- ADコンバーターを使って音量を読み取る。
- 現在の感度設定をふまえて、LEDをつけたり消したりする。
PIC12F675が内蔵するADコンバーターの機能を使っています。変換中はSLEEPしてノイズを防ぐ、とか、けっこう頭が痛くなる部分もありました。
たったの8ピンで、150円しかしなかったマイコンですが、プログラムしだいで、まだまだ楽しめそうな一品です。
やってみましょう
- 電子工作は一般的に、やけどやけがをしやすい遊びです。行う場合は、ご自身の責任において、安全に気をつけましょう。
- LEDをたくさん使って、音量に応じて光る個数が変わるようにすると、レベルメーターみたいになって楽しそうです。足の多いマイコンを使った方がいいかも。
ちなみに
イヤホンジャックには、いくつかの端子があります。イヤホンをつけたときに、「Common」と「左(L)」が回路と接続されるようにすると、モノラルのケーブルでもふつうに使えるようになります。
私は、うっかり「Common」と「右(R)」の端子を回路につないでしまったので、モノラルのケーブルでは使えないという怪現象が起こってしまいました。この程度の失敗であれば、回路をつなぎかえれば、すぐに直ります。
杉原俊雄のホームページ ->
PICマイコンを楽しむ ->
音に従い光るLED--ADコンバーター機能を使ってみる
製作・著作:杉原俊雄(すぎはら としお)
(c)2004 Sugihara Toshio. All rights reserved.