PCF8574: dapatkan lebih banyak pin koneksi untuk Arduino

pcf8574

Anda mungkin menemukan diri Anda dalam situasi di mana Anda ingin memperluas jumlah input dan output yang tersedia bagi Anda papan arduino, karena Anda menjalankan proyek yang memerlukan lebih banyak perangkat daripada yang diharapkan. Dalam kasus ini Anda hanya dapat melakukan satu hal, yaitu mempertimbangkan untuk membeli papan dengan model yang lebih tinggi dengan lebih banyak koneksi ini. Tapi sekarang dengan PCF8574 dapat memperluas I/O Arduino dengan cara yang mudah dan murah.

Di sini kami akan menunjukkan kepada Anda apa itu PCF8574 jika Anda belum mengetahuinya, selain menunjukkan cara menghubungkannya ke papan Arduino Anda, menjelaskan langkah demi langkah dan cara kerjanya...

Apakah PCF8574 itu?

pcf8574

El PCF8574 adalah ekspander input dan output digital (I/O) untuk bus I2C1. Perangkat yang diproduksi oleh Philips ini memungkinkan Anda menghubungkan prosesor seperti Arduino untuk mengontrol lebih banyak perangkat menggunakan lebih sedikit pin2. PCF8574 menggabungkan 8 pin kuasi-arah berdasarkan output CMOS dalam konfigurasi saluran terbuka.

Selain itu, PCF8574 adalah perangkat berdaya rendah yang mendukung operasi VCC dari 2.5V hingga 6V. Dilengkapi dengan port I/O kuasi-dua arah 8-bit, keluaran terkunci, keluaran interupsi saluran terbuka, dan kemampuan mengemudi arus tinggi untuk LED. Di sisi lain, konsumsi stand-by-nya sangat rendah, kurang dari 10 µA.

Ini sangat berguna untuk Perluas kemampuan papan Arduino Anda melampaui batasnya, yang dapat sangat membantu bagi pembuat konten yang membutuhkan lebih dari apa yang ditawarkan Arduino. Arus maksimum yang dapat disuplai setiap pin akan bergantung pada konfigurasi:

  • Ketika bertindak sebagai output, menjadi 25mA ketika bertindak sebagai sink, yaitu ketika arus listrik mengalir ke PCF8574. Ini adalah konfigurasi default.
  • Ketika bertindak sebagai sumber, tegangannya adalah 300µA, yaitu saat arus mengalir dari PCF8574. Demikian pula, Anda harus tahu bahwa semua keluaran memiliki Latches, yaitu, keluaran tersebut mempertahankan statusnya sendiri dalam sebuah register. Kita hanya perlu bertindak ketika kita ingin mengubah keadaan salah satu output.

Komunikasi selesai melalui bus I2C, sehingga mudah untuk memperoleh data dari perangkat yang terhubung dengannya. Demikian pula, perlu dicatat bahwa ia memiliki 3 pin alamat, yang memberikan 8 kemungkinan koneksi ke bus I2C yang sama. Artinya, 64 perangkat dapat dikontrol hanya dengan menggunakan 2 pin.

Pengaturan Alamat

Beberapa model modul PCF8574 ini biasanya menyertakan pin dan jumper konfigurasi seperti yang Anda lihat pada gambar di atas. Di sisi lain, model lain menyertakan sakelar yang membuat segalanya lebih mudah dengan tiga sakelar mikro... Meski begitu, mereka sudah terbiasa konfigurasikan alamat pin I/O:

A0 A1 A2 Alamat
0 0 0 0x20
0 0 1 0x21
0 1 0 0x22
0 1 1 0x23
1 0 0 0x24
1 0 1 0x25
1 1 0 0x26
1 1 1 0x27

Perusahaan precio y dónde

Itu dapat ditemukan hanya dengan beberapa euro. Itu adalah sebuah perangkat cukup murah untuk betapa praktisnya beberapa model Arduino yang memiliki jumlah I/Os lebih rendah. Jadi jika Anda mencari PCF8574, Anda dapat menemukannya di toko khusus atau juga di platform online besar seperti Amazon, Aliexpress atau eBay. Misalnya, di sini kami merekomendasikan satu:

