エレショップblog

半導体・センサー・マイコン・電子工作キットほか、各種電子部品の専門店「共立エレショップ」から主に電子工作の関連情報をお届けします。 http://eleshop.jp/

カテゴリ: ハンダ付け不要/マイコン系

記事担当:
ハンダ付け必須-非マイコン系


待望の白光のペンシル型デジタル表示機付きのはんだこて、新しく入荷しています。
FX600D-813-1
白光 FX-600D-813
https://eleshop.jp/shop/g/gO25311/


パッケージはこんな形です。
FX600D-813-2

前はハッコーさんのコテといえば本体が見えるブリスターパッケージだったのですが、
環境を考慮してか、紙パッケージに変更されています。


本体を見てみましょう。
FX600D-813-3
今回のFX-600Dは先端キャップが付属しているので別途購入する必要がありません。


FX600D-813-4
キャップを取ると「こて」の部分が見えます。
先端部は旧モデルのFX-600とほぼ同一で、こて先も一緒のものが使用出来ます。


では、電源を入れていきましょう。
FX600D-813-5

FX600D-813-6


今回の新製品の一番の目玉の「液晶ディスプレイ」の表示はこんな感じです。
(初期状態では350℃に設定されていました)



この製品は、持ち手の部分に付いているボリュームで温度設定が可能となっています。
FX600D-813-7
(設定可能温度 200〜540℃)

あまり目立たない所ですがこの製品の良いところは「リップル温度」が
「±1℃(無負荷時)」とかなり安定した温度で使用可能な所です。

安定した温度を維持出来るのは、はんだ付け精度に直結する所なんで
かなり重要です。


とりあえず300℃に設定してはんだ付けしてみましょう。
FX600D-813-8
(私はいつもはこれぐらいの温度ではんだ付けしています)


温度落として200℃。
FX600D-813-9
さすがにとけが悪いですね・・・


温度上げて400℃
FX600D-813-10

FX600D-813-11
はんだ付けは出来ますが、フラックスの蒸発が早い感じがします。

と、やっぱり普通の有鉛半田を使用するなら300℃あたりが使いやすいです。
(あくまで個人的感想)

それと細かい所ですが液晶無しタイプのFX-600はLEDの表示・・・

ヒーターON時 常灯
ヒーターOFF時 点滅

でしたが今回のFX-600Dは・・・

ヒーターON時 常灯
ヒーターOFF時 消灯

に変更されているようです。
600Dの方がやはりわかりやすいですね。


温調タイプのはんだこて持っている方でも、FX-600Dの「液晶ディスプレイ&ボリューム」での温度調節、一度やってみると買い替えたくなりますよ。


ぜひぜひ、ご購入検討ください。

担当:ヨジゲン 
更新予定:毎週木曜日(次回は2月22日です!) 

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


本日は、個人的に前々から気になっていたマイコンボードを使ってみましたのでご紹介したいと思います。
それがこちら。
今年7月に登録したばかりのマイコンボードです。

Arduinoといえば、先日の純正ボードの最新型★「UNO R4」がリリースされました。
新たにArm系のチップを採用してハードウェア構造が大きく変化したのが特徴ですが、このボードは、Arduinoの主力ラインナップとして長らく使われていたマイクロチップ(旧アトメル)のAVR系マイコンを搭載しています。
わずかな変更や修正は発生するものの、従来から使っているUNO R3やNano等の代わりとしての使い方がよく合うのではないかと思います。
1


搭載マイコンは「ATtiny1616」(右)、USB-シリアル変換IC「CH340K」(左)も搭載しています。
ボード形状はDIPタイプで、ユニバーサル基板との相性も良いです。


2
基板上には★Grove互換コネクタを追加するパターンがあります。コネクタは付属しているのが嬉しいですね。

今回は、このボードを「Arduino IDE」で使うために必要な環境構築手順を実施した後、簡単なプログラムを動かしてみました。


▼ボードサポートの追加
搭載AVRマイコン「ATtiny1616」は、Arduinoの開発環境では標準状態でサポートされていないモデルとなります。
メーカーページの記載を参考にして、オープンソースの「★megaTinyCore」という追加ボードサポートをArduino IDEに導入します。
※現時点で上記ドキュメントでは、Arduino IDEのバージョン「1.8.13」が推奨されています。
今回はArduino IDE 1.8.19を使用しました。


