LCDモジュールを使ったレベルメータの製作(4)

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ
2017年01月23日 Arduino IDE 1.6.0以降でも使えるスケッチに差し替え。

8.専用基板版レベルメータのハードウェアについて

この連載の2ページ目で作ったユニバーサル基板のレベルメータを元に、両面基板を起こしました。

写真19、専用基板版レベルメータ
↑ 画像をクリックすると拡大
写真19、専用基板版レベルメータ
写真20、LCDを外したところ
↑ 画像をクリックすると拡大
写真20、LCDを外したところ

回路図を次に示します。

図8、専用基板版レベルメータの回路図
↑ 画像をクリックするとPDFファイルで表示
図8、専用基板版レベルメータの回路図

ユニバーサル基板に組んだときの回路図と基本的には同じ回路です。使っている部品もほぼ同じなので、部品表は省略します。ただ、回路を変更した点が3箇所あります。

1つ目の変更点は、感度調整のヘッダを設けた点です。入力の信号のレベルが、利用方法や、利用者の好みの音量などで変わってくるため、CN6に感度調整用のショートソケットを差し込むヘッダを設けました。ここにショートソケットを差してから基板に電源を入れると、感度が12dB上がるようにしました。

写真21、低感度設定の場合の写真
↑ 画像をクリックすると拡大
写真21、低感度設定の場合の写真
写真22、高感度設定の場合の写真
↑ 画像をクリックすると拡大
写真22、高感度設定の場合の写真

2つ目の変更点は、電源の入力部分に保護回路を付けたことです。Q1は逆電圧保護回路として働きます。センタープラスの5VのACアダプタで動作させることを前提に設計していますが、誤ってセンターマイナスのACアダプタを接続して、逆電圧をかけた場合は、回路に電源が供給されません。また、CN3にショートソケットを差して、ACアダプタ、USBシリアルアダプタ、外部接続端子(CN5、後述)のいずれから電源を供給するか選択するようにしたことで、複数の電源を同時接続できないようにしました。

3つ目は、外部接続端子(CN5)を付けた事です。これは、自作アンプなどに組み込むことを想定して、ステレオミニジャックとACアダプタからではなく、ピンヘッダから信号と電源を取れるようにと考えての事です。

写真23、外部接続端子
↑ 画像をクリックすると拡大
写真23、外部接続端子

基板サイズを小さくするため、抵抗は全て1/8Wサイズにしました。基板のサイズは、100mm×50mmになりました。

広告

9.専用基板版レベルメータのソフトウェアについて

今回作った基板用のスケッチは下のリンクからダウンロードできます。

S12232ZA用レベルメータ(専用基板版、ネギ振りモードあり)用スケッチ S12232ZA_LEVEL_METER7.zip (25kB)

2017年1月23日追記:以前公開していたスケッチは、Arduino IDE 1.0.Xでしかコンパイルできませんでした。Arduino IDE 1.6.0以降をお使いの方は、お手数ですが、スケッチをダウンロードしなおしてください。また、このスケッチを利用するには、MGLCDライブラリVer. 0.40以降が必要です。

スケッチを使うには、まずVer.0.40以上のMGLCDライブラリと、Timer1ライブラリをインストールしてください。インストールの方法は、ブレッドボード版レベルメータのソフトウェアについてをご覧ください。

上のリンクでダウンロードしたZIPファイルを解凍すると、S12232ZA_LEVEL_METER7というフォルダができます。その中のS12232ZA_LEVEL_METER7.inoというスケッチをArduino IDEでコンパイルし、レベルメータ基板のマイコンに書き込みます。

書き込み時には、CN3のSERと書いてある列に、ショートソケットを差し込み、電源の供給をUSBシリアル変換器から受けるモードにしておきます。

写真24、CN3をSERモードに設定
↑ 画像をクリックすると拡大
写真24、CN3をSERモードに設定

その後、CN2にUSBシリアル変換器を差し込み、USBケーブルでパソコンと接続します。

写真25、USBシリアル変換器の接続
↑ 画像をクリックすると拡大
写真25、USBシリアル変換器の接続

それから、Arduino IDEのツール→マイコンボード→Arduino Unoメニューを選択し、シリアルポートの設定を自分の環境に合わせた上で、スケッチを書き込みます。

図9、Arduino Unoを選択する
図9、Arduino Unoを選択する
図10、マイコンボードに書き込む
図10、マイコンボードに書き込む

その後、ACアダプタで利用するなら、CN1のACと書いてある列にショートソケットを差し込み、DCジャックにACアダプタを接続してください。内径2.1mmのプラグの付いた、5V、センタープラスのACアダプタが適合します。スイッチング型ACアダプタか、安定化ACアダプタをお使いください。電圧を安定化していないACアダプタを使うと、回路に過電圧がかかり、故障の原因になります。またArduinoに使うACアダプタは、7V以上のACアダプタなので、使えません

写真26、ACアダプタを接続する
↑ 画像をクリックすると拡大
写真26、ACアダプタを接続する

最初の起動時に一度だけ、キャリブレーション操作(実装した抵抗の誤差を補正して正しい波形を表示できるようにする操作)が必要です。

次の写真のオープニングメッセージを描画している最中に、SW1を押して、そのまま約10秒ほど押し続けると、キャリブレーションが始まります。なお、キャリブレーション操作をする際は、ステレオミニジャックに何も繋がないでください

写真27、キャリブレーションの開始法
↑ 画像をクリックすると拡大
写真27、キャリブレーションの開始法

キャリブレーションが始まると、"Measureing offset..."という表示が出ます。さらに、キャリブレーションが終わると、その結果の2つの数字(下の写真ではL:512 R:511)が表示されます。これらの数字は、抵抗値のばらつきの程度を表わしており、おおよそ512付近の値になるはずです。(3%以上の誤差が出るなら、抵抗の精度が悪かったり、回路が正しく組み立てられていないなど、何らかの異常があります)

