11月25日発売 書籍『Arduinoと3Dプリンタでロボットを作ろう』を出させて頂きました!

【自作基板 / JLCPCB】ハンディータイプの自作I2Cスキャナーを作ってみました!

電子工作で、I2Cタイプのセンサーやモジュールなどを扱う際には、まずI2Cアドレスの確認が必要になります!

データシートを見ればアドレスは記載されていますが、ジャンパー設定やモジュールの仕様によって実際のアドレスが異なることもあり、いざ回路を組んでプログラムを走らせてみたものの上手く動いてくれない…ということはよくあります。

I2Cアドレスを調べること自体はそれほど難しくなく、専用のスケッチやプログラムも数多く公開されています。

しかしその都度、マイコンボードにプログラムを書き込み、対象となるI2Cデバイスと接続してシリアルモニタで結果を確認する・・・
この作業が面倒になることもあります。

そこで便利なのが、接続したデバイスのアドレスを一覧で表示・確認出来るI2Cスキャナー専用機です。
今回は、コイン電池で動くハンディータイプのI2Cスキャナーを自作してみました。

作業途中でアドレスの確認が必要になった際にも、作業を中断することなくサクッと接続しアドレスを調べることが出来るため、1台あると何かと便利なツールになるかと思います。

自作I2Cスキャナーの製作

なぜハンディータイプのI2Cスキャナーを作ったのか!

これまでデバイスのI2Cアドレスを調べる際は、ArduinoにI2Cアドレスをチェックするためのスケッチを書き込み、シリアルモニタで結果を確認していました。

この方法自体は確実ですが、作業の途中で毎回チェック用のマイコンボードを用意しプログラムを書き込んで確認する必要があり、現在行っている作業を一度中断しなければならない点が面倒に感じる事もあります。

そこで当初は、M5Stack Core2があったのでこれに対応したI2Cスキャナーを作ろうかと考えていたのですが、結局は使用するたびにそのプログラムを探して書き込む手間が発生する点は変わらず、それならばとI2Cアドレスの確認に特化したハンディータイプの専用機として製作することにしました。

これなら、既に組んだ回路に接続してサクッとその場でアドレスの確認が出来るので便利です!

電源を含めた全体構成の検討

最初は既存の小型マイコンボードとOLEDを組み合わせた、シンプルな構成で基板化しようと考えていました。

しかし、ハンディータイプとして使うことを考えると、駆動電源も本体に内蔵した方が使い勝手が良さそうです。
リポバッテリーを内蔵する案も検討しましたが、どうしてもサイズ、特に厚みが大きくなりがちなのが気になりました。

そこでコイン電池で駆動出来ないか?と考え、3Vのコイン電池を使った動作テストも行ってみましたが・・・
3Vのコイン電池では、昇圧回路を挟んでもマイコンボードを安定して駆動させるのが難しく、実用的とは言えない結果になりました!

そこで、コイン電池形状の二次電池(充放電可能)を使うことにしました。
これなら3.7V(最大4.2V)の駆動電圧を確保出来るので、3.3Vで動作するマイコンボードを安定駆動させることが出来ます。

最終的に、CR2032と同サイズの二次電池であるLIR2032を使用することにしました。

CR2032の容量は公称値で約240mAhありますが、LIR2032は二次電池という特性上、容量は約45mAhとかなり小さくなります。
ただI2Cアドレスのチェック自体は数秒で完了し、長時間連続で使用するものでもないため、用途を考えると十分な容量だと判断しました。

これで単独で動作する構成が出来ました。
マイコンボードにXiao RP2040を使い単色のOLEDディスプレイ(SSD1306)に結果を表示、そして電源にLIR2032を使い充電回路も追加して、マイコンボードにケーブルを挿すと動作&電池への充電を同時に行えるような構成にしました。

基板設計

上記の構成をもとに、全体の回路はこのように設計しました。
LIR2032用の充電回路とXiao RP2040への電源供給・保護回路を組み合わせたシンプルな構成になっています。

基板サイズは35mm×55mmと、片手に収まるコンパクトなサイズに仕上げることが出来ました!

表面のピンヘッダー or ピンソケットにワイヤーを挿し対象デバイスと接続、


または背面のJST-SHコネクタを使って接続し、スキャンスイッチを押してスキャンを開始するというシンプルな動作となります。


またオプション扱いとしていますが、R3およびR4は接続したデバイスのI2C(SDA/SCL)用のプルアップ抵抗となっています。
多くのI2Cデバイスでは内部にプルアップ抵抗が内蔵されているため、基本的にこの2本の抵抗は未接続で問題ありません!

