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

このページをスマホなどでご覧になる場合は、画面を横長にする方が読みやすくなります。
目次へ  前のページへ (1) (2) (3) (4) (5) 次のページへ
2016年06月13日 aitendoでS12232ZAの販売が終了した事に伴い、部品表の備考欄での部品入手先の表記をスイッチサイエンスに変更。
2017年01月23日 Arduino IDE 1.6.0以降でも使えるスケッチに差し替え。

4.ユニバーサル基板版レベルメータのハードウェアについて

ブレッドボードにレベルメータの回路を仮組みして動作が確認できたので、次にユニバーサル基板に回路を組んで、実際にレベルメータとして使用できるようにしました。

ブレッドボードに仮組みした際には、Arduino Unoを部品として使いましたが、そのままでは1枚の基板に収まらないので、Arduino Uno互換のマイコンをユニバーサル基板上に組みました。ただし、スケッチを書き込むためのUSB-シリアル変換回路は、レベルメータとして使用するときには不要なので、外付けとしました。また、5Vを生成する3端子レギュレータも省略し、外部から5Vの電源を与える仕様にしました。

一方で、動作モードを切り替えるためのタクトスイッチを1個と、LEDを1個、それにオーディオ入力端子に過電圧がかかった際にマイコンを保護する保護回路を追加しました。

回路図を次に示します。

図4、ユニバーサル基板版レベルメータの回路図
↑ 画像をクリックするとPDFファイルで表示
図4、ユニバーサル基板版レベルメータの回路図

SW1が、今回追加したタクトスイッチです。またLED1とR1が、今回追加したLEDと、その電流制限抵抗です。

オーディオ入力の過電圧保護回路は、R2、R3、R12、R13、D1、D2、D4、D5で構成されます。マイコンのA/D入力端子は、電源電圧の範囲内(今回の場合0~5V)の電圧を入力しないと、故障の原因になります。レベルメータのオーディオ入力に、普通の携帯オーディオのヘッドホン出力を接続した場合、どんなにボリュームを上げても故障の原因となるような大きな電圧は出てこないはずですが、万一誤ってヘッドホン出力以外に接続するなどして過電圧がかかっても、マイコンが故障しないように、保護回路を入れてあります。保護回路が要らない場合は、R2、R3、R12、R13のある部分はショートし、D1、D2、D4、D5のある部分はオープンにする(単に回路から取り除く)事で、保護回路を取り除けます。ただ、部品を減らしたい特別な理由がない場合は、保護回路を入れておく方がいいでしょう。

CN4のピンソケットには、LCDモジュール(S12232ZA)を接続します。ピンソケットとピンヘッダを使ってLCDモジュールを接続することで、後でLCDモジュールを取り外せるようになり、誤配線があった場合などのメインテナンスを容易にしています。

次に、部品表を示します。

表2、S12232ZAを使ったレベルメータの部品表(その2)
部品番号 数量 品名 型番/仕様 メーカー 備考 参考単価
U1 1 マイコン ATmega328P-PU Atmel Arduino Unoのブートローダーを書き込んだ物を使うこと。ブートローダーの書き込まれていないATmaga328P-PUブートローダライタシールドブートローダ/スケッチライタでブートローダーを書き込んでも良いし、既にブートローダーを書き込んだATmega328P-PUも市販されている。 350円
X1 1 水晶振動子 16MHz   負荷容量が十数~20pF程度の物 100円程度
R1~3, R6, R12, R13 6 カーボン抵抗 1kΩ±5%、1/4W   1/8Wでも可 10円程度
R4, R5, R9, R10 4 金属皮膜抵抗 22kΩ±1%、1/4W   1/8Wでも可 20円程度
R7, R16, R17 3 カーボン抵抗 10kΩ±5%、1/4W   1/8Wでも可 10円程度
R8, R14, R15 3 カーボン抵抗 240Ω±5%、1/4W   1/8Wでも可 10円程度
R11 1 カーボン抵抗 1MΩ±5%、1/4W   1/8Wでも可 10円程度
C1~3, C9, C10 5 アルミ電解コンデンサ 10μF、50V     10円程度
C4, C6, C8 3 積層セラミックコンデンサ 0.1μF、50V     20円程度
C5, C7 2 セラミックコンデンサ 22pF、50V     10円程度
D1~7 7 ダイオード 1SS133 ローム 1S2076でも可 30円程度
CN1 1 ステレオミニジャック AJ-1780   秋月電子で販売 50円
CN2 1 ピンヘッダ L型、6ピン、2.54mmピッチ     10円程度
CN3 1 DCジャック 2DC0005D100   内径2.1mm、外形5.5mm 30円程度
CN4 1 ピンソケット 16ピン、2.54mmピッチ   42ピンのピンソケットを切断して使用 80円程度
SW1 1 タクトスイッチ     これこれなど、使いやすい物 20円程度
VR1 1 半固定抵抗 20kΩ     20円程度
LED1 1 LED     直径3mmの物なら、たいていOK 20円程度
  1 LCDモジュール S12232ZA   スイッチサイエンスで販売 432円
  1 ピンヘッダ 16ピン、2.54mmピッチ   40ピンのピンヘッダを切断して使用 40円程度
