ラズパイでI2Cの設定

この記事では、Raspberry PiでI2C通信を使うための設定のやり方を解説していく。

I2Cとは?

I2Cとは「Inter-Integrated Circuit」の略で、フィリップス社が開発した組み込みシステムなどで使われるデータ規格である。ラズパイ周辺のセンサーモジュールなどは、このI2CかSPIでデータのやりとりするものが多い。

I2Cに使う信号線の数は2本で、シリアルクロック(SCL)とシリアルデータ(SDA)で通信を実現する。一方で、SPIに使う信号線の数は4本となる。それぞれシリアルクロック(SCLK)、チップ・セレクト(CS)、マスタ出力/スレーブ入力(MOSI)、マスタ入力/スレーブ出力(MISO)でSPI通信を実現していく。

初心者の方なら、SPI通信よりもI2C通信から始める方が簡単だと思う。

ラズパイでI2C通信を使えるように設定

ラズパイでI2C通信を使えるように、i2c-toolsライブラリをインストールしよう。次のコマンドでインストールする。

$ sudo apt-get update
$ sudo apt-get install i2c-tools

インストールが終わったら$ sudo raspi-config で設定画面を開き、I2C通信を有効にする。

ラズパイでI2C通信を有効にする
ラズパイでI2C通信を有効にする

  1. 設定画面の 5.Interfacing Option へ進む
  2. P5 I2C へ進み Yes を選択する

以上でI2C通信が使えるようになった。

PythonでI2Cを使えるようにする

PythonプログラムでもI2C通信を使いたい場合、python-smbusライブラリをインストールしておこう。このライブラリはPython2とPython3で別れているので、次のようにどちらでも使えるようにインストールしておくと便利。

$ sudo apt-get install python-smbus
$ sudo apt-get install python3-smbus

I2Cデバイスが認識されているか確認

それではI2Cデバイスをラズパイと接続して、I2Cデバイスが認識されるか確認してみよう。ラズパイとI2Cデバイスを配線するには注意が必要だ。なぜなら、ラズパイではI2C通信に使うSCL(GPIO3)SDA(GPIO2)がすでに割り当てられているからだ。

ラズパイGPIO役割図
ラズパイGPIO役割図

I2Cデバイスをラズパイに繋いだところで、$ sudo i2cdetect -y 1を実行するとI2Cデバイスのアドレスが表示される。ここでは68のアドレスが割り当てられたが、接続するI2Cモジュールによってアドレスは異なる。もしアドレスが表示されない場合は、ラズパイを再起動してみよう。

$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --      

I2C通信のADコンバータMCP3425を使った記事も参考に

この記事で使った関連製品はこちら

HiLetgo 2個セット ADS1115 4チャンネル 16ビット I2C ADC モジュール ゲインアンプ Arduino Rpiと互換
HiLetgo 2個セット ADS1115 4チャンネル 16ビット I2C ADC モジュール ゲインアンプ Arduino Rpiと互換

広い電源電圧:2.0~5.5V、データレート設定可能:8SPS~860KSPS、I2Cインターフェース:ピン接続でI2Cアドレス設定可能、シングルエンドで4本もしくは差動式で2本の入力

Amazon
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス
Raspberry Pi Zero W - ヘッダー ハンダ付け済み - ラズベリー・パイ ゼロ W ワイヤレス

Amazon
正規代理店商品 Raspberry Pi 4 Model B (8GB) made in UK element14製 技適マーク入
正規代理店商品 Raspberry Pi 4 Model B (8GB) made in UK element14製 技適マーク入

Amazon

Raspberry Piの参考書

Raspberry Pi クックブック 第2版 (Make:PROJECTS)
Raspberry Pi クックブック 第2版 (Make:PROJECTS)

本書は、全世界で多くのユーザーの支持を集めているマイコンボード「Raspberry Pi」を使いこなすためのレシピ集です。ハードウェアの基本、オペレーティングシステムの使い方、ネットワーク接続、Pythonプログラミングの基本を紹介した上デ、実際の作品製作に必要になる、高度なPythonプログラミング、GPIO(汎用入出力)、モーター、センサー、ディスプレイなどの使い方へと解説を進めていきます。

Amazon
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero/Zero W対応
写真や図解でよくわかる ラズパイZeroを使い倒す本 Raspberry Pi Zero/Zero W対応

本書ではRaspberry Pi Zero / Zero Wの概要から必要な周辺機器の説明、OSの導入やセットアップなどといった準備、そしてLinuxに初めて触れる人に向けてLinuxの基礎やシェルの操作などを解説しています。また、準備が整ったら実際に電子部品をRaspberry Pi Zero / Zero Wで制御する方法も解説しました。

KindleAmazon
Raspberry Pi ZeroによるIoT入門- Zero W 対応
Raspberry Pi ZeroによるIoT入門- Zero W 対応

本書は、大人から子供まで、初心者の方でも、ラズパイZeroとラズパイZero WをIoTのデバイスとして使いこなせるようになることを目的とした入門書です。また、ラズパイZeroとラズパイZero WをUSBケーブル1本でパソコンに接続できる便利な「Zero over USB」について、日本で初めて詳しく解説しました。

Amazon

Amazonでお得に購入するなら、Amazonギフト券がオススメ!

コンビニ・ATM・ネットバンキングで¥5,000以上チャージすると、プライム会員は最大2.5%ポイント、通常会員は最大2%ポイントがもらえます!
Amazonギフト券

あなたにおすすめ