PCF8574: Malunga ne-I2C I / O Yandisa iArduino

Inkcazo: PCF8574 TI CHIP

Ngokuqinisekileyo uvile nge Inkcazo: IC PCF8574, i-chip enokuthengwa ngokwahlukeneyo okanye esele inyuswe kwimodyuli njengabanye abaninzi Izinto zombane ukuququzelela ukudityaniswa kwakho nebhodi yakho yeArduino. Kule meko, sisongezo segalelo kunye neziphumo ze Ibhasi ye-I2C.

Unokucinga ukuba iArduino sele inayo eyayo I-I2C ibhasi edibeneyo, kwaye kuyinyani. Kodwa i-PCF8574 inokunceda ukwandisa loo bhasi ngaphaya kwemida yebhodi yakho yophuhliso, enokuba luncedo olukhulu kwabanye abenzi abafuna ngaphezulu kokubonelelwa yiArduino.

Yintoni ibhasi ye-I2C?

Arduino UNO imisebenzi yemillis

Igama I2C livela Isekethe edibeneyo okanye iisekethe ezidityanisiweyo. Inguqulelo yayo engu-1.0 yenziwa ngo-1992 nguPhilips. Emva koko i-2.1 yesibini yayiza kufika ngo-2000 kwaye namhlanje ibe yinto esemgangathweni (kwi-100 kbit / s, nangona ivumela ukuya kuthi ga kwi-3.4 Mbit / s ubuninzi) xa ipatent iphelelwe lixesha ngo-2006 kwaye inokusetyenziswa ngokukhululekileyo.

Okwangoku isetyenziswa ngokubanzi kolu shishino zonxibelelwano, Kananjalo baxatyiswa kakhulu ngabenzi beeprojekthi zabo zokunxibelelana nabalawuli bezinto ezahlukeneyo kunye nemida edityaniswe kwi-IC enye.

El I2C ibhasi unxibelelwano oludumileyo lwe serial. Isebenzisa inkqubo yokunxibelelana ngokuhambelana kunye namajelo ama-2 kuphela (kukho isithathu, kodwa idityaniswe nesalathiso okanye i-GND), eneneni ikwabizwa ngokuba yi-TWI (ezimbini zeFayile ujongano):

  • Inye yewotshi (i-SCL).
  • Enye idatha (SDA).
Zombini ziindawo ezivulekileyo zokunxibelelana kwe-CMOS kwaye zifuna ukuxhathisa. Ngapha koko, ukuba isixhobo esinye sidlulisa i-0 size esinye sibe ngu-1, kunokubakho iingxaki, yiyo loo nto umgca uhlala usetelwe kwi-1 (inqanaba eliphezulu) kwaye izixhobo zihlala zihambisa i-0 (inqanaba eliphantsi).

Oko kuthetha ukuba inkosi kunye nekhoboka bathumela idatha ngentambo enye okanye umkhondo, olawulwa yeyokuqala evelisa uphawu lwewotshi. Isixhobo ngasinye esine-peripheral esiqhagamshelwe kwibhasi ye-I2C siya kuba nedilesi eyahlukileyo eyabelweyo, ukuze kuhanjiswe ukuhanjiswa. Kodwa akuyomfuneko ukuba utitshala asoloko efanayo (utitshala-emininzi), uhlala enguye oqala ukutshintshelwa.

Njengoko sele ndichazile kwinqaku IArduino I2C Ndikhankanyile ngaphambili, ibhodi nganye inonxibelelwano lwe-I2C kwiindawo ezahlukeneyo. Yinto ekufuneka uyigcinile engqondweni ukuze ukwazi ukuyisebenzisa ngokufanelekileyo kuhlobo ngalunye lweplate:

  • Arduino UNO: I-SDA ikwi-A4 kunye ne-SCK kwi-A5
  • UArduino Nano: efanayo neyangaphambili.
  • Inkqubo yeArduino Mini: ngokufanayo.
  • UArduino Mega: I-SDA ikwi-pin 20 kunye ne-SCK ngama-21.
  • Ulwazi oluthe kratya malunga neepleyiti.

Sele uyazi ukuba ungasebenzisa i-I2C kwimizobo yakho ngokulula, kuba Ithala leencwadi leWire.h ngemisebenzi eyahlukeneyo yokunxibelelana ngokulandelelana:

  • qala (): qala ilayibrari ye-Wire kwaye ucacise ukuba iyinkosi okanye ikhoboka
  • isiceloFrom (): isetyenziswe yinkosi ukucela idatha kwikhoboka.
  • Qalisa ukuhambisa (): Qalisa ukuhambisa ngekhoboka.
  • Ungeniso lokuphela (): ukudluliselwa kokuphela.
  • bhala ()-Bhala idatha ukusuka kwikhoboka ekuphenduleni kwisicelo esivela enkosini okanye unokuma emgceni wokudlulisa inkosi
  • iyafumaneka (): iya kubuyisa inani lee-byte lokufunda.
  • funda (): funda i-byte ehanjiswa ukusuka kwikhoboka ukuya kwinkosi okanye ngokuchaseneyo.
  • Fumana ()Ibiza umsebenzi xa ikhoboka lifumana ugqithiso kwinkosi.
  • ngesicelo ()Ukubiza umsebenzi xa ikhoboka licela idatha kwinkosi.

ukuba olunye ulwazi Malunga neprogram yeArduino kunye nemisebenzi onokuzikhuphelela eyethu Isifundo sePDF.

Yintoni i-PCF8574?

Imodyuli yePCF8574