S12232ZA 商品名 S12232ZA
税抜き小売価格 400円
販売店 スイッチサイエンス
サポートページ
Arduino Uno用ブートローダスケッチライタシールドキット 商品名 Arduino Uno用ブートローダスケッチライタシールドキット
税抜き小売価格 1440円
販売店 スイッチサイエンス
サポートページ
Arduino用ブートローダ/スケッチライタキット 商品名 Arduino用ブートローダ/スケッチライタキット
税抜き小売価格 3000円
販売店 スイッチサイエンス
サポートページ

LCDモジュールと16ピンのピンヘッダ以外の部品は、ユニバーサル基板すずメッキ線ポリウレタン線を使って半田付けしていきます。DCジャックやステレオミニジャックはユニバーサル基板の穴に挿入できませんが、ピンバイスを使って穴を広げ、挿入しました。この場合、半田で部品を固定できませんが、合成ゴム系接着剤で、部品と基板を貼り付けました。

私は95mm×72mmの片面紙フェノールユニバーサル基板を使いましたが、回路を小さく組む自信がない場合は、もう少し大きいユニバーサル基板を使う方が無難でしょう。穴あけ加工などをする場合は、硬くて加工のしにくいガラスエポキシ基板は避けるほうが賢明です。

半田付けの完成した基板の写真を次に示します。

写真9、基板の表面
↑ 画像をクリックすると拡大
写真9、基板の表面
写真10、基板の裏面
↑ 画像をクリックすると拡大
写真10、基板の裏面

マイコン(ATmega328P-PU)は、直接基板に半田付けしてもいいのですが、プログラム(スケッチ)の書き込みに失敗した時の事を考えて、ICソケットを使って基板に固定する方が無難です。(通常は、スケッチは何回でも書き直せるが、条件によっては書き直しが利かなくなる事が稀にある)

LCDモジュール(S12232ZA)は、16ピンのピンヘッダを半田付けし、CN4に差し込みます。ピンヘッダを半田付けする際、S12232ZAの1~16番ピンに半田付けし、17~18番ピンは空きピンにしてください。

写真11、空きピンの位置
↑ 画像をクリックすると拡大
写真11、空きピンの位置

M2の11mm両メスネジスペーサを2個使ってLCDモジュールを基板に固定しましたが、これはなかなか手に入りにくい部品です。少し不安定になりますが、なくても使えない事はありません。

下の写真左側の金色の部品が、M2の11mm両メスネジスペーサです。このスペーサは、中国の業者から個人輸入したものです。このスペーサを手に入れるまでは、LCDモジュールの固定には写真右側の白いM3用11mm貫通スペーサに、M2のネジを通して使っていました。

写真12、11mmのスペーサ
↑ 画像をクリックすると拡大
写真12、11mmのスペーサ

基板にLCDモジュールを固定して組みあがった状態の写真を、次に示します。

写真13、基板にLCDを装着した写真
↑ 画像をクリックすると拡大
写真13、基板にLCDを装着した写真