ただI2Cで動作するICチップ単体のアドレスを調べる場合などで、内部プルアップ機能を持たないものでは正常に検知出来ないことがあります。
そのような場合は、R3 / R4に4.7kや10kΩなどの適切な抵抗を実装して使用する想定です。

また、本基板は電源としてボタン電池型の二次電池LIR2032を使用することを前提に設計しています。
LIR2032はCR2032と同サイズのため、本基板の電池ホルダーに収まりますがCR2032では動作しません!

さらに本基板は充電回路を搭載しているため、CR2032を装着した状態で充電モードに入ると発熱や破損などの危険があります。
本記事の内容を参考にして製作・使用される場合は、必ずLIR2032(二次電池)を使用して下さい!

注意
本記事を参考または基板を製作される場合、CR2032電池を使用することは絶対にしないで下さい!
本記事による情報をもとに製作・使用したことによって生じた、いかなる損害・トラブルについても、筆者は責任を負いかねますのであらかじめご了承ください!

JLCPCBに基板を発注

基板の製造は、JLCPCBを利用しました。

基板データ(ガーバーファイル)をダウンロード出来るようにしておきます。
興味ある方は、製作してみて下さい!

発注に関しては特記すべきところはありませんが、[PCB上のマーク]は[マーク除去]を選択して基板製造時に任意の位置に入ってしまう発注番号を削除しておくのがいいと思います。(無料オプションです)
基板カラーはお好みで選択して下さい。

MEMO
本記事の基板は、[表面仕上げ]にENIG(金メッキ加工)オプションも追加しています。(別途オプション料金がかかります)

はんだ付けにある程度慣れた方なら、手はんだでのパーツ実装も十分可能な基板となっていますが、今回ステンシルも一緒に発注しました。

ステンシルの発注は下の[ステンシル]チェックマークをクリックして行います。

実装面は[ボトムのみ]を選択。
またJLCPCBのステンシル発注では、サイズを指定しないと結構大きなサイズで届いてしまい作業しづらい場合があるので、カスタムから適度なサイズを指定するのがいいと思います。

本基板サイズは35mm×55mmなので、今回100mm×100mmでサイズをカスタムして発注しました。(サイズのカスタムは無料で出来ます)
サイズが小さくなるとステンシル料金や送料もお安くなるのでお得です!

以上項目を選択し発注しました。

基板製造料金が4ドル、ステンシル料金が3ドルの計7ドル(プラス送料)ほどの料金で製造してもらうことが出来ます。
JLCPCBさん、ほんとお安いですね!

JLCPCBの基本的な基板発注方法などは、こちらの記事で詳しくまとめています。
あわせて見て頂ければと思います。

【電子工作 / 基板製作】これから始める自作基板。JLCPCBでの基板発注ガイド(2025年版)

基板の到着

配送方法にOCS Expressを選択し、発注から8日ほどで手元に基板が届きました。

ベタGND部分はハッチングパターンで仕上げましたが、黒レジストとENIGの金メッキ処理との相性が良くもとても綺麗です。

細かいパターン部分も潰れやズレは見られず、今回も安定した品質で仕上がってきました。

パーツの実装

それではパーツの実装をサクッとやっていきます。

ステンシルを使いはんだペーストを塗布します。
今回の基板では特に実装が難しくなるパーツは使っていないので、リフローでの実装ではそれほど難しくはないと思いますが、手はんだで行う場合はある程度慣れていないと難しいかもしれません!

ちなみにステンシルを使ったはんだペーストの塗布ではいつもこれを使っています。

パーツの実装は、MHP50というミニリフロー装置を使いました。
自作基板製作でいつも愛用している、非常に便利なミニホットプレートです。

ホットプレート内に収まる基板(50mm×50mm)であれば、リフロープロファイルを使った実装もでき、はんだ不良などのトラブルが抑えられるのも便利です!

【電子工作 / PCB】ミニリフロー装置『Miniware MHP50』を使ってみる!加熱性能や安全設計はMHP30から全て引き継がれ使い勝手がさらに向上した便利なリフロー装置です

背面のメイン実装面のパーツ実装が出来たら、表面にピンヘッダー&ピンソケット、タクトスイッチ(SMD)を取り付けて基板は完成です!

ファームウェアの書き込み & 動作確認

最後にファームウェアの書き込みです。

本基板、またはXiao RP2040とSSD1306 OLEDディスプレイの組み合わせで動作するファームウェア(I2C_Scanner_V1.1.uf2)をダウンロード出来るようにしておきます。

Xiao RP2040をPCと接続し、[B(BOOT)]ボタンを押した状態で[R(RESET)]ボタンを押すと、PCにUSBマスストレージとして認識されます。

あとは、ドラッグ&ドロップで上記ファームウェアを書き込めば完了です!

