PCF8574: få fler anslutningsstift för Arduino

pcf8574

Du kanske har hamnat i en situation där du skulle vilja utöka antalet ingångar och utgångar som är tillgängliga för din arduino styrelse, eftersom du genomför ett projekt som behöver fler enheter än förväntat. I dessa fall kan du bara göra en sak, och det är att tänka på att köpa en bräda av en högre modell med fler av dessa anslutningar. Men nu med PCF8574 kan utöka I/O för Arduino på ett enkelt och billigt sätt.

Här kommer vi att visa dig vad PCF8574 är om du inte visste det, förutom att visa hur det kan anslutas till ditt Arduino-kort förklarat steg för steg och hur det fungerar...

Vad är PCF8574?

pcf8574

El PCF8574 är en digital in- och utgångsexpander (I/O) för I2C1-bussen. Den här enheten, tillverkad av Philips, låter dig ansluta en processor som Arduino för att styra fler enheter med färre stift2. PCF8574 har 8 kvasiriktade stift baserade på CMOS-utgångar i öppen dräneringskonfiguration.

Dessutom är PCF8574 en lågeffektsenhet som stöder VCC-drift från 2.5V till 6V. Den har en 8-bitars kvasi-dubbelriktad I/O-port, låsta utgångar, öppen dräneringsavbrottsutgång och högströmsdrivning för lysdioder. Å andra sidan är dess standby-förbrukning mycket låg, mindre än 10 µA.

Det är mycket användbart för Utöka kapaciteten på ditt Arduino-kort utöver dess gränser, vilket kan vara till stor hjälp för kreatörer som behöver något mer än vad Arduino erbjuder. Den maximala ström som varje stift kan leverera beror på konfigurationen:

  • När den fungerar som en utgång är den 25mA när den fungerar som en disk, det vill säga när den elektriska strömmen flyter till PCF8574. Detta är standardkonfigurationen.
  • När den fungerar som en källa är den 300µA, det vill säga när strömmen flyter från PCF8574. På samma sätt måste du veta att alla utgångar har Latches, det vill säga de upprätthåller tillståndet av sig själva i ett register. Vi behöver bara agera när vi vill modifiera tillståndet för en av utgångarna.

Kommunikationen är klar via I2C-buss, så det är lätt att få data från de enheter som är anslutna till den. Likaså bör det noteras att den har 3 adressstift, vilket ger 8 möjliga anslutningar till samma I2C-buss. Detta innebär att det är möjligt att styra 64 enheter med endast 2 stift.

Adressinställningar

Vissa modeller av denna PCF8574-modul inkluderar vanligtvis konfigurationsstift och byglar som de du ser i bilden ovan. Å andra sidan har andra modeller en strömbrytare som underlättar med de tre mikrobrytarna... Hur som helst så är de vana vid att konfigurera adresser av I/O-stift:

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

Pris och var du kan köpa

Den kan hittas för bara några euro. Det är en enhet ganska billig för hur praktiskt det kan vara för vissa Arduino-modeller som har ett lägre antal I/O. Så om du letar efter en PCF8574 kan du hitta den i specialiserade butiker eller även på stora onlineplattformar som Amazon, Aliexpress eller eBay. Här rekommenderar vi till exempel en:

Ansluter PCF8574 till Arduinno

till anslut PCF8574-expandern till ditt Arduino-kort, Anslutningsschemat är ganska enkelt. Du behöver bara ansluta:

  • SCL-stiftet markerat på PCF8574-kortet till SCL-stiftet på Arduino. Denna stift kan ändras beroende på modell, men är vanligtvis på A5 på de mer populära modellerna som UNO.
  • SDA-stiftet på expandern måste anslutas till SDA-stiftet på Arduino. Samma sak som jag nämnde ovan, det kan ändras beroende på modell, men generellt är det A4. Om du är osäker, kontrollera pinouten på din modell.
  • GND-stiftet på PCF8574 kommer givetvis att kopplas till det som är märkt med GND på Arduino, det vill säga det är jordanslutningen.
  • Vcc-stiftet på expandern är anslutet till 5V på Arduino, på detta sätt, med GND och Vcc har vi redan drivit expanderkortet så att det kan börja fungera.

drift

När PCF8574 är ansluten till Arduino-kortet, nu är det dags att veta hur fungerar det. För att göra detta måste du tänka på att du kommer att kunna ha 8 extra stift, i utbyte mot att ha använt två Arduino-stift, utöver de kraftfulla. Å andra sidan måste du ta hänsyn till något, och det är att på var och en av de 8 stiften på PCF8574 har du en MOSFET-transistor tillsammans med ett mycket lågt resistans pull-up-motstånd. Detta antar en strömstyrka på 100 mikroA när transistorn är aktiv.

Och detta lämnar oss med följande panorama:

  • Konfiguration som utgång– När stiftet används som utgång fungerar det som en strömsänka, som jag har diskuterat ovan, det vill säga ström rinner in.
    • LÅG: Vid låg spänning leder den inte ström, belastning = Vdd.
    • HÖG: vid hög spänning kan upp till 25mA ström passera, kommer lasten att kopplas till GND.
  • Konfiguration som ingång: den måste alltid vara inställd på HÖG, och i detta fall kommer den att fungera som en källa, det vill säga att strömmen rinner ut.
    • Stängd: När den externa belastningen inte ges går spänningen på stiftet till GND.
    • Öppet: När en extern belastning inträffar blir stiftspänningen Vdd.

Arduino IDE-kod

Arduino IDE, datatyper, programmering

Om det du vill ha är några exempel på hur man skapar kod för att använda denna PCF8574 på Arduino, är det så enkelt som att använda dessa kodexempel som du kan modifiera efter dina behov:

  • Konfiguration som utgång:
#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);
  }
}
  • Konfiguration som ingång:
#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);
}

Kom ihåg att du också kan använda bibliotek skapat speciellt för PCF8574 som även innehåller praktiska exempel...


Bli först att kommentera

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.