1.Arduino IDEを起動して、メニューバーから[ファイル]>[環境設定]を選択します。
3


2.「環境設定」ウィンドウにある「追加のボードマネージャのURL」右側にあるボタンをクリックします。
4



3.「追加のボードマネージャのURL」ウィンドウ内の入力欄に、下記の内容を入力してください。
(既にほかの内容が入力されている場合は、改行して新しい行に続けて入力します。)
入力完了後[OK]を押してウィンドウを閉じます。環境設定ウィンドウも同様に[OK]で閉じます。
5


4.続いて、メニュー[ツール]>[ボード: "○○"]>[ボードマネージャ…]を選択します。
6


5.「ボードマネージャ」ウィンドウが開きます。先の手順で追加したボードマネージャを含めてリストを再構築する処理が行われますのでしばらく待機した後、上部の検索ウィンドウに「megatinycore」と入力します。
7


6.検索結果から「megaTinyCore by Spence Konde」を探し、[インストール]をクリックします。(2023.10.25時点での最新版はバージョン2.6.10)
8


7.インストールが完了するとINSTALLEDの表示が現れますので、確認後[閉じる]をクリックします。
9


8.インストールしたボードサポートを使用するための設定を行います。
メニューより[ツール]>[ボード: "○○"]を選択すると、新たに「megaTinyCore」というサブメニューが追加されています。さらにその先にある「ATtiny3216/1616/1606/816/806/416/406 w/Optiboot」を選択します。
10



9.もう一度メニュー[ツール]を開くと現れる[Chip]のサブメニューから「ATtiny1616」を選択します。
11



ここまでを終えることで、CHIBIKKOボード向けのスケッチをコンパイルできる準備が整いました。上記のメニューに表示されている通り、実際には更に詳細なオプションの指定ができますが、ここでは割愛します。


▼プログラムの書き込み
CHIBIKKOにはUSB-シリアル変換ICが搭載されているため、★USBケーブル(別売)でPCに接続すると、シリアルポートとして認識されます(Windows11や10の最新版ではドライバの追加導入も通常不要です)。
ATtiny1616には、あらかじめブートローダーが書き込まれているので、シリアルポートの番号を指定するだけで書き込みができます。


CHIBIKKOをUSBケーブルでPCに接続して、デバイスマネージャーにて認識されているCOMポートの番号を確認してください(下記の場合はCOM3)。
12



Arduino IDEで、[ツール]>[シリアルポート]から上記の番号を探して選択します。
13



コンパイルが正常にできるスケッチを用意し、[マイコンボードに書き込む]ボタンを押すと転送が開始します。
14


「ボードへの書き込みが完了しました」と表示されれば成功です。
15



▼プログラムを書き込んで遊ぶ
CHIBIKKOに搭載されている「ATtiny1616」は、比較的新しい世代の「tinyAVR1」シリーズで、昔ながらのATtiny2313やATtiny85などとは様々な点で違いがあります。
で、どうせなら新世代ならではの新しい機能(DAC出力もあるんですよ!)を触ってみたかったのですが、良いアプリケーションを思い浮かばなかったので、その代わりに性能テストをしてみました。


CHIBIKKO上のATtiny1616は、内蔵クロックでの動作となっています。
ボード設定を変えることで、動作周波数は20/16/10/8/5/4/2/1MHzから選べます。最高の20MHzは、Arduino UNO R3(ATmega328P)の16MHzより高いので、今回はこれに注目してみました。


素数を小さいものから順番に探索し、100個ごとに累積の所要時間をシリアルポートで表示するようなプログラムを、CHIBIKKO(20MHz)とArduino UNO(16MHz)の2台で動作させてみました。
(8ビットのマイコンで素数を探すシチュエーションなど正直言ってないのですが、処理性能の確認用ということでご容赦ください)
16


結果はこちら。27%ほど高速に動作しているようです。
絶対的な速度そのものより、UNO系のアプリケーションとの互換性重視で16MHzを選んだり、あと少しの性能を足すのに20MHzを選んだりと、使い方に合わせて柔軟に選択できるという点では結構便利なのではないでしょうか。
17



