PCF8575 adalah expander I/O 16-bit yang berkomunikasi dengan mikrokontroler melalui antarmuka I2C. Ini memungkinkan Anda untuk memperluas jumlah pin input/output pada Arduino Anda, menjadikannya sempurna untuk proyek yang membutuhkan banyak sensor, tombol, atau LED. Tutorial ini akan memandu Anda melalui menghubungkan dan menggunakan PCF8575 dengan Arduino.
Apa yang Anda Butuhkan
- PCF8575 Modul Expander I/O
- Dewan Arduino (mis., Uno, mega, nano)
- Sensor, tombol, atau LED untuk pengujian
- Papan tempat memotong papan dan kabel jumper
- Komputer dengan IDE Arduino diinstal
Langkah 1: Memahami Modul PCF8575
PCF8575 menyediakan 16 pin GPIO tambahan yang dapat dikonfigurasi sebagai input atau output. Ini berkomunikasi melalui protokol I2C dan memiliki alamat I2C yang dapat disesuaikan untuk menghubungkan beberapa modul ke bus yang sama.
Pinout
Pin | Fungsi |
---|---|
Vcc | Catu daya (3.3V/5V) |
Gnd | Tanah |
SDA | Jalur data I2C |
Scl | I2C Clock Line |
P0-P15 | Tujuan Umum I/O Pin |
Konfigurasi Alamat I2C
- Alamat I2C ditentukan oleh pin A0, A1, dan A2:
- Semua pin untuk GND:
0x20
(alamat default) - Semua pin ke VCC:
0x27
- Semua pin untuk GND:
Langkah 2: Pengkabelan PCF8575 ke Arduino
Inilah cara menghubungkan PCF8575 ke Arduino:
Pin pcf8575 | Pin Arduino |
---|---|
Vcc | 5v |
Gnd | Gnd |
SDA | A4 (SDA) |
Scl | A5 (SCL) |
Hubungkan periferal Anda (mis., LED atau tombol) ke pin P0-P15.
Catatan: Untuk papan Arduino lainnya, pastikan Anda menggunakan pin I2C yang benar.
Langkah 3: Instal perpustakaan yang diperlukan
Untuk menyederhanakan bekerja dengan PCF8575, instal perpustakaan "PCF8575".
Langkah untuk menginstal:
- Buka Ide Arduino.
- Pergi ke Sketsa > Sertakan perpustakaan > Kelola Perpustakaan.
- Cari "PCF8575" dan klik Memasang.
Langkah 4: Unggah kode
Contoh: Mengontrol LED
Kode ini menunjukkan cara menghidupkan dan mematikan LED menggunakan 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 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);
}
Contoh: Tombol Bacaan
Kode ini menunjukkan cara membaca input dari tombol yang terhubung ke 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);
}
Langkah 5: Uji pengaturan
- Hubungkan Arduino ke komputer Anda melalui USB.
- Buka IDE Arduino dan pilih yang benar Papan Dan Pelabuhan di bawah Peralatan menu.
- Unggah kode ke Arduino dengan mengklik Mengunggah.
- Untuk contoh LED, amati LED menyala dan mati. Untuk contoh tombol, tombol monitor menyatakan di monitor serial.
Aplikasi PCF8575
- Memperluas pin GPIO untuk proyek Arduino
- Membangun Kompleks Matriks LED
- Membaca banyak sensor atau array tombol
- Mengontrol relay dan aktuator
Pemecahan masalah
- Tidak ada tanggapan dari modul: Verifikasi konfigurasi koneksi dan alamat I2C.
- Bacaan yang tidak konsisten: Pastikan catu daya yang stabil dan resistor pull-up yang tepat untuk saluran I2C.
- Perilaku pin yang salah: Mode pin periksa ganda (input/output) dalam kode.
Kesimpulan
Anda telah berhasil menghubungkan expander I/O PCF8575 dengan Arduino, memungkinkan Anda untuk mengontrol atau membaca dari 16 pin GPIO tambahan. Eksperimen dengan periferal yang berbeda dan perluas proyek Anda dengan modul serbaguna ini!