I-PCF8574 yi Igalelo ledijithali yebhasi kunye neziphumo (I / O) zandisa. Inokwenziwa ngabakhiqizi abahlukeneyo, ukongeza ekufumaneni kwayo ii-ICs kunye neemodyuli. Ngayiphi na imeko, kuyenzeka ukuba uyixhume kwibhodi yakho yeArduino kwaye ube namandla okulawula izixhobo ezingaphezulu kwebhodi yomama evumayo.

El I-PCF8574 ikhonkco ilula, kuba ibandakanya kuphela Iiplini ze8 I-quasi-directional (P0-P7 apho iichips zonxibelelwano zidityanisiwe), kwaye kwelinye icala unayo i-SDA kunye ne-SCL ekufuneka uyixhume kwibhodi ye-Arduino, kunye ne-VCC kunye ne-GND ukunika amandla imodyuli. Kwaye ungalibali izikhonkwane zedilesi ezintathu u-A0, A1, A2 ukukhetha ezona zixhobo zonxibelelwano zijolise ...

I-PCF8574 ikhonkco

Own nezinye izinto ukuze uyazi:

  • Unxibelelwano lwayo, ukuba ngumsele ovulekileyo, inokuba njalo isetyenziswe zombini njengongeniso neziphumo.
  • La incopho yangoku yi-25mA xa isebenza njengokuphuma (isink, xa ukugeleza ngoku kuya kwi-PCF8574) kunye ne-300 µA (umthombo, ukuhamba ngoku okuvela kwi-PCF8574).
  • La uxinzelelo Ukunikezelwa kwamandla yi-2.5 kunye ne-6v. Ukusetyenziswa kokuma kusezantsi kakhulu, kuphela yi-10 µA.
  • Zonke iziphumo banezitishi, ukugcina urhulumente ngaphandle kwemfuneko yezenzo zangaphandle. Kuya kufuneka wenze kuphela xa ufuna ukutshintsha ilizwe.
  • Unokufumana i-8 izikhokelo, Oko kukuthi, ukuya kuthi ga kwizixhobo ezisi-8 ukunxibelelana okanye ukusebenzisa iimodyuli ezi-8 ukuzandisa ukuya kuthi ga kwizixhobo ezingama-64. Iidilesi (izikhonkwane A0, A1, A2) ziya kuba zezi:
    • 000: idilesi 0x20
    • 001: idilesi 0x21
    • 010: idilesi 0x22
    • 011: idilesi 0x23
    • 100: idilesi 0x24
    • 101: idilesi 0x25
    • 110: idilesi 0x26
    • 111: idilesi 0x27
  • Iyavuma ukuphazamiseka (INT) ngomgca okhethekileyo ukufumana idatha ngaphandle kokubeka iliso rhoqo.

Umdibaniso neArduino

Iscreen seArduino IDE

Unxibelelwano neArduino lulula kakhulu, kuya kufuneka unxibelelane neVcc kunye ne-5v pin yebhodi yeArduino, kunye ne-GND kunye ne-GND yeArduino. Kwelinye icala, izikhonkwane zePCF8574 SDA kunye nemodyuli ye-SCL inokuba njalo qhagamshela ngezikhonkwane I-14 (A5 SCL) kunye ne-15 (A4 SDA). Kuphela yile nto iya kuqala ukusebenza, ngokucacileyo ungasebenzisa iPx ukudibanisa izixhobo ofuna ukunxibelelana nazo ...

Emva koko iya kuba ilahlekile kuphela qala ngomzekelo womzobo kwiArduino IDE. Ungayenza ngaphandle kokusebenzisa ithala leencwadi elongezelelweyo njenge ...

#include <Wire.h>
 
const int address = 0x38;
 
void setup()
{
   Wire.begin();
   Serial.begin(9600);
}
 
void loop()
{
   for (short channel = 0; channel < 8; channel++)
   {
      // Escribir dato en cada uno de los 8 canales
      Wire.beginTransmission(address);
      Wire.write(~(1 << channel));
      Wire.endTransmission();
      
      // Lee dato del canal
      delay(500);
   }
}

Njengegalelo:

#include <Wire.h>
 
const int address = 0x38;
 
void setup()
{
   Wire.begin();
   Serial.begin(9600);
}
 
void loop()
{
   short channel = 1;
   byte value = 0;
 
   // Leer el dato del canal
   Wire.requestFrom(pcfAddress, 1 << channel);
   if (Wire.available())
   {
      value = Wire.read();
   }
   Wire.endTransmission();
 
   // Mostrar el valor leido por el monitor serie
   Serial.println(value);
}

Okanye Sebenzisa amathala eencwadi, njengePCF8574 onokuyenza khuphela apha kwaye usebenzise ikhowudi efanayo nale kumzekelo ngokwawo oza neli thala leencwadi:

#include <Wire.h>
#include "PCF8574.h"
 
PCF8574 expander;
 
void setup() 
{
  Serial.begin(9600);
  
  expander.begin(0x20);
  
  /* Setup some PCF8574 pins for demo */
  expander.pinMode(0, OUTPUT);
  expander.pinMode(1, OUTPUT);
  expander.pinMode(2, OUTPUT);
  expander.pinMode(3, INPUT_PULLUP);
 
  /* Blink hardware LED for debug */
  digitalWrite(13, HIGH);  
  
  /* Toggle PCF8574 output 0 for demo */
  expander.toggle();
  
  /* Blink hardware LED for debug */
  digitalWrite(13, LOW);
}
 
 
 
void loop() 
{
}


Yiba ngowokuqala ukuphawula

Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.