表面のスキャンスイッチを押すとアドレスチェックが開始されます。

本ボードは、USBからの駆動またはコイン電池(LIR2032)から単体で動作する、両方の駆動方法に対応しています。
コイン電池を装着した状態でUSBケーブルを挿し込むと、スキャンはUSBからの電力供給を優先し、電池は充電モードに入ります。

充電状態はボードのLEDで確認出来ます。
充電中はLED1(オレンジ)が点灯し、充電が完了したらLED2(グリーン)が点灯する仕様となっています。

JLCCNCで専用アルミプレートを製作

基板単体でも綺麗にまとまり、コンパクトで使いやすいI2Cチェッカーに仕上がったと思います。

そして、せっかくハンディータイプとして作ったので、持った時の質感や見た目にもさらにこだわりたくなり、テストも兼ねてJLCCNCの板金加工サービスを利用し専用アルミプレートも製作してみました。

アルマイト仕上げの質感がとても良く、PCB単体とはまた違った雰囲気となり、ガジェット感が一気に増した印象です!

実際に手に取ってみると剛性感があり、個人的にかなり気に入っています!

なお、JLCCNCの板金加工については、設計から発注・仕上がりまでを詳しくまとめた記事も書いています。
興味のある方は、こちらの記事もあわせてご覧下さい!

【JLCCNC / JLCPCB】JLCCNCの板金加工を利用してPCB用のプレートを製作してみました!

ブレッドボードやユニバーサル基板で製作する

当初はもっとシンプルで簡単に作れる構成で考えていたのですが、二次電池使用による充電回路や保護回路を追加する形で製作し完成させました。

ハンディータイプのI2Cチェッカーは、1台あると電子工作で何かと便利に利用することが出来ると思います。

作成したファームウェアは、Xiao RP2040SSD1306 OLEDディスプレイがあると動作するので、基板を作るのはちょっと大変そう?という方は、ブレッドボードやユニバーサル基板で作ってみるのも面白いと思います。

USB駆動だけだと、こんな感じでシンプルに作ることが出来るので、工作として製作してみるのもいいかもしれませんね!

使用パーツ一覧

今回使用したパーツの一覧です。

パーツ定数入手先
コンデンサ
(0603)
C1/C2 1μF
C3 4.7μF
C4 10μF
AliExpress
ダイオード
(SOD-323)
D1/D2 1N5819WAliExpress
LED
(0603)
LED1 Charge(Orange)
LED2 Full(Green)
AliExpress
MOSFET
(SOT-23)
Q1 AO3401AAliExpress / 秋月電子
抵抗
(0603)
R1/R2 100kΩ
R5 22kΩ
R6/R7 1kΩ
※R3/R4 I2Cプルアップ抵抗(オプション)
AliExpress
スイッチSW1 スライドスイッチSMD(SSSS811101)
SW2 タクトスイッチSMD(6mm×6mm)
※高さはお好みで!(アルミプレート使用時はH10mmを使用)
AliExpress
AliExpress
3.3V LDOU2 ME6211A33PG-NAliExpress
充電ICU3 MCP73831-2-ATI/OTAliExpress / 秋月電子
マイコンボードU1 Xiao RP2040Amazon / 秋月電子
ディスプレイOLED1 SSD1306(128×64 I2C)Amazon / AliExpress
端子J1/J2 ピンヘッダー&ピンソケット
J3 JST-SHコネクタ(4P SMD)
AliExpress
電池ホルダーBT1 LIR2032ホルダーAliExpress
その他
(アルミプレート使用時)
M2×12mmビス(×4)
M2×6mmスペーサー(×4)
M2ナット(×4)
ーーー
MEMO
R3/R4は、接続先デバイスでプルアップ抵抗がない場合のオプションとなります。
通常は未実装で問題ありません!

最後に!

ハンディータイプのI2Cスキャナーを自作してみました。

I2Cアドレスの確認自体は簡単な作業ですが、開発の途中でその都度マイコンボードにプログラムを書き込み、シリアルモニタ等で確認するのは意外と手間がかかります。

専用機として製作することで、接続して電源を入れるだけでアドレスを確認出来るのは便利ですね!

電源にはLIR2032コイン電池を採用し、充電回路も内蔵したことで、単体で駆動も出来るハンディータイプとしての使い勝手も良好です。

さらに、専用のアルミプレートを製作したことで、見た目や質感の面でも満足度の高いツールに仕上がったと思います。

頻繁に使うものではないものの、いざという時にサクッと使える…そんなツールが1台手元にあるだけで、電子工作のちょっとしたストレスが軽減し作業も楽しくなりますよね!

自作ツールに興味のある方の参考になれば幸いです・・・

コメントを残す

メールアドレスが公開されることはありません。