回路が組みあがったら、まずLEDの制御ができるか確認してみます。LEDを点滅させるスケッチを書き込んでみて、正常に点滅したら、少なくともマイコンは正常に動いています。(俗に言うLチカ)

LEDはArduino Uno互換機の13番ポートについているので、Arduino IDEについてくるBlinkというサンプルスケッチで点滅できます。下の画面のように、Blinkを呼び出します。

図5、Blinkスケッチを開く
図5、Blinkスケッチを開く

次に、FTDI Basic Breakoutなどの、USB-シリアル変換基板を介して、レベルメータ基板をパソコンのUSB端子に接続します。FTDI Basic Breakoutには、I/O電圧が5Vの物と3.3Vの物がありますが、5Vの物が必要です。また、USB-シリアル変換基板を使っている時は、レベルメータ基板のDCジャックには、ACアダプタを付けないでください。

Arduino IDEで、マイコンボードをArduino Uno、シリアルポートをUSB-シリアル変換基板に対応したポート番号に設定した上でBlinkスケッチを書き込むと、レベルメータ基板のLEDが点滅を始めるはずです。

図6、Blinkスケッチを書き込む
図6、Blinkスケッチを書き込む
写真14、LEDが点滅を始める
写真14、LEDが点滅を始める

もしうまくLEDが点滅しない場合は、マイコンを動作させる回路の配線(電源線、クロック信号の配線など)が正しく行われていない可能性があります。

広告

5.ユニバーサル基板版レベルメータのソフトウェアについて

前のページで紹介したブレッドボード版レベルメータのスケッチが、ユニバーサル基板版でもそのまま動作するのですが、今回作った基板にはタクトスイッチを付けたので、これを使って、4種類のレベルメータを切り替えられるようにしました。下記リンクから、スケッチがダウンロードできます。

S12232ZA用レベルメータ(ユニバーサル基板版)スケッチ S12232ZA_LEVEL_METER5.zip (24kB)

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

ダウンロードしたZIPファイルを解凍すると、S12232ZA_LEVEL_METER5というフォルダができます。その中のS12232ZA_LEVEL_METER5.inoというスケッチを、先ほどのBlinkと同じ要領でレベルメータ基板に書き込んでください。

USB-シリアル基板を抜いてからDCジャックにACアダプタを接続してください。内径2.1mmのプラグの付いた、5V、センタープラスのACアダプタが適合します。スイッチング型ACアダプタか、安定化ACアダプタをお使いください。電圧を安定化していないACアダプタを使うと、回路に過電圧がかかり、故障の原因になります。またArduinoに使うACアダプタは、7V以上のACアダプタなので、使えません

5VのACアダプタがない方は、USB-シリアル変換基板から5Vを供給しても、とりあえず使えます。

レベルメータが起動して、ステレオミニジャックに音楽プレーヤからの信号を入力すると、下記の動画のようにレベルメータが表示されます。タクトスイッチを押すと、レベルメータの種類が切り替わります。なお、最後に使ったレベルメータの種類はEEPROMに保存されるため、次回起動時には、最後に使った種類のレベルメータが表示されます。

なお、波形表示のあるレベルメータと、ミクのレベルメータでは、感度の調整が行えます。

波形表示のあるレベルメータの処理は、関数LevelMeter1で行っています。この関数の中に

const int divisor = 8;

と、int型の定数divisorを宣言している行があります。レベルメータの感度が低すぎて振れが悪い時は、divisorの数を小さくしてください。逆に感度が高すぎて振り切れる時は、divisorの数を大きくしてください。

ミクのレベルメータの処理は、関数LevelMeter4で行っています。この関数の中に

const int divisor = 4;

と、int型の定数divisorを宣言している行があります。レベルメータの感度が低すぎて振れが悪い時は、divisorの数を小さくしてください。逆に感度が高すぎて振り切れる時は、divisorの数を大きくしてください。

次のページでは、グラフィックLCDシールドを使ったレベルメータを作ります。

目次へ  前のページへ (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の書籍購入ページに移動します。