yoshiyuki's blog

Arduino/Teensy/Raspberry pi pico を利用した I2C, SPI 通信アプリを紹介します

Arduino で I2C / 各ピン の役割

この時期では、自作ツールの Sketch においてどの機能をどのピンに割り当てているかを説明します。
自作ツールについては以下の記事をご参照ください。
ysin1128.hatenablog.com

Sketch によって Arduino の各ピンには下記の役割を割り当てています。
Sketch の Revision によって一部ピンの割り当てが異なるためご注意ください。

sketch_I2C_GPO_bin_R11 以降

f:id:ysin1128:20200729093408p:plain
Arduino Nano の例

D13 SPI SCK
D12 SPI MISO
D11 SPI MOSI
D10 SPI CS(SS)
D9 Clock Clock out
D7-D6 GPIO Digital Input/Output
D5-D2 GPIO Digital Output
A5 I2C SCL
A4 I2C SDA
A1-A0 GPIO Analog Input
GND 共通 GND

各用途で使用するピンは下記の通りです。

I2C

A5 I2C SCL
A4 I2C SDA
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
SCL, SDA の Pull-up は内蔵していません。
各ピンの High/Low 検出レベルは Arduino の電源電圧に依存します。

SPI

D13 SPI SCK
D12 SPI MISO
D11 SPI MOSI
D10 SPI CS(SS)
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。

GPIO

D7-D6 GPIO Digital Input/Output
D5-D2 GPIO Digital Output
A1-A0 GPIO Analog Input
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。
Analog Input は入力電圧を Arduino の電源電圧に対して 10bit の分解能で取得します。例えば Arduino の電源電圧 5V に対して入力電圧が 2V の場合、取得値は 409 程度になります。

Clock

D9 Clock Clock out
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。

sketch_I2C_GPO_bin_R05 - R10

D13 SPI SCK
D12 SPI MISO
D11 SPI MOSI
D10 SPI CS(SS)
D9 Clock Clock out
D8-D7 GPIO Digital Input
D6-D2 GPIO Digital Output
A5 I2C SCL
A4 I2C SDA
A1-A0 GPIO Analog Input
GND 共通 GND

各用途で使用するピンは下記の通りです。

I2C

A5 I2C SCL
A4 I2C SDA
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
SCL, SDA の Pull-up は内蔵していません。
各ピンの High/Low 検出レベルは Arduino の電源電圧に依存します。

SPI

D13 SPI SCK
D12 SPI MISO
D11 SPI MOSI
D10 SPI CS(SS)
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。

GPIO

D8-D7 GPIO Digital Input
D6-D2 GPIO Digital Output
A1-A0 GPIO Analog Input
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。
Analog Input は入力電圧を Arduino の電源電圧に対して 10bit の分解能で取得します。例えば Arduino の電源電圧 5V に対して入力電圧が 2V の場合、取得値は 409 程度になります。

Clock

D9 Clock Clock out
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。

sketch_I2C_GPO_bin_R04 以前

D13 SPI SCK
D12 SPI MISO
D11 SPI MOSI
D10 SPI CS(SS)
D9-D8 GPIO Digital Input
D7-D2 GPIO Digital Output
A5 I2C SCL
A4 I2C SDA
A1-A0 GPIO Analog Input
GND 共通 GND

各用途で使用するピンは下記の通りです。

I2C

A5 I2C SCL
A4 I2C SDA
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
SCL, SDA の Pull-up は内蔵していません。
各ピンの High/Low 検出レベルは Arduino の電源電圧に依存します。

SPI

D13 SPI SCK
D12 SPI MISO
D11 SPI MOSI
D10 SPI CS(SS)
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。

GPIO

D9-D8 GPIO Digital Input
D7-D2 GPIO Digital Output
A1-A0 GPIO Analog Input
GND 共通 GND

Arduino の GND と 通信相手の GND の接続が必要です。
各ピンの High/Low レベルは Arduino の電源電圧に依存します。
Analog Input は入力電圧を Arduino の電源電圧に対して 10bit の分解能で取得します。例えば Arduino の電源電圧 5V に対して入力電圧が 2V の場合、取得値は 409 程度になります。