PCF8574: nabavite više pinova za povezivanje za Arduino

pcf8574

Možda ste se našli u situaciji u kojoj biste željeli proširiti broj ulaza i izlaza koji su vam dostupni arduino ploča, budući da izvodite projekat za koji je potrebno više uređaja nego što se očekivalo. U ovim slučajevima možete učiniti samo jedno, a to je da razmislite o kupovini ploče višeg modela sa više ovih priključaka. Ali sada sa PCF8574 može proširiti I/O Arduino na jednostavan i jeftin način.

Ovdje ćemo vam pokazati šta je PCF8574 u slučaju da ga niste znali, osim što ćemo pokazati kako se može spojiti na vašu Arduino ploču, objašnjeno korak po korak i kako radi...

Šta je PCF8574?

pcf8574

El PCF8574 je digitalni ulaz i izlaz (I/O) ekspander za I2C1 sabirnicu. Ovaj uređaj, proizveden od strane Philipsa, omogućava vam da povežete procesor kao što je Arduino da kontrolišete više uređaja koristeći manje pinova2. PCF8574 uključuje 8 kvazi-direkcionih pinova baziranih na CMOS izlazima u konfiguraciji otvorenog odvoda.

Štaviše, PCF8574 je uređaj male snage koji podržava VCC operacije od 2.5V do 6V. Poseduje 8-bitni kvazi-dvosmerni I/O port, zaključane izlaze, otvoreni izlaz za prekid odvoda i mogućnost pokretanja velike struje za LED diode. S druge strane, njegova potrošnja u stanju pripravnosti je vrlo niska, manja od 10 µA.

To je vrlo korisno za Proširite mogućnosti vaše Arduino ploče izvan njenih granica, što može biti od velike pomoći kreatorima kojima je potrebno nešto više od onoga što Arduino nudi. Maksimalna struja koju svaki pin može opskrbiti ovisit će o konfiguraciji:

  • Kada djeluje kao izlaz, iznosi 25 mA kada djeluje kao ponor, odnosno kada električna struja teče do PCF8574. Ovo je zadana konfiguracija.
  • Kada djeluje kao izvor, to je 300µA, odnosno kada struja teče iz PCF8574. Isto tako, morate znati da svi izlazi imaju Latches, odnosno da sami održavaju stanje u registru. Moramo djelovati samo kada želimo izmijeniti stanje jednog od izlaza.

Komunikacija je obavljena preko I2C sabirnice, tako da je lako dobiti podatke sa uređaja koji su na njega povezani. Isto tako, treba napomenuti da ima 3 adresna pina, što daje 8 mogućih konekcija na istu I2C magistralu. To znači da je moguće kontrolisati 64 uređaja koristeći samo 2 pina.

Postavke adrese

Neki modeli ovog PCF8574 modula obično uključuju konfiguracijske igle i kratkospojnike poput onih koje vidite na gornjoj slici. S druge strane, drugi modeli imaju prekidač koji olakšava posao sa tri mikroprekidača... Bilo kako bilo, navikli su na konfigurisati adrese I/O pinova:

A0 A1 A2 Adresa
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

Cijena i gdje kupiti

Može se naći za samo nekoliko eura. To je uređaj prilično jeftino koliko praktično može biti za neke Arduino modele koji imaju manji broj I/O. Dakle, ako tražite PCF8574, možete ga pronaći u specijaliziranim trgovinama ili također na velikim online platformama kao što su Amazon, Aliexpress ili eBay. Na primjer, ovdje preporučujemo jednu:

Povezivanje PCF8574 na Arduinno

para povežite PCF8574 ekspander na vašu Arduino ploču, Dijagram povezivanja je prilično jednostavan. Potrebno je samo da se povežete:

  • SCL pin označen na PCF8574 ploči na SCL pin Arduina. Ova igla se može mijenjati ovisno o modelu, ali se obično nalazi na A5 na popularnijim modelima kao što je UNO.
  • SDA pin ekspandera se mora povezati sa SDA pin Arduina. Ista stvar koju sam spomenuo gore, može se mijenjati ovisno o modelu, ali generalno je to A4. Ako ste u nedoumici, provjerite pinout vašeg modela.
  • GND pin PCF8574 će naravno biti povezan sa onim označenim GND na Arduinu, odnosno to je uzemljenje.
  • Vcc pin ekspandera je spojen na 5V Arduina, na ovaj način, sa GND i Vcc smo već napajali ploču ekspandera tako da može početi raditi.

Operacija

Jednom kada je PCF8574 spojen na Arduino ploču, sada je vrijeme da znate Kako to radi. Da biste to učinili, morate imati na umu da ćete moći imati 8 dodatnih pinova, u zamjenu za korištenje dva Arduino pina, pored onih za napajanje. S druge strane, morate imati nešto na umu, a to je da na svakom od tih 8 pinova PCF8574 imate MOSFET tranzistor zajedno sa vrlo malim otpornikom za povlačenje. Ovo pretpostavlja jačinu struje od 100 mikroA kada je tranzistor aktivan.

I to nam ostavlja sljedeću panoramu:

  • Konfiguracija kao izlaz- Kada se pin koristi kao izlaz, on se ponaša kao ponor struje, kao što sam već rekao, tj. struja teče unutra.
    • LOW: Kada je na niskom naponu, ne provodi struju, opterećenje = Vdd.
    • VISOKO: kada na visokom naponu može proći struja do 25 mA, opterećenje će biti spojeno na GND.
  • Konfiguracija kao ulaz: uvijek mora biti postavljeno na HIGH, iu ovom slučaju će djelovati kao izvor, odnosno struja će teći.
    • Zatvoreno: Kada vanjsko opterećenje nije dato, napon na pinu ide na GND.
    • Otvori: Kada dođe do vanjskog opterećenja, napon na pinu postaje Vdd.

Arduino IDE kod

Arduino IDE, tipovi podataka, programiranje

Ako ono što želite su neki primjeri kako kreirati kod za korištenje ovog PCF8574 na Arduinu, to je jednostavno kao korištenje ovih primjera koda koje možete modificirati prema svojim potrebama:

  • Konfiguracija kao izlaz:
#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);
  }
}
  • Konfiguracija kao ulaz:
#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);
}

Zapamtite da možete koristiti i biblioteka kreirana posebno za PCF8574 koji uključuje i praktične primjere...


Budite prvi koji komentarišete

Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.