記事担当:共立プロダクツ
[ハンダ付け不要-マイコン系]

▼各数値の液晶画面への表示
▼反省点(今後の課題)
お楽しみに!
[ハンダ付け不要-マイコン系]
しばらく空いてしまいましたが、簡易型LEDテスター企画のPart3です。
ソフトウェア製作の要点を見ていこうと思います。最後までよろしくお願いいたします。
(Part1はこちら→★【電子工作】M5StickCで作るLEDテスター★1)
(Part1はこちら→★【電子工作】M5StickCで作るLEDテスター★1)
▼メインの計測部分おさらい
今回のLEDテスターのコア部分となる計測処理の流れは既に説明していますが、もう一度おさらい。
・アナログ入力ピンG26を読み取って得られた0~4095の値から、「ESP32の-6dBアッテネーター」と「回路として追加した分圧抵抗」を通ることによって下がる前の、元のVCTLの電圧になおす。
そのVCTLを定電流回路の抵抗値Rで割って、LEDの順電流を求める。
・アナログ入力ピンG36も同様にして、元のVK(LEDのカソードの部分)の電圧を求める。
その電源電圧(約5V)からVKを引いた値を、LEDの順電圧とする。
・計測したLED順電流の現在値と設定値を比較して、VCTLの電圧を調整するためのPWM出力の値を更新する。
書き起こすだけでは実感しにくいですが、それなりの量の四則演算(+-×÷)を組み合わせることになります。
▼動作確認
測定と制御に関するコア部分のコーディングが終わったら、液晶表示を作り込む前にまず、シリアルポートへ変数を出力してテストを行います。
【確認事項】
・アナログから読み取った値が実際の電圧に変換され、LEDの順電流や順電圧といった値に換算されているか。
・LED順電流の実際の現在値と設定値を比較して、定電圧回路をコントロールするためのPWM出力の値に正しくフィードバックできているか。
・ボタンを押すとLED順電流の設定値を切り替えると、実際の電流値もそれに追従して変化するか。

計算過程の要所で変数の値をプリントして、基本となる機能をフルチェックしていきます。
▼各数値の液晶画面への表示
計算で得られた数値をM5StickCの液晶に表示することで、テスターとしての機能が完成します。
M5StickCの標準の液晶描画ライブラリには文字列を直接描画できる関数も揃っているので、それを使えば簡単なのですがここは見た目にこだわって全てのレイアウトを画像として用意してみました。

「mA」とか「V」などの定型文や、数値を表示するための「0」~「9」などをビットマップ画像として用意しました。

「mA」とか「V」などの定型文や、数値を表示するための「0」~「9」などをビットマップ画像として用意しました。
M5StickCの液晶表示サイズである160×80ドット(※旧商品の仕様です。現行のPLUSは240×135ドット)にあわせて、全体の画面レイアウトを決めます。

・上段のグレーの帯の中に、LED電流の設定値:Target IF □□.□□mA

・上段のグレーの帯の中に、LED電流の設定値:Target IF □□.□□mA
・オレンジ色でLED電流の現在値:IF □□.□□mA
・青色でLEDの順電圧:VF □□.□□V
それぞれの変数部分は、□の場所を0~9の数字または空白に置き換えて数値表示を行うことになります。
例えば、電流値「12.34」[mA]を表す際に、内部の計算結果が変数に「12340」という形で保持しているとします。
・(10mAの位)…12340÷10000=「1」
・(1mAの位)…(12340÷1000=12)を10で割った余り=「2」
・(0.1mAの位)…(12340÷100=123)を10で割った余り=「3」
・(0.01mAの位)…(12340÷10=1234)を10で割った余り=「4」
「1」「2」(小数点)「3」「4」(mA)の順に、□の場所を画像で埋めてやると、表示が完成します。
▼完成
LEDを正しい+-の方向でソケットに挿し込むと…。
周りを暗くして、4パターン撮ってみました。
画面には実測の順電流(IF)と順電圧(VF)がリアルタイムに表示されます(あくまでも変換式によって求めた近似値ですが)。
LEDの明るさも電流設定に応じて変わっているのがわかると思います。
動画も撮ってみました。ちょっと安定までに時間がかかりすぎているかもしれませんが、マイコンによるフィードバック制御の動きをわかりやすく見せるため、変動量を小さめにプログラムしてあります。
「LEDを何mAで点灯させるか問題」は、電子工作をしていると比較的頻繁に直面するのではないでしょうか。
私の場合、電流値ではなく見た目の明るさを基準にして「この明るさで光らせるなら○mA」のような決め方をすることが度々あります。
今回のLEDチェッカーは道具入れの中に常備しておいて、ちょっとしたLEDの明るさチェックに使えるよう活用していきたいと思います。
▼反省点(今後の課題)
実は、今回の回路では順電圧3V系のLED(青色・白色・電球色など)では、12~14mAくらいまでしか電流を上げられません(赤色・黄色・黄緑色など2V系は20mAまでOKでした)。
定電流回路に生じる電圧は「抵抗値×電流設定値」で決まるので、これが高くなりすぎるとLEDを点灯させるのに必要な電圧が確保できなくなってしまうためです。
今回は安全を重視して抵抗値を高めの120Ωに設定したので、定電圧回路部は120Ω×20mA=2.4Vとなり、トランジスタのVce(約0.2V)やLEDの点灯に必要な電圧(2.8~3.2V)と合計すると電源電圧の5Vを超過してしまいます。


解決策は「電源電圧を上げる」「定電流回路の抵抗値を下げる」の2つがありますが、
M5StickCから取れる電源電圧は5V以上の電圧は昇圧回路を搭載しないと作れませんし、抵抗値を下げればLEDに流せる電流が増えてしまうので、万一制御の暴走が起きた場合もLEDを破壊することのないような保護機構を用意するのが望ましくなります(テスターを名乗る機器が測定対象を破壊するなんて、あってはならない事ですよね…)。
青色LEDをつなぐと、10mAよりも20mAのほうが暗くなりました。LEDに加える電圧が不足しているため、期待した挙動ではありません。要改善!
ということで、最近作った「M5StickCを使ったLEDテスター」の開発レポートを3回にわたってご紹介させていただきました。
最後までご覧いただきありがとうございます。
★Raspberry Pi Pico(ラズパイピコ)や★M5Stack社製品など、10年くらい前に比べると格段に高性能なマイコンボードが安価に入手できるようになりました。
Wi-FiやBluetoothなど無線付きの製品も珍しくなくなり、電子工作でできることのレベルも上がっています(次々登場する新しい技術に乗り遅れないよう、頑張って勉強します…)。
エレショップblogが電子工作を始めてみたいとお考えの方へのちょっとしたきっかけになれれば幸いです。
今後も、★共立エレショップでは電子工作に役立つ製品を追加していく予定です。
お楽しみに!
(記事:ONE)
更新予定:毎週木曜日(次回は9月7日です!)






