第14回 I2C通信モジュール回路図

今回は、I2C通信を行う温度センサーとLCDモジュールの回路図を作成します。

この記事は更新済みです

記事更新のお知らせ

現在、PICマイコン電子工作入門実践編シリーズの記事内容を最新の情報に合わせて、2025年9月までを目標に全面的に更新しています。

更新の理由は次のとおりです。

  • 記事で使用している部品の中に、現在では調達できない部品があるため
  • 記事内容に古い記述があるため
  • 掲載している天気予報プログラムのアルゴリズムを改善するため

更新期間中は、新旧の記事間で一部内容に矛盾が生じる可能性があります。 ご不便をおかけいたしますが、ご理解のほどよろしくお願いいたします。

なお、更新済みの記事には冒頭に「この記事は更新済みです」の表示をしております。

引き続き、よりわかりやすく、役立つ情報を提供できるよう努めてまいります。 今後ともよろしくお願い申し上げます。

目次

I2C通信モジュールの端子

「温度センサー」と「LCDモジュール」は「I2C通信」という方式で通信を行います。

前回の温湿度・気圧センサーは、「SPI通信」か「I2C通信」を選択できましたが、温度センサーとLCDモジュールの通信方式はI2C固定です。


I2C通信モジュールは次のような端子を持っています。

Pic practice 14 i2c terminal

それぞれの信号の意味は次のようになっています。

信号の名前内容
VDD電源のプラス側
GND電源のマイナス側
SDAデータを送受信する信号
SCLデータ通信のタイミングを合わせる信号

このあとの記事でI2C通信の詳しい仕組みを説明しますので、今はこれらの意味はさっぱり分からなくても大丈夫です!

I2C通信モジュールもPICマイコンに接続するだけですが、SPI通信とは違って追加の部品(抵抗)が必要です。

そこで、回路図を作成する前にI2C通信モジュールの接続方法を説明します。

I2C通信モジュールの接続方法

I2C通信モジュール一般的な接続方法を説明します。

I2C通信モジュールを接続する場合、PICマイコンのピンに接続するだけでなく、次のようにそれぞれの信号線を10kΩ程度の抵抗でプルアップする必要があります。

Pic practice 14 i2c toplogy single

I2C通信のモジュールは、種類によらずこのような接続方法を取ります。


実践編のシステムでは、温度センサーとLCDモジュールの2つがI2C通信を行います。そのため、これら2つを接続する必要があります。

複数のI2Cモジュールを接続する場合は、次のように同じ信号線を接続します。

Pic practice 14 i2c toplogy multi

注意点としては、プルアップ抵抗は追加で接続する必要はない、という点です。

I2Cモジュールをさらに追加する場合でもプルアップ抵抗は1組にします。

I2C通信モジュールはこのように同じ信号線を接続して、1ヶ所抵抗でプルアップする、という接続形態になります。

回路図

ということで、回路図を作成しましょう!

PICマイコンの接続は、端のピンの方がブレッドボードで接続しやすいという理由で、RC2ピントRC3ピンに接続しました。

なんだか解説が足りないような気もしますが、データ通信を行うモジュールは基本的に信号線を接続しておしまい、あとでプログラムするときに大変な目にあう、というのが基本です。

更新履歴

日付内容
2018.3.25新規投稿
2018.12.7回路図のPICkitコネクタピン数を6ピンから5ピンに変更
2025.7.7三端子レギュレーター部分回路図変更
通知の設定
通知タイミング
guest
4 コメント
新しい準
古い順 一番投票が多い
本文中にフィードバック
全てのコメントを見る
gosan
gosan
3 年 前

ツール・ラボでは大変勉強になる所が有り拝見させて頂いております。
現在LDCと温度センサーのi2cタイミングで悩んでおりましてご連絡致しました。
症状としてし、数日間動かしてまれにi2cが止まってしまう(止まっている位置は、スタート,ack待ちなど定まっていません)のですが、オシロで見るとスタートパルスの時はデーター基準でクロックが変化する時間が5.4u程度のずれは有るのですが、それ以降のパルスタイミングがクロックが立ち下がりするタイミングに対してデーターが変化する時間が360ns : クロック立ち上がりに対してデーターが変化する時間が520ns
しか有りません。(クロックとデーターの切換がほぼ同じ状態)
上記時間に対して、信号をずらすタイミングもしくは調整方法等は有るのでしょうか?
動かしているICは、PIC16f18857です。
以上よろしくお願い申し上げます。

gosan
gosan
返信  管理者
3 年 前

ご連絡大変ありがとうございました。
此方でもいろいろ探してみた結果、原因がわかりました。
当方の持っている仕様書(資料)が古いという事が判り、i2cのSDAHTを使えば動かせる事が判りました。
ご調査・等で、ご苦労をおかけ致しました事に対して、大変感謝している次第です。

目次