以上、簡単に★CHIBIKKOマイコンボードを試用してみました。
Arduinoボードの入門機としてはハードルを感じるところがあるかもしれませんが、この製品は、安価なAVR系Arduino互換ボードをお探しの方におすすめします。


今後も面白くて遊べるマイコンボードがあればご紹介したいと思います!

(記事:ONE)
更新予定:毎週木曜日(次回は11月2日です!) 

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


しばらく空いてしまいましたが、簡易型LEDテスター企画のPart3です。
ソフトウェア製作の要点を見ていこうと思います。最後までよろしくお願いいたします。
(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順電流の設定値を切り替えると、実際の電流値もそれに追従して変化するか。

23
計算過程の要所で変数の値をプリントして、基本となる機能をフルチェックしていきます。


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

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

M5StickCの液晶表示サイズである160×80ドット(※旧商品の仕様です。現行のPLUSは240×135ドット)にあわせて、全体の画面レイアウトを決めます。

25
・上段のグレーの帯の中に、LED電流の設定値:Target IF □□.□□mA
・オレンジ色でLED電流の現在値:IF □□.□□mA
・青色でLEDの順電圧:VF □□.□□V
それぞれの変数部分は、□の場所を0~9の数字または空白に置き換えて数値表示を行うことになります。

例えば、電流値「12.34」[mA]を表す際に、内部の計算結果が変数に「12340」という形で保持しているとします。
C言語では整数に対する割り算の商は切り捨てとなるので、各桁それぞれ次のような計算で、各桁ごとの数字を取り出すことができます。

26
・(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)の順に、□の場所を画像で埋めてやると、表示が完成します。


▼完成
表示部のプログラムもなんとか完成し、M5StickCに書き込んでいよいよ動作確認です。

27

LEDを正しい+-の方向でソケットに挿し込むと…。


28
29

手元のボタンを押すと電流設定(Target IF)が2 →5 →10 →20mA の順に切り替わります。これだと写真が明るくてよくわかりませんね。

30
周りを暗くして、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を超過してしまいます。

31
解決策は「電源電圧を上げる」「定電流回路の抵抗値を下げる」の2つがありますが、
M5StickCから取れる電源電圧は5V以上の電圧は昇圧回路を搭載しないと作れませんし、抵抗値を下げればLEDに流せる電流が増えてしまうので、万一制御の暴走が起きた場合もLEDを破壊することのないような保護機構を用意するのが望ましくなります(テスターを名乗る機器が測定対象を破壊するなんて、あってはならない事ですよね…)。
単なる自分専用なら別にかまいませんが、商品化するとなればまだまだやるべきことは多いのが現状です。

32
青色LEDをつなぐと、10mAよりも20mAのほうが暗くなりました。LEDに加える電圧が不足しているため、期待した挙動ではありません。要改善!


ということで、最近作った「M5StickCを使ったLEDテスター」の開発レポートを3回にわたってご紹介させていただきました。
最後までご覧いただきありがとうございます。


★Raspberry Pi Pico(ラズパイピコ)★M5Stack社製品など、10年くらい前に比べると格段に高性能なマイコンボードが安価に入手できるようになりました。
Wi-FiやBluetoothなど無線付きの製品も珍しくなくなり、電子工作でできることのレベルも上がっています(次々登場する新しい技術に乗り遅れないよう、頑張って勉強します…)。

エレショップblogが電子工作を始めてみたいとお考えの方へのちょっとしたきっかけになれれば幸いです。
今後も、★共立エレショップでは電子工作に役立つ製品を追加していく予定です。


お楽しみに!


(記事:ONE)
更新予定:毎週木曜日(次回は9月7日です!) 

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


自分が使いたいものを作ってみようという事で始めました、簡易型LEDテスター企画のPart2です。
もう少しだけ設計段階が続きます。よろしくお願いいたします。
M5StickCについているGPIOコネクタは、一般的な2.54mm間隔のヘッダーピンが適合します。
本来はM5Stack社公式の★HATという拡張モジュールを取り付けるためのものですが、ユニバーサル基板などで作った回路を試すのにも丁度いいです。
07


8ピンのうち電源関連が5ピンを占めているため、実際の入出力ピンは3本(G26、G36、G0)しかありません。
I2Cインターフェースを使えばデバイス数が増えてもピン数は2本のままなので、このGPIOコネクタを使う際はI2Cデバイスをメインにするのがスマートな方法だと思います。
ただ、今回のように純粋な入出力としてピンを使うとかなり少なく感じるのは確かです。実際のところ、割り切りが必要でした。
※入出力ピンはこの他にGroveコネクタの2本(G32、G33)が使用可能です。

今回のLEDテスターを作るうえで、電流調整にはPWM出力が1本あれば良いことはPart1の記事で説明しました。
他には、アナログ入力機能で電圧を読み取るポイントが2点あります。
08
●ローパスフィルタにかけた後のVCTL電圧(電流自動制御のフィードバック用)
●テスト対象LEDのカソード電圧(LEDの順方向電圧計算用)
この2点をそれぞれアナログ入力のピンで読み取ると、3本のピンを全て使い切ってしまいます。

アナログ入力について見ていきます。
M5StickCに使われているESP32マイクロコントローラでは、アナログ入力に使われる内蔵A/Dコンバータの入力電圧は約1.1Vまでとなっており、測定可能な電圧の範囲が狭いようです。この弱点を補うため、ESP32にはA/Dコンバータへの入力用のアッテネーターが内蔵されており、4段階に切り替えができるようになっています。
アッテネーターを有効化することで広い電圧範囲を測定できるようになるのですが、一番高い-11dBの設定にしても推奨入力電圧範囲は2.45Vまでで、最大3.3VのVCTLを測るのには適していません。
しかも-11dB設定時のアナログ読み取り値は特に歪みが大きいようです。
09

そこで、今回はESP32内蔵のアッテネーターの指定を-6dBにして、さらに回路側でも入力電圧の減衰をします
あらかじめ読み取り対象の電圧を抵抗で1/2に分圧してから、アナログ入力ピンに入れます。
こうすることで、測定上限が1.75Vの二倍となるので、3.3Vもなんとか測れるようになるはずです。
10

ただし、これらの分圧の抵抗を直接測定ポイントに接続してしまうと、測定したい回路に影響を与えてしまい正しい値を取れなくなってしまうので、オペアンプを1回路使ったバッファ(ボルテージフォロワ)に通してから分圧するようにします。
11


ブレッドボードとテスターで動作確認を行い、全体の回路図はこのようになりました。
12


使うオペアンプは単電源タイプの「★LM358」。
平凡な性能ですが今回の用途ではこれで十分です。全部で3回路になってしまったので、2個使います。
13


LM358は多くのメーカーが製造する定番のICで、共立エレショップでは2023年2月から取り扱いを開始した★TAEJIN Technologyというメーカーのものを使ってみました。
とにかく低価格なので、常備してどんどん使えるのが嬉しいですね。
ご興味のある方はエレショップの商品ページをご覧ください。
14



電流計算・電圧計算に関係する部分の抵抗は、誤差1%品の★金属皮膜抵抗を使います。
15


この設計で製品化をするのは無理があるのですが、もし量産を考える場合は、個体差を小さくすることは最終的なスペック欄に表記する精度を良くすることにつながります。
(ちょっと大変ですが、1台1台それぞれ校正した値を書き込むようなプログラム面での仕組みを用意するなども選択肢の一つです)

あとは抵抗・コンデンサ類、NPNトランジスタ、ヘッダーピン、ICソケット、LEDを挿し込むヘッダーソケットなど。一般的で安価なものばかりです。


それでは、★ユニバーサル基板で回路を作っていきましょう。
16
M5Stickと幅をそろえて、8列でカットします。
「幅そろってる方がシュッとしててええやん」(?)ぐらいの軽い気持ちで決めてしまいましたが、これが後々部品配置や配線の難易度を上げることになります…

17

回路図通りに部品を並べてみて、部品の場所を決めます。
基板の大きさに余裕があれば、だいたいのアタリを付けてから適当に配置してもなんとかなるのですが、今回は完成形を意識しすぎて基板を小さくカットしてしまったので、入念に部品の置き場所を検討します。
部品を載せる目途が立ったところで、ハンダ付けを進めていきます。
18


裏返して、リード線の配線作業です。基板が小さくて想像以上にやりづらい(言わんこっちゃない…)。
19


最後にリード線だけでは無理な所を被覆電線を使ってつなぎます。
★ジュンフロンETFE電線を使いましたが、こういう細かい基板の場合は★ポリウレタン線のほうがおすすめです。
20
ハードウェアはこれで完成です。

21


あとは諸々の計測と制御のためのプログラムを作り液晶画面のレイアウトを決め
M5StickC内蔵の液晶にカッコ良く表示してやればいいのですが…結構まだ先は長そうです。
次回完結予定。Part3に続きます!
22


(記事:ONE)
更新予定:毎週木曜日(次回は7月27日です!) 

記事担当:
ハンダ付け不要-マイコン系


「3の倍数と3が付く数字」の日だけ休みたい、そんなことを思う初夏。

…と、懐かしいネタから書き出してしまいました。
世代的に分からない方もいるかもしれませんが、現在は落語家に転身された桂三度さんが「世界のナベアツ」という名前で披露していた「3の倍数と3が付く数字のときだけアホになる」という、1から40まで数字を数えながら3の倍数と3の付く数字を数えるときだけアホっぽい言い方と仕草をする文字通りのネタがあり、約10〜15年ほど前に流行りました。

実は、その当時にプログラマー界隈で「これってアルゴリズム」だとか「FizzBuzz問題」を連想したり等の話題になり、いろんなプログラム言語で3の倍数と3の付く数字を判定する「世界のナベアツ」プログラムを組むことが流行りました。

実際、僕も当時に某プログラミング言語用にサンプルを作ったことがあるのですが、このネタの内容はプログラミングを学ぶ上での入門用として最適な問題といえます。
せっかくなのでブログの記事として「micro:bit」で世界のナベアツプログラムネタやってみたいけど、もうやってる人いるだろうなぁと思いながらとりあえず簡単にネット検索してみたら検索結果の上位には見当たらなかったので、じゃあmicro:bitプログラミング初級者向けにサンプルを残すのもいいよね。

ということで、今回は「micro:bit」で世界のナベアツプログラムを組んでみたいと思います。

image_001

上の画像のプログラムはネタ同様に1から40までをカウントしながら数字を判定しています。
数字と表情をLEDモニターに表示、3の倍数と3が付く数字のときは表情が変わりブザー音が流れます。

3の倍数かは、数字を3で割って余りが「0」かどうかで判断しています。

3が付く数字かは、文字列処理を使っています。
数字を文字列として扱い、文字の中に「3」という文字があるかどうかをチェックしています。

実は当時、数字の判定には文字列処理を使わず数列の処理のみを使うべき、みたいな話もありまして。
…ということで、次は数列処理のみを使ったプログラム。

image_002

こちらのサンプルでは3の倍数については前のプログラムと同様の処理を行っていますが、3の付く数字については別の方法を使っています。

カウントしている数字から10を引く計算を10未満になるまで繰り返しています。
10未満になるまで繰り替えした回数が3なら30〜39の範囲内、つまり10の位が「3が付く数字」ということになるからです。
例えば35の場合、「35-10-10-10=5(10未満の数字)」と10を3回マイナスしているとなるわけです。

さらに、その10を繰り返しマイナスした後の数字が3であるかを調べることで1の位が「3が付く数字」であるかを判断しています。
13の場合は「13-10=3」、23の場合は「23-10-10=3」といった具合です。

実際の世界のナベアツさんのネタ同様、40まで数える内容にしているのでサンプルプログラムの数列処理のみを使うふたつ目の方法で正しく機能しますが、103を超える数字については3の付く数字の判定は正しく行えないのでご容赦ください。

あえて他言語のサンプル等を参考にせず作ってみたので、実際はもっとスマートな数列処理のみの方法があると思うのですが、ここまでしか作れませんでした。
この記事を読んで興味を持たれた方がいれば、チャレンジしてもらえたらと思います。


(記事:糖分)
更新予定:毎週木曜日(次回は7月6日です!) 

このページのトップヘ