Menghubungkan PCF8574 ke Arduino

untuk sambungkan expander PCF8574 ke papan Arduino Anda, Diagram koneksinya cukup sederhana. Anda hanya perlu menghubungkan:

  • Pin SCL yang ditandai pada papan PCF8574 ke pin SCL Arduino. Pin ini dapat berubah tergantung modelnya, tetapi biasanya terdapat pada A5 pada model yang lebih populer seperti UNO.
  • Pin SDA dari expander harus terhubung dengan pin SDA Arduino. Sama seperti yang saya sebutkan di atas, bisa berubah tergantung modelnya, tapi umumnya A4. Jika ragu, periksa pinout model Anda.
  • Pin GND pada PCF8574 tentunya akan dihubungkan ke pin GND yang bertanda di Arduino, yaitu koneksi ground.
  • Pin Vcc dari expander terhubung ke 5V Arduino, dengan cara ini, dengan GND dan Vcc kami telah memberi daya pada papan expander sehingga dapat mulai bekerja.

operasi

Setelah PCF8574 terhubung ke board Arduino, sekarang saatnya mengetahuinya bagaimana cara kerjanya. Untuk melakukan ini, Anda harus ingat bahwa Anda akan dapat memiliki 8 pin tambahan, sebagai ganti menggunakan dua pin Arduino, selain pin daya. Di sisi lain, Anda harus mempertimbangkan sesuatu, yaitu pada masing-masing 8 pin PCF8574 Anda memiliki transistor MOSFET bersama dengan resistor pull-up resistansi sangat rendah. Ini mengasumsikan intensitas arus 100 mikroA ketika transistor aktif.

Dan ini memberi kita panorama berikut:

  • Konfigurasi sebagai keluaran- Ketika pin digunakan sebagai output, ia bertindak sebagai penyerap arus, seperti yang sudah saya bahas di atas yaitu arus mengalir masuk.
    • RENDAH : Pada tegangan rendah tidak menghantarkan arus, beban = Vdd.
    • TINGGI: bila pada tegangan tinggi, arus dapat lewat hingga 25mA, beban akan dihubungkan ke GND.
  • Konfigurasi sebagai masukan: harus selalu diset ke HIGH, dan dalam hal ini akan bertindak sebagai sumber, yaitu arus yang mengalir keluar.
    • Tutup: Ketika beban luar tidak diberikan, tegangan pada pin menuju ke GND.
    • Buka: Saat terjadi beban luar, tegangan pin menjadi Vdd.

Kode IDE Arduino

Arduino IDE, tipe data, pemrograman

Jika yang Anda inginkan adalah beberapa contoh cara membuat kode untuk menggunakan PCF8574 ini di Arduino, cukup gunakan contoh kode berikut yang dapat Anda modifikasi sesuai kebutuhan Anda:

  • Konfigurasi sebagai keluaran:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  for (short channel = 0; channel < 8; channel++)
  {
    // Escribir dato en canal 'channel'
    Wire.beginTransmission(pcfAddress);
    Wire.write(~(1 << channel));
    Wire.endTransmission();
    
    // Leer dato de canal
    delay(500);
  }
}
  • Konfigurasi sebagai masukan:
#include <Wire.h>

const int pcfAddress = 0x38;

void setup()
{
  Wire.begin();
  Serial.begin(9600);
}

void loop()
{
  short channel = 1;
  byte value = 0;

  // Leer dato de canal 'channel'
  Wire.requestFrom(pcfAddress, 1 << channel);
  if (Wire.available())
  {
    value = Wire.read();
  }
  Wire.endTransmission();

  // Mostrar el valor por puerto serie
  Serial.println(value);
}

Ingatlah bahwa Anda juga dapat menggunakan perpustakaan yang dibuat khusus untuk PCF8574 yang juga mencakup contoh-contoh praktis…


Jadilah yang pertama mengomentari

tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.