PCF8574: få flere forbindelsesben til Arduino

pcf8574

Du har måske befundet dig i en situation, hvor du gerne vil udvide antallet af input og output til din rådighed arduino bord, da du udfører et projekt, der kræver flere enheder end forventet. I disse tilfælde kunne du kun gøre én ting, og det er at tænke på at købe et board af en højere model med flere af disse forbindelser. Men nu med PCF8574 kan udvide I/O i Arduino på en nem og billig måde.

Her vil vi vise dig, hvad PCF8574 er, hvis du ikke vidste det, udover at vise, hvordan det kan forbindes til dit Arduino-kort forklaret trin for trin, og hvordan det virker...

Hvad er PCF8574?

pcf8574

El PCF8574 er en digital input og output (I/O) ekspander til I2C1 bussen. Denne enhed, der er fremstillet af Philips, giver dig mulighed for at tilslutte en processor såsom Arduino for at styre flere enheder ved hjælp af færre ben2. PCF8574 inkorporerer 8 kvasi-direktionelle ben baseret på CMOS-udgange i åben afløbskonfiguration.

Ydermere er PCF8574 en enhed med lavt strømforbrug, der understøtter VCC-drift fra 2.5V til 6V. Den har en 8-bit kvasi-tovejs I/O-port, låste udgange, åben drain-afbrydelsesudgang og højstrømsdrift for LED'er. På den anden side er dets standby-forbrug meget lavt, mindre end 10 µA.

Det er meget nyttigt til Udvid mulighederne på dit Arduino-kort ud over dets grænser, hvilket kan være en stor hjælp for skabere, der har brug for noget mere, end hvad Arduino tilbyder. Den maksimale strøm, som hver pin kan levere, afhænger af konfigurationen:

  • Når den fungerer som en udgang, er den 25mA, når den fungerer som en vask, det vil sige når den elektriske strøm løber til PCF8574. Dette er standardkonfigurationen.
  • Når den fungerer som en kilde, er den 300µA, det vil sige når strømmen løber fra PCF8574. Ligeledes skal du vide, at alle udgange har Latches, det vil sige, at de vedligeholder tilstanden af ​​sig selv i et register. Vi skal kun handle, når vi ønsker at ændre tilstanden af ​​en af ​​udgangene.

Kommunikation er udført via I2C bus, så det er nemt at få data fra de enheder, der er tilsluttet den. Ligeledes skal det bemærkes, at den har 3 adresseben, hvilket giver 8 mulige forbindelser til samme I2C bus. Det betyder, at det er muligt at styre 64 enheder med kun 2 ben.

Adresseindstillinger

Nogle modeller af dette PCF8574-modul inkluderer normalt konfigurationsstifter og jumpere som dem, du ser på billedet ovenfor. På den anden side har andre modeller en switch, der gør tingene nemmere med de tre mikroswitches... Hvorom alting er, så er de vant til at konfigurere adresser af I/O-ben:

A0 A1 A2 Adresse
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 og hvor man kan købe

Den kan findes for blot et par euro. Det er en enhed ret billig for hvor praktisk det kan være for nogle Arduino-modeller, der har et lavere antal I/O'er. Så hvis du leder efter en PCF8574, kan du finde den i specialbutikker eller også på store online platforme som Amazon, Aliexpress eller eBay. For eksempel anbefaler vi her en:

Tilslutning af PCF8574 til Arduinno

til tilslut PCF8574-udvidelsen til dit Arduino-kort, Tilslutningsdiagrammet er ret simpelt. Du skal kun forbinde:

  • SCL-stiften markeret på PCF8574-kortet til SCL-stiften på Arduino. Denne pin kan ændre sig afhængigt af modellen, men er normalt på A5 på de mere populære modeller som UNO.
  • SDA-stiften på expanderen skal forbindes med SDA-stiften på Arduino. Det samme som jeg nævnte ovenfor, det kan ændre sig afhængigt af modellen, men generelt er det A4. Hvis du er i tvivl, så tjek pinoutet på din model.
  • GND-pinden på PCF8574 vil naturligvis være forbundet med den, der er mærket GND på Arduino, det vil sige, at det er jordforbindelsen.
  • Vcc-stiften på expanderen er forbundet til 5V på Arduino, på denne måde har vi med GND og Vcc allerede forsynet udviderkortet, så det kan begynde at virke.

drift

Når først PCF8574 er forbundet til Arduino-kortet, er det nu tid til at vide det hvordan virker det. For at gøre dette skal du huske på, at du vil kunne have 8 ekstra stifter, mod at have brugt to Arduino stifter, udover de power. På den anden side skal man tage højde for noget, og det er, at man på hver af de 8 ben på PCF8574 har en MOSFET transistor sammen med en pull-up modstand med meget lav modstand. Dette forudsætter en strømintensitet på 100 mikroA, når transistoren er aktiv.

Og dette efterlader os med følgende panorama:

  • Konfiguration som output- Når stiften bruges som udgang, fungerer den som en strømsænke, som jeg har diskuteret ovenfor, det vil sige, at der løber strøm ind.
    • LAV: Ved lav spænding leder den ikke strøm, belastning = Vdd.
    • HØJ: når der ved højspænding kan passere op til 25mA strøm, vil belastningen blive forbundet til GND.
  • Konfiguration som input: den skal altid være indstillet til HIGH, og i dette tilfælde vil den fungere som en kilde, det vil sige, at strømmen løber ud.
    • Lukket: Når den eksterne belastning ikke er givet, går spændingen på stiften til GND.
    • åbent: Når der opstår en ekstern belastning, bliver benspændingen Vdd.

Arduino IDE-kode

Arduino IDE, datatyper, programmering

Hvis det, du ønsker, er nogle eksempler på, hvordan du opretter kode for at bruge denne PCF8574 på Arduino, er det så simpelt som at bruge disse kodeeksempler, som du kan ændre efter dine behov:

  • Konfiguration som output:
#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 input:
#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);
}

Husk at du også kan bruge bibliotek oprettet specielt til PCF8574 som også indeholder praktiske eksempler...


Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.