PCF8574: gaukite daugiau Arduino prijungimo kaiščių

pcf8574

Galbūt atsidūrėte tokioje situacijoje, kai norėtumėte išplėsti jums prieinamų įėjimų ir išėjimų skaičių arduino lenta, nes vykdote projektą, kuriam reikia daugiau įrenginių nei tikėtasi. Tokiais atvejais galite padaryti tik vieną dalyką, tai yra galvoti apie aukštesnio modelio plokštės su daugiau šių jungčių pirkimą. Bet dabar su PCF8574 gali išplėsti Arduino I / O lengvu ir pigiu būdu.

Čia parodysime, kas yra PCF8574, jei to nežinojote, be to, parodysime, kaip jį galima prijungti prie „Arduino“ plokštės, žingsnis po žingsnio ir kaip jis veikia...

Kas yra PCF8574?

pcf8574

El PCF8574 yra skaitmeninio įvesties ir išvesties (I/O) plėtiklis, skirtas I2C1 magistralei. Šis „Philips“ pagamintas įrenginys leidžia prijungti procesorių, pvz., „Arduino“, kad galėtumėte valdyti daugiau įrenginių naudojant mažiau kontaktų2. PCF8574 turi 8 beveik kryptingus kaiščius, pagrįstus CMOS išėjimais atviroje nutekėjimo konfigūracijoje.

Be to, PCF8574 yra mažos galios įrenginys, kuris palaiko VCC operacijas nuo 2.5 V iki 6 V. Jame yra 8 bitų beveik dvikryptis įvesties / išvesties prievadas, užfiksuoti išėjimai, atvira nutekėjimo pertraukimo išvestis ir didelės srovės valdymo galimybė šviesos diodams. Kita vertus, jo suvartojimas budėjimo režimu yra labai mažas, mažesnis nei 10 µA.

Tai labai naudinga Išplėskite savo Arduino plokštės galimybes už jos ribų, kuri gali būti puiki pagalba kūrėjams, kuriems reikia kažko daugiau nei siūlo Arduino. Didžiausia srovė, kurią gali tiekti kiekvienas kaištis, priklausys nuo konfigūracijos:

  • Kai jis veikia kaip išėjimas, jis yra 25 mA, kai jis veikia kaip kriauklė, tai yra, kai elektros srovė teka į PCF8574. Tai numatytoji konfigūracija.
  • Kai jis veikia kaip šaltinis, jis yra 300 µA, tai yra, kai srovė teka iš PCF8574. Taip pat turite žinoti, kad visi išėjimai turi skląsčius, tai yra, jie patys palaiko būseną registre. Turime veikti tik tada, kai norime pakeisti vieno iš išėjimų būseną.

Bendravimas vyksta per I2C magistralę, todėl lengva gauti duomenis iš prie jo prijungtų įrenginių. Taip pat reikėtų pažymėti, kad jis turi 3 adresų kaiščius, kurie suteikia 8 galimus jungtis prie tos pačios I2C magistralės. Tai reiškia, kad naudojant tik 64 kontaktus galima valdyti 2 įrenginius.

Adreso nustatymai

Kai kuriuose šio PCF8574 modulio modeliuose paprastai yra konfigūracijos kaiščiai ir trumpikliai, tokie kaip tie, kuriuos matote aukščiau esančiame paveikslėlyje. Kita vertus, kituose modeliuose yra jungiklis, kuris palengvina darbą su trimis mikrojungikliais... Kad ir kaip būtų, jie įpratę sukonfigūruoti adresus I/O kaiščių:

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

Kaina ir kur nusipirkti

Galima rasti vos už kelis eurus. Tai įrenginys gana pigus kaip tai gali būti praktiška kai kuriems Arduino modeliams, turintiems mažesnį įėjimų / išėjimų skaičių. Taigi, jei ieškote PCF8574, galite jį rasti specializuotose parduotuvėse arba didelėse internetinėse platformose, tokiose kaip „Amazon“, „Aliexpress“ ar „eBay“. Pavyzdžiui, čia mes rekomenduojame vieną:

PCF8574 prijungimas prie Arduinno

į prijunkite PCF8574 plėtiklį prie savo Arduino plokštės, Ryšio schema yra gana paprasta. Jums reikės tik prisijungti:

  • PCF8574 plokštėje pažymėtas SCL kaištis su Arduino SCL kaiščiu. Šis kaištis gali keistis priklausomai nuo modelio, bet dažniausiai jis yra ant A5 populiaresniuose modeliuose, pvz., UNO.
  • Plėtiklio SDA kaištis turi būti sujungtas su Arduino SDA kaiščiu. Tas pats, ką minėjau aukščiau, jis gali keistis priklausomai nuo modelio, bet paprastai tai yra A4. Jei abejojate, patikrinkite savo modelio kištuką.
  • Žinoma, PCF8574 GND kaištis bus prijungtas prie pažymėto GND ant Arduino, tai yra, tai yra įžeminimo jungtis.
  • Plėtiklio Vcc kaištis yra prijungtas prie Arduino 5V, tokiu būdu su GND ir Vcc jau įjungėme plėtiklio plokštę, kad ji pradėtų veikti.

operacija

Kai PCF8574 prijungtas prie „Arduino“ plokštės, atėjo laikas žinoti kaip tai veikia. Norėdami tai padaryti, turite turėti omenyje, kad galėsite turėti 8 papildomus kaiščius mainais už tai, kad naudojote du Arduino kaiščius, be galingų. Kita vertus, turite kai ką atsiminti, tai yra tai, kad kiekviename iš tų 8 PCF8574 kontaktų turite MOSFET tranzistorių kartu su labai mažo pasipriešinimo traukimo rezistorius. Tai reiškia, kad srovės intensyvumas yra 100 mikroA, kai tranzistorius yra aktyvus.

Ir tai palieka mums tokią panoramą:

  • Konfigūracija kaip išvestis- Kai kaištis naudojamas kaip išėjimas, jis veikia kaip srovės kriauklė, kaip jau aptariau aukščiau, t.y. srovė teka.
    • LOW: Esant žemai įtampai, jis nelaidžia srovės, apkrova = Vdd.
    • AUKŠTA: esant aukštai įtampai, gali praeiti iki 25 mA srovė, apkrova bus prijungta prie GND.
  • Konfigūracija kaip įvestis: jis visada turi būti nustatytas į HIGH, ir tokiu atveju jis veiks kaip šaltinis, tai yra, srovė išteka.
    • Uždaryta: Kai išorinė apkrova nepateikiama, kaiščio įtampa patenka į GND.
    • Atviras: Kai atsiranda išorinė apkrova, kaiščio įtampa tampa Vdd.

Arduino IDE kodas

Arduino IDE, duomenų tipai, programavimas

Jei norite, yra keletas pavyzdžių, kaip sukurti kodą, kad galėtumėte naudoti šį PCF8574 „Arduino“, tai taip paprasta, kaip naudoti šiuos kodo pavyzdžius, kuriuos galite modifikuoti pagal savo poreikius:

  • Konfigūracija kaip išvestis:
#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);
  }
}
  • Konfigūracija kaip įvestis:
#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);
}

Atminkite, kad taip pat galite naudoti biblioteka, sukurta specialiai PCF8574 kuriame taip pat yra praktinių pavyzdžių...


Būkite pirmas, kuris pakomentuos

Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.