PCF8575は、I2Cインターフェイスを介してマイクロコントローラーと通信する16ビットI/Oエキスパンダーです。 Arduinoの入出力ピンの数を拡大することができ、多くのセンサー、ボタン、またはLEDを必要とするプロジェクトに最適です。このチュートリアルでは、PCF8575をArduinoと接続および使用することをガイドします。
あなたが必要とするもの
- PCF8575 I/O Expanderモジュール
- Arduino委員会(例:UNO、MEGA、NANO)
- テスト用のセンサー、ボタン、またはLED
- ブレッドボードとジャンパーワイヤ
- Arduino IDEがインストールされたコンピューター
ステップ1:PCF8575モジュールの理解
PCF8575は、入力または出力として構成できる16の追加のGPIOピンを提供します。 I2Cプロトコルを介して通信し、複数のモジュールを同じバスに接続するための調整可能なI2Cアドレスを持っています。
ピンアウト
| ピン | 関数 |
|---|---|
| VCC | 電源(3.3V/5V) |
| GND | 地面 |
| SDA | I2Cデータライン |
| SCL | I2Cクロックライン |
| P0-P15 | 汎用I/Oピン |
I2Cアドレス構成
- I2Cアドレスは、A0、A1、およびA2ピンによって決定されます。
- GNDへのすべてのピン:
0x20(デフォルトアドレス) - VCCへのすべてのピン:
0x27
- GNDへのすべてのピン:
ステップ2:PCF8575をArduinoに配線します
PCF8575をArduinoに接続する方法は次のとおりです。
| PCF8575ピン | Arduino Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4(SDA) |
| SCL | A5(SCL) |
周辺機器(LEDまたはボタンなど)をP0-P15ピンに接続します。
注記: 他のArduinoボードについては、正しいI2Cピンを使用してください。
ステップ3:必要なライブラリをインストールします
PCF8575での作業を簡素化するには、「PCF8575」ライブラリをインストールします。
インストールする手順:
- Arduino IDEを開きます。
- 行きます スケッチ > ライブラリを含めます > ライブラリを管理します.
- 「PCF8575」を検索してクリックします インストール.
ステップ4:コードをアップロードします
例:LEDの制御
このコードは、PCF8575を使用してLEDをオンおよびオフにする方法を示しています。
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as outputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, OUTPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
// Turn all LEDs on
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, HIGH);
}
delay(1000);
// Turn all LEDs off
for (int i = 0; i < 16; i++) {
pcf8575.digitalWrite(i, LOW);
}
delay(1000);
}
例:ボタンの読み取り
このコードは、PCF8575に接続されたボタンから入力を読み取る方法を示しています。
#include <Wire.h>
#include <PCF8575.h>
PCF8575 pcf8575(0x20); // Initialize with the default I2C address
void setup() {
Serial.begin(9600);
// Set all pins as inputs
for (int i = 0; i < 16; i++) {
pcf8575.pinMode(i, INPUT);
}
Serial.println("PCF8575 initialized.");
}
void loop() {
for (int i = 0; i < 16; i++) {
int state = pcf8575.digitalRead(i);
Serial.print("Pin ");
Serial.print(i);
Serial.print(": ");
Serial.println(state);
}
delay(500);
}
ステップ5:セットアップをテストします
- USBを介してArduinoをコンピューターに接続します。
- Arduino IDEを開き、正しいものを選択します ボード そして ポート の下 ツール メニュー。
- クリックしてコードをArduinoにアップロードします アップロード.
- LEDの例では、LEDがオンとオフになっているのを観察します。ボタンの例では、シリアルモニターの[モニター]ボタン状態。
PCF8575のアプリケーション
- ArduinoプロジェクトのGPIOピンの拡大
- 複雑なLEDマトリックスを構築します
- 複数のセンサーまたはボタン配列の読み取り
- リレーとアクチュエーターの制御
トラブルシューティング
- モジュールからの応答はありません: I2C接続を確認し、構成をアドレスします。
- 一貫性のない測定値: I2Cラインの安定した電源と適切なプルアップ抵抗を確保します。
- 間違ったピン動作: コードのピンモード(入力/出力)を再確認します。
結論
PCF8575 I/O ExpanderとArduinoをインターフェースすることに成功し、16個のGPIOピンを制御または読み取ることができます。さまざまな周辺機器を試して、この汎用性の高いモジュールでプロジェクトを拡大してください!





2件のコメント
Hallo Bruce,
benutze das Library von Renzo Mischianti (kannste nach googlen uind dort auch runterladen) und benenne den Folder in “PCF8575” um. Das Repository von Rob Tillaart hat andere Befehle und passt nicht zu dem o.g. Beispiel.
Ich hoffe das bringt dich weiter.
Gruß
Jochen
I copy the code and get a coplilation error:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void setup()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:11:13: error: ‘class PCF8575’ has no member named ‘pinMode’
pcf8575.pinMode(i, INPUT);
^~~~~~~
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino: In function ‘void loop()’:
C:\Users\Bruce\AppData\Local\Temp\.arduinoIDE-unsaved2025104-14104-1wy2nav.zi0f\sketch_nov4a\sketch_nov4a.ino:19:25: error: ‘class PCF8575’ has no member named ‘digitalRead’
int state = pcf8575.digitalRead(i);
^~~~~~~~~~~
exit status 1
Compilation error: ‘class PCF8575’ has no member named ‘pinMode’