● 実験テーマ129
「7SEG液晶の応用例としてLCメータを製作してみる」
(今回は後閑氏のHP記事を参考にしてEagleによるP板製作中心で進めようと思う。回路とソフトは、そのまま拝借する予定。)
■ 2022.1.2
<前書き>
・実験テーマ128をアップして以来、ネタ切れということもあるのだが約1年間次期テーマが決まらず、電子工作
に関しては記事アップが止まっていました。
一応テーマを表題の7SEG液晶の応用例として、2021年1月19日より進めてはいたのですが、これに使っている
SEG液晶の「VIM-503」の入手に問題があり、今迄作業を止めていました。
この液晶、国内のパーツ屋では入手出来ず、海外からの取寄せになるため本体価格は800円位ですが、
送料が2000円ほど掛かってしまうのと納期が掛かりそうなので出費をしぶっていました。
(この時期、車検と家賃更新が重なっていたこともあるが・・あと仕事が無いのも痛い)
1年経ってDigKeyと提携している「マルツパーツ」が有ることを知り、ここなら送料・納期もそんなに掛からなさそうなのと
少し出費関係も落着てきたので、ここで手配することにして製作を進めることにしました。
----------<ここから、この実験を始めた去年1月からの記事になります。>--------------------------------------------------------
■ 2021.1.19
・セグメント液晶を使った応用例として「LCメータ」を作ってみる。
今回は、後閑氏のHP記事(PIC16F1ファミリを活用した製作例)の4項目の「LCメータ」を参考にしてEagleによるP板製作中心で進めようと思う。
回路とソフトは、そのまま拝借する予定。
超久々に、Eagle CADをいじるので、操作方法を思い出しながら脳トレのつもりでやってみる。
■ 2021.1.20
・まずは部品リストを作成して製作予算を把握しておく。
そして、セグメント液晶のシンボル及びデバイス登録作業をしてみる。
セグメント液晶のシンボルは出来るだけ現物をイメージ出来るようなものにした。
デバイス名:VIM-503.dev
・シンボル:VIM-503.sym
Eagleライブラリの、display-lcd.lbr下の、LS023.symをコピーし編集改造して使用した。
・パッケージ:LCD_30PIN_2.54MM_PITCH.pac
新規作成した。
■ 2021.1.24
・その他の新規登録パーツにつて登録作業を行う。
@ リレー:Y14H-1C-5DS.dev
・シンボル
Eagleライブラリの、relay.lib下の、G5V1.devの中で構成されているコイルと接点が分離されているタイプを
そのまま自分のライブラリにコピー。
ただ.pacは変更するので.devファイルを作り直す必要がある。
その際、分離されている2つのパーツを1つとして登録する必要がある。
→ Sym名:RELAY_COILと、RELAY_SPDT_COM2の2つを作成し、dev作成時、パーツを読み出した後、それぞれの属性を
Add=Must, Add=Alwaysにする。
あとピン番だが、データシートにはピン番が明記されていなかったので、自分なりに付けた。(ncピン含め計10pinとして付けた。)
リレーカバー上部の角に切り欠きが有ったが、データシートによると、1pinマークではなく、冷却用の通気孔らしい。 220106
追記
・パッケージ:Y14H-1C-5DS.pac
Eagleライブラリの、relay.lib下の、G5V1.pacを編集して使用。
ランドを長丸から丸に変更・各寸法を変更
■ 2021.1.26
A 2回路・2トランスファ接点タイプのトグルSW:2MD1-T2-B4-M2-Q-N.dev
・シンボル
Eagleライブラリの、switch.lib下の、320-938.devの中で構成されているシンボルを、そのまま自分のライブラリにコピー。
ただ.シンボル名が現物をイメージし難い(KS-U-,sym
と、 U2.sym)ので、
TOGGLE_SW_CIR1と、TOGGLE_SW_CIR2に変更した。
・パッケージ:2MD1.pac
これは新規作成した。
B 2P端子台:TB111-2-2-U-1-1.dev
・シンボル:2P_TB_CON.sym 新規作成
・パッケージ:TB111-2.pac 新規作成
■ 2021.1.30
・回路図入力〜 ERCチェックまで完了。
■ 2021.
・レイアウト設計に入る。
まずは基板外形寸法だが、とりあえずは、Eagle無償版で出来る、100
x 80mmにしようと思ったが、横長(X=100, Y=80)だと
液晶の横幅が短いので配置上バランスが悪く、縦長(X=80,
Y=100)で進めたが、いざ部品を置いてみると、中央付近は置ける
が、上方面に置くとエラー(無償版では、それは出来ない旨のエラー)が出て置けない。
80 x 80にしてみたが、これだとちょっとキツクて全配線出来そうにない。
この辺の有益な情報が無いかweb検索してみたが見あたらなかった。
あくまで私の考えだが、100 x 80と言っているのは、面積では無く、あくまで、X=100,
Y=80がリミットのようだ。
しょうがないので、ちょっと配置しずらいが(90度回転させてから置くイメージになる)デフォルト表示のまま
X=100, Y=80で感触を見ることにした。
結局は、これで全て置けたが、Y=80では無駄に広い感じがしたので、Y=75に修正した。(決定基板寸法:X=100,
Y=75)
もう1点気になったのは、それぞれのパーツのVALUEも横方向にしか置けなくなる。(素直に読める方向にしたいが出来ない)
縦方向だと、ミラーが逆になって素直に読めなくなる。Y方向のミラーは出来ないようだ。
今回はこのまま横方向に置く事で妥協し進めることにした。
基板を横置きにすれば素直に読めるのでOKとする。
今日は、全部品の暫定配置まで終了した。
■ 2021.
・ほぼ一通り、Eagle作業は済んだが・・・
ガーバ出力前で、ビアのテンティングもしてない。
その理由は、このページ冒頭の前書きに書いた通りです。
一時作業を止めました。
■ 2022.1.2
・冒頭の前書きの通り、作業を約1年ぶりに再開することにしました。
ビアのテンティングを行い、日付けシルクを、2022-01に変更した後に、ガーバ出力を行いました。
その後、文字太サイズを揃えるために、部品面シルクファイル:GTOファイルを一部、手作業で修正しました。
フリーウエアのガーバビューワ「gerbv」にて確認してみました。よさそうです。
次にFisionPCBサイトにて、P板発注作業を行いました。
枚数は10枚とし運送業者はOCSにしました。
そして、FisionPCBサイトにあるガーバビューワにて確認しました。問題無さそうです。発注作業済
(久々にFisionPCBサイトにあるガーバビューワを開きましたが、ずいぶんと様変わりしてました。
各レイヤの色指定が出来ればよかったのですが、出来ないようなのでデフォルトのまま見てみましたが、ALL表示だと
重なったところが奇妙な色になって、ちょっと見にくいです。今迄のは、実際の基板の色に近くなっててリアルな表示
だったので少し残念に思いました。まあ問題無いのでOKです。)
■ 2022.1.4
・部品手配作業を行った。
まずは、マルツ(DigKeyと提携)分より。
VIM-503だが、結局は、全て込みで、1958円ほどになった。
(本体価格:1243円・送料:550円・決済手数料;165円)
特殊部品の、ポリフェニレンスルフィドフィルムコンデンサ:1000p
2%誤差は、共立エレショップに発注した。
その他の部品は手持ちを除いて秋月に発注した。
■ 2022.1.5
・秋月分のパーツが届く。6日には共立からも届く。
マルツ分のVIM-503は、納期確認中で未だ連絡無し。
・FusionPCBの進捗ステータスは、データの審査が通リ「生産中」になった。
P板上がり待ち。
■ 2022.1.7
・マルツから、VIM-503の「出荷可能日確定」のメールが届いた。
→ '22/1/11(注文日:1/4なので、1Wで出荷。思ったより早い。GOOD)
■ 2022.1.8
・Pay Easyで、VIM-503の代金を振込む。
直ぐにマルツより、VIM-503発送済のメールが届く。
■ 2022.1.9
・夕刻、VIM-503が届いた。予定より、2日早かった。
・フットプリントを確認した。OKのようです。
・P板上がり待ちまで時間があるので、オリジナルソースを、いじれるように自分用のプロジェクト・ソースを作成した。
<後閑氏オリジナルソースを、xc8記述に変更>
→ 私は、MPLAB-X-IDE を常用しており、8bit Mid Renge
の、PIC16F1シリーズのコンパイラとしてはXC8を使ってきた。
一方、後閑氏のオリジナルソースは、Hi-tech-PLCC(インストーラ:HCPIC-pro-9.80)で記述されている。
一見したところ両者殆ど記述上変わりはないのだが、よく見ると Configの書式がやや異なっていることに気が付いた。
XC8は、Hi-tech-PLCCに替わる上位互換のコンパイラでもあるのと、デバッグ時にソースをいじりたいこともあって
XC8記述に変更することにした。
→ プロジェクトを作成し、hexサイズを見ると、後閑氏作成の、hexサイズと同じ、19KB
になったので、これでよさそうだ。
■ 2022.1.10
・FusionPCBの進捗ステータスが、「出荷済み」になった。生産期間が、4日なので予定通り。
→ 2022-01-10 15:15:07ご注文は発送されました。追跡情報が更新され次第またご連絡いたします。(これはSeeedさんの日本語コメント)
2022-01-10 15:15:07
クライアントの電子情報が入力されました。(ここから中国語翻訳・要約)
2022-01-10 17:07:46 商品は送り主から回収されました。
2022-01-10 19:16:35 中国・深圳
OCSサイトに貨物が入荷しました。
今日は、ここまで。
■ 2022.1.12
・動作チェックに備え「PIC16F_LC_METER」の
動作仕様を、ソースと後閑氏HPに書かれている「LCメータの機能仕様表」を
参考に整理してみた。(測定原理も含む)
<PIC16F_LC_METER 動作仕様を整理>
(1) LC測定手順(内部動作)
(1)-1 リセット直後の校正(ゼロ調整実行)→ Mainに入る前にCalibrate();を実行
@ 被測定物は無接続状態でL,C切り替えSWを、[C]側にセット。JP1はCLOSE・OPENどちらでもよい。
・ここでは未だ、リレーは、ONしてないので、測定モードになっている。
・最初にC1= 1000pと、L1= 100uHという元となる発振回路の周波数f1を測定する。
→ f1= 1/2π√L1 x C1 ---- @
= 1/2π√100uH x 1000p
= 503.5kHz ほどになるはず。
A 次にリレーをONする。
・Ccalコンデンサ= 1000pをC1に並列接続して周波数f2を測定する。
→ f2= 1/2π√L1 x (C1+C2) ---- A
= 1/2π√100uH x 2000p
= 336.06kHz ほどになるはず。
・この2つの周波数とCcalの値が既知であれば、以下の式で、C1とL1の値が求めらる。
→ C1= f2^2 x Ccal/f1^2-f2^2 // 元となる発振回路の C1= 1000pの実測定値になる。
L1= Ccal/4π^2 x f1^2 x C1 // 元となる発振回路の L1= 100uHの実測定値になる。
(1)-2 実際の測定
(1)-2-1 Cxの場合
※ JP1はCLOSE
@ Cxを接続し(Cx//C1になる。但しC1は、あらかじめの実測定値)L,C切り替えSWを、[C]側にセット。
・周波数f3を測定する。
→ f3= 1/2π√L1 x (C1+Cx)と@式から、Cxを求めると
Cx= (f1^2-1/f3^2) x C1 になる。
(1)-2-2 Lxの場合
@ Lxを接続し(L1 + Lxになる。但しL1は、あらかじめの実測定値)L,C切り替えSWを、[L]側にセット。
・周波数f4を測定する。
→ f4= 1/2π√(L1 + Lx) x C1と@式から、Lxを求めると
Lx= (f1^2-1/f4^2) x L1 になる。
※ これらの解を得る式の展開は「Let's Try
電子マスカット」さんサイトの「No.32:LCメータ」の記事に
詳しく書かれているので参考になる。
※ 測定中は「CONTINUITY」セグメントをブリンク表示
※ L/C切替SWのレバーがどちらに倒れているかの表示のために、
C切替時は、"-"記号セグメント消去
L切替時は。"-"記号セグメント表示
(2) テストモード
※ JP1はOPEN
@ LCDテスト
・L,C切り替えSWを、[L]側にセットでLCDテストモードに入る。
→ 0000〜 9999まで繰返し表示
奇数の場合他のセグメントをすべて表示
A 周波数テスト
・L,C切り替えSWを、[C]側にセットで周波数テストモードに入る。
→ この時、何も被測定物が接続されていなければ、
元となる発振回路の周波数f1= 503.5kHz付近を表示するはず。(小数点位置は固定表示)
■ 2022.1.13
・進捗確認。
→ 2022-01-11 20:57:02 中国・深圳
OCSサイトより積み替えのために、次の拠点(日本)に入る準備ができました。
2022-01-13 00:57:48
発送情報は仕向国(日本)で事前に申告されています。
2022-01-13 00:57:53
商品は許可を得て次の拠点(日本)に入った。
2022-01-13 01:17:16
商品は乗り換え到着地点(日本・東京)に入った。
2022-01-13 01:20:35
商品は次の積替え拠点(日本・東京)に入った。
2022-01-13 09:09:00 乗り換え地点(柏営業所)到着
2022-01-13 17:44:00
次の積替え地点(関東中継センター)に商品が入荷しました。
■ 2022.1.14
・2022-01-14 15:21:00 足立営業所より商品配送中
2022-01-14 16:32:00 (株)OSC東京オペレーションから依頼を受けた佐川急便によりP板が配達されたが
当方不在(スタジオ練習中)だった為、持ち帰られた。
WEBの再配達依頼で、明日午前中の再配達にしてもらった。
■ 2022.1.15
・2022-01-15 10:00:00 P板到着
・見た目良さそう。
ややシルク薄いが問題無し。
■ 2022.1.17
・部品実装が完了した。
・動作チェック開始
@ LCD、PIC未実装にて電源チェック(対GND間)
@-1.
Vcc⇔
GND間の、ショートチェック→ OK
・006p乾電池をセットして、Vcc=
5Vの確認
→ IC2(TA78L05S)-
Vinピン:1pin=
9.64V
IC2(TA78L05S)-
Vioピン:3pin=
4.92V
(・PIC-Vddピン:20pin及び、PICkitコネクタ-2pinの供給先もOK)
@-2 PIC実装・LCD未実装で、PICkit2にてHEX書込み→ OK
(書込みだけなら、PICkit3でなくても、デバイスファイルを更新すれば、PIC16F1シリーズの
デバイスも問題無く書込めます。
PICkit3だと電源供給能力が弱いので、ターゲットの電源をONしたままでないと
コネクトに失敗するので、電源供給能力の高いPockIT2を好んで書込みに使ってます。)
・ここで、Vcc再確認:PIC-Vddピン:20pin=
4.91V
A LCDを実装しての表示テスト
・LCDは基板直でなく使いまわし出来るように、丸ピンのソケットコネクタ経由の実装としました。
尚、LCD上側のピンには何も接続されてないNCピンなので 、両端2ピンのみ支えの為に
コネクタを実装しました。
・LCD表面には極く薄い保護シートが貼られているので、これを剥がしました。
・LCD表示テストは問題無しOK
B LCDを実装しての周波数テスト
・TESTモードで、トグルSWを、C側にした時の周波数テストはNG
→ 端子台に、何も接続しない場合、元となる発振回路の周波数f1= 503.5kHz付近を表示するはずが、
2kHzの表示になってる??
■ 2022.1.18
<調査開始:220118>
・mainに入る前の、cal関数を実行する前の、リレーoffのところで止めれば、
既に内蔵コンパレータの設定は済んでいるので、fは理論上503.5.kHzになるはずだが、1MHz以上の
不安定な波形になる。なのでlcd表示はオーバーフローし、2kHzを示している。
さらに、cal関数に入って、リレーonのところで止めれば、Ccal=1000pが、C1=1000pにパラ接続
するので、2000pとなって、f2は理論上336.06kHzとなるはずが、ここで約500kHzを示し、
暫くすると、1MHz以上に変わってしまう。
・リレー接点の動きは良さそう。
■ 2022.1.19
・f1は理論上503.5.kHzになるはずだが、1MHz以上の不安定な波形になる??
→ この原因が判明した。
C1=1000pの片側のベタgndへのハンダがイモハンダになっていてパターンから
浮いていた為この現象が起きてた。
Ccal側のハンダ付けはokだったので、このような結果になった。
→ 処置後、CAL動作中の、リレーoff時とon時の、f1と、f2を、中華オシロにて確認してみた。
f1の実測値がやや低目(500.879Hz)だが、波形・周波数共に良いようである。
また、CAL時は端子台に何も接続しないことが前提となるので、その時の周波数テストでの液晶表示値も
500.4kHzと良いようである。
f2の実測値も、358.594kHzと良いようである。
・次に、Cxの測定を確認してみた。
手持ちのコンデンサを出来るだけ多く測定してみたが、下表の結果のように、全般的に、同じ2%誤差のテスターのC測定レンジでの
測定値に比べると測定誤差が大きい。
また、100pは未だ測れるはずが、測定不能だった。(仕様では、1pまで)
■ 2022.1.20
・次に、Lxの測定を確認してみた。
サンプルが少ないが、下表の結果のように、測定精度に疑問が残った。
比較基準の、Lメータの持ち合わせが無いので比較評価が出来ないのが残念。
■ 2022.1.21
・測定精度が悪い件、調査開始
・Lx= 330uH時の、F(ソース上の、f4)を確認してみた。
理論上は、L1= 100uH, Lx= 330uH, C1= 1000pを、次式に代入して計算すると
F= 1/2π√(L1 + Lx) x C1= 242.8kHzになるはずである。
→ 結果は、中華オシロのカウンタで、242.331Hzで、goodである。
その時の波形も問題無し。ならば何が原因??
・その他、オリジナルソースに誤記と思われるところがあったので以下ように修正した。
→ 後閑氏HPの、仕様表によると、コイルインダクタンス測定時の、表示出力は
1999.9 [uH]になっている。
これは、仕様上の測定限界上限が、2mH= 2000uHなので納得である。
ここまでは良いのだが、小数点表示位置に疑問がある。
オリジナルソースによると、DP5もONになっていて1.999.9表示になっておかしい??
誤記と思われるので、DP5はOFFに修正した。
■ 2022.1.26
・測定精度が悪い件、調査続行
・最初、CAL時にソース上で、C1を計算する際に補正してCcal= 1020pとしてた(オリジナルソースに準拠)
のを、980pとかにしてみて高目に出る様にしてみたが、この作業を繰返している内に、
何故か、とんでもなく大きな値:14xx.x.xuHを表示することがあった。
→ どうも、リレーON、OFF後、F測定する前に、リレー接点が安定するまでの待ちを入れているが、
0.1秒では足りないようで、0.5秒にしてみたところ測定表示値が、被測定物の仕様上の誤差範囲にはいったので
これが原因だったようだ。
後閑氏が使用しているリレーと異なる中華製のリレーを使ったので、こうなったのも納得が行く。
以下に安定待ち0.1秒にした時と、0.5秒にした時の結果比較表を示す。
・これはCx測定についても影響があるので確認してみた。
容量が大きくなるほど精度が落ちるようだが、以前より改善されているので妥協した。
対策前、100pは測定不能(0p)だったが、対策後、測定可能(101p)になったのはgood!!
0.1u〜 3p当たりの精度は良くなった。
尚、仕様上の下限は、1pだが、そのデーターは、最初、1pを示すのだが、暫くすると、0pに変動するので表には載せなかった。
・C測定は、テスターのCレンジでも測れるが、L測定が出来る測定器の持ち合わせがなかったので
そこそこの精度でLが測れる物が出来たのは良かったと思う。
液晶を通常の、16キャラクタ・2行の物に替えて、単位共々表示出来たら良いなと思っている。(今回は単位シールを作って貼りました。)
出来れば次回のテーマにしたい。
<回路図>
・こちらからどうぞ→ 「LC_METER」 :Eagle CAD Schematic
<最終ソース>
/// メインソース→ XC8コンパイラに準拠した記述に修正しました。
PIC16F_LC_METER.c
/// セグメントLCDのセグメント定義ファイル→ 後閑氏オリジナルのまま借用させて頂きました。
lcd_def2.h
← 実験テーマ1に戻る TOP PAGEに戻る 実験テーマ130へ →