2017年01月23日 | Arduino IDE 1.6.0以降でも使えるスケッチに差し替え。 |
自作のグラフィックLCDシールドを使って、レベルメータを作ってみました。シールドにLCDやタクトスイッチが既に載っており、マイコンのA/D入力端子にオーディオ信号を入力する部分だけ作ればいいので、工作がとても楽です。
商品名 | 122X32モノクログラフィックLCDシールド | |
税抜き小売価格 | 3333円 | |
販売店 | スイッチサイエンス | |
サポートページ | 122X32モノクログラフィックLCDシールドサポートページ |
回路図を次に示します。
ブレッドボード版のレベルメータでは、Arduino UnoのA4端子にオーディオ信号のLチャンネルを、A5端子にRチャンネルを入力していたのですが、今回は、工作の都合で、A0端子にLチャンネルを、A1端子にRチャンネルを入力する仕様にしました。
ユニバーサル基板に上記回路を組んだ写真を次に示します。
Arduino UnoにグラフィックLCDシールドを装着し、さらに次の写真のように基板を装着すれば、レベルメータ回路の完成です。
スケッチの内容は、ユニバーサル基板版レベルメータとほぼ一緒なのですが、グラフィックLCDシールドを使って表示を行うので、ハードウェアシリアル経由で表示を行う必要があります。また、表示モードの切り替えに、シールド上のSW1を使いますので、スイッチの状態の読み込みは、digitalRead関数ではなく、MGLCDライブラリのReadButton関数を使う必要があります。
グラフィックLCDシールド版のスケッチは、以下のリンクをクリックしてダウンロードしてください。
2017年1月23日追記:以前公開していたスケッチは、Arduino IDE 1.0.Xでしかコンパイルできませんでした。Arduino IDE 1.6.0以降をお使いの方は、お手数ですが、スケッチをダウンロードしなおしてください。また、このスケッチを利用するには、MGLCDライブラリVer. 0.40以降が必要です。
ダウンロードしたZIPファイルを解凍すると、S12232ZA_LEVEL_METER6というフォルダができます。その中のS12232ZA_LEVEL_METER6.inoというスケッチをArduino Unoに書き込んでください。この時に、グラフィックLCDシールドのSW5はEXT側に切り替えておきます。
スケッチの書き込みが終わったら、SW5をINT側に切り替えると、レベルメータが起動します。使い方は、ユニバーサル基板版のレベルメータと同じです。ステレオミニジャックに、携帯音楽プレーヤーなどのヘッドホン出力から取った信号を入力してください。表示モードの切り替えは、グラフィックLCDシールドのSW1を押して行います。
なお、波形表示のあるレベルメータと、ミクのレベルメータでは、感度の調整が行えます。
波形表示のあるレベルメータの処理は、関数LevelMeter1で行っています。この関数の中に
const int divisor = 8;
と、int型の定数divisorを宣言している行があります。レベルメータの感度が低すぎて振れが悪い時は、divisorの数を小さくしてください。逆に感度が高すぎて振り切れる時は、divisorの数を大きくしてください。
ミクのレベルメータの処理は、関数LevelMeter4で行っています。この関数の中に
const int divisor = 4;
と、int型の定数divisorを宣言している行があります。レベルメータの感度が低すぎて振れが悪い時は、divisorの数を小さくしてください。逆に感度が高すぎて振り切れる時は、divisorの数を大きくしてください。
ユニバーサル基板でレベルメータ全体を作った場合に比べると、かなり工作の手間が省けました。ただ、シリアルインタフェース経由で描画コマンドをLCDに送っているので、直接描画する場合より描画処理が遅くなり、画面の更新頻度が減っているようです。そのため、ユニバーサル基板版のレベルメータより、少し動きがぎこちないところがあります。
レベルメータの専用基板を作ったので、次のページではその専用基板の話をします。
商品名 | LCDレベルメータ | |
税抜き小売価格 | 3500円 | |
販売店 | スイッチサイエンス | |
サポートページ | LCDレベルメータサポートページ |
商品名 | S12232ZA | |
税抜き小売価格 | 400円 | |
販売店 | スイッチサイエンス | |
サポートページ | S12232ZAサポートページ |
商品名 | 122X32モノクログラフィックLCDシールド | |
税抜き小売価格 | 3333円 | |
販売店 | スイッチサイエンス | |
サポートページ | 122X32モノクログラフィックLCDシールドサポートページ |
商品名 | Arduino Uno用ブートローダスケッチライタシールドキット | |
税抜き小売価格 | 1440円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino Uno用ブートローダライタシールドキットサポートページ |
商品名 | Arduino用ブートローダ/スケッチライタキット | |
税抜き小売価格 | 3000円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino用ブートローダ/スケッチライタキットサポートページ |