写真28、Measureing offset...とキャリブレーション結果の表示
↑ 画像をクリックすると拡大
写真28、Measureing offset...とキャリブレーション結果の表示

なお、電源を入れ直してオープニングメッセージを表示している間にSW1を長押しすれば、何度でもキャリブレーション操作をやり直すことができます。

キャリブレーションが終わってしばらくすると、レベルメータの表示になりますので、ステレオミニジャックに音楽の信号を入力してください。

レベルメータの表示中にSW1を押すと、レベルメータの種類が変わります。これまでの4種類のレベルメータに加えて、電圧を文字で表示するモードも設けました。

写真29、波形表示付きレベルメータ
↑ 画像をクリックすると拡大
写真29、波形表示付きレベルメータ
写真30、バーグラフタイプのレベルメータ
↑ 画像をクリックすると拡大
写真30、バーグラフタイプのレベルメータ
写真31、針が振れるタイプのレベルメータ
↑ 画像をクリックすると拡大
写真31、針が振れるタイプのレベルメータ
写真32、はちゅねみくがネギを振るタイプのレベルメータ
↑ 画像をクリックすると拡大
写真32、はちゅねみくがネギを振るタイプのレベルメータ
写真33、交流電圧計モード
↑ 画像をクリックすると拡大
写真33、交流電圧計モード

交流電圧計モードにすると、電圧をピーク・ピーク値実効値で表示します。一定期間、波形を観察して、その最大電圧と最小電圧の差からピーク・ピーク値を求め、されにその値を22で割ることで実効値を求めています。測定原理上、正弦波を入力しないと、正しい実効値が測れません。最大計測電圧は5Vp-p(1.77Vrms)です。

A/D変換の基準電圧を5Vの電源としているので、正確な5Vの電源を使わないと、測定結果に誤差が生じます。そのため、測定値は参考程度にご利用ください。もし正確な5Vの電源を与えたら、実用レベルの精度が出ると思います。

下の写真は400Hzの正弦波をパソコンのサウンドカードで発生し、それをレベルメータ基板と、デジタルマルチメータで同時に計測した際の写真です。

写真34、テスタとレベルメータの電圧測定結果の比較
↑ 画像をクリックすると拡大
写真34、テスタとレベルメータの電圧測定結果の比較

この写真を見ると分かるように、レベルメータ基板で測った実効値が0.751Vrmsと、デジタルマルチメータで測った実効値(0.769Vrms)よりも2.3%だけ低い値になっています。この時、ACアダプタの電圧が5.18Vと、規定の5Vよりも3.6%高かったため、その分計値を低く測ってしまっているはずです。レベルメータ基板での計測値(0.751Vrms)を3.6%大きくすると0.778Vとなります。ACアダプタの電圧が5Vちょうどなら、測定値も0.778V程度になると思います。この時のデジタルマルチメータの測定値とのズレは1.2%と、実用になる高精度が出ているのがわかります。

レベルメータ基板で測った交流電圧を、シリアル経由でパソコンに送るスケッチを作れば、2チャンネルの交流電圧のデータロガーができます。また、回路に少し変更を加えれば、直流電圧のデータロガーも作れます。いつか時間があれば作ってみたいと思います。

以下、2014/08/17追記:

この基板の完成品をMaker Faire Tokyo 2013NT京都2014NT金沢2014において頒布しました。LCDレベルメータサポートページもご覧ください。

また、インターネットで購入できるようにもしました。

LCDレベルメータ 商品名 LCDレベルメータ
税抜き小売価格 3500円
販売店 スイッチサイエンス
サポートページ

インターネット販売においては、版権の都合で、ミクがネギを振るモードを付けられませんでした。以下のスケッチを書き込んだ上で販売します。

S12232ZA用レベルメータ(専用基板版、ネギ振りモードなし)用スケッチ S12232ZA_LEVEL_METER8.zip (14kB)

2017年1月23日追記:以前公開していたスケッチは、Arduino IDE 1.0.Xでしかコンパイルできませんでした。Arduino IDE 1.6.0以降をお使いの方は、お手数ですが、スケッチをダウンロードしなおしてください。また、このスケッチを利用するには、MGLCDライブラリVer. 0.40以降が必要です。

次のページでは、ネギ振りモードのアニメーションを、オリジナルの絵柄に書き換える方法について説明します。

目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ

このページで使われている用語の解説

関連ページ

関連製品

LCDレベルメータ 商品名 LCDレベルメータ
税抜き小売価格 3500円
販売店 スイッチサイエンス
サポートページ
S12232ZA 商品名 S12232ZA
税抜き小売価格 400円
販売店 スイッチサイエンス
サポートページ
122X32モノクログラフィックLCDシールド 商品名 122X32モノクログラフィックLCDシールド
税抜き小売価格 3333円
販売店 スイッチサイエンス
サポートページ
Arduino Uno用ブートローダスケッチライタシールドキット 商品名 Arduino Uno用ブートローダスケッチライタシールドキット
税抜き小売価格 1440円
販売店 スイッチサイエンス
サポートページ
Arduino用ブートローダ/スケッチライタキット 商品名 Arduino用ブートローダ/スケッチライタキット
税抜き小売価格 3000円
販売店 スイッチサイエンス
サポートページ
Arduino 電子工作
このサイトの記事が本になりました。
書名:Arduino 電子工作
ISBN:978-4-7775-1941-5
工学社の書籍の内容の紹介ページ
本のカバーの写真か書名をクリックすると、Amazonの書籍購入ページに移動します。