ArduinoでPCF8575 I/O Expanderを使用する方法

How to Use the PCF8575 I/O Expander with Arduino

PCF8575は、I2Cインターフェイスを介してマイクロコントローラーと通信する16ビットI/Oエキスパンダーです。 Arduinoの入出力ピンの数を拡大することができ、多くのセンサー、ボタン、またはLEDを必要とするプロジェクトに最適です。このチュートリアルでは、PCF8575をArduinoと接続および使用することをガイドします。


あなたが必要とするもの

  1. PCF8575 I/O Expanderモジュール
  2. Arduino委員会(例:UNO、MEGA、NANO)
  3. テスト用のセンサー、ボタン、またはLED
  4. ブレッドボードとジャンパーワイヤ
  5. 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

ステップ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」ライブラリをインストールします。

インストールする手順:

  1. Arduino IDEを開きます。
  2. 行きます スケッチ > ライブラリを含めます > ライブラリを管理します.
  3. 「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:セットアップをテストします

  1. USBを介してArduinoをコンピューターに接続します。
  2. Arduino IDEを開き、正しいものを選択します ボード そして ポート の下 ツール メニュー。
  3. クリックしてコードをArduinoにアップロードします アップロード.
  4. LEDの例では、LEDがオンとオフになっているのを観察します。ボタンの例では、シリアルモニターの[モニター]ボタン状態。

PCF8575のアプリケーション

  1. ArduinoプロジェクトのGPIOピンの拡大
  2. 複雑なLEDマトリックスを構築します
  3. 複数のセンサーまたはボタン配列の読み取り
  4. リレーとアクチュエーターの制御

トラブルシューティング

  • モジュールからの応答はありません: I2C接続を確認し、構成をアドレスします。
  • 一貫性のない測定値: I2Cラインの安定した電源と適切なプルアップ抵抗を確保します。
  • 間違ったピン動作: コードのピンモード(入力/出力)を再確認します。

結論

PCF8575 I/O ExpanderとArduinoをインターフェースすることに成功し、16個のGPIOピンを制御または読み取ることができます。さまざまな周辺機器を試して、この汎用性の高いモジュールでプロジェクトを拡大してください!

コメントを残す

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.