PCF8574: Bahin sa I2C I / O Expander alang sa Arduino

PCF8574 TI CHIP

Nakadungog gyud ka sa IC PCF8574, usa ka chip nga mapalit nga gilain o nakabitay na sa usa ka module sama sa daghan pa Mga sangkap sa elektronik aron mapadali ang imong paghiusa sa imong Arduino board. Sa kini nga kaso, kini usa ka extender sa mga input ug output alang sa ang I2C bus.

Mahunahuna nimo nga ang Arduino adunay na kaugalingon integrated I2C bus, ug kini tinuod. Apan ang PCF8574 mahimong makatabang sa pagpalugway sa bus nga lapas sa mga limitasyon sa imong development board, nga mahimo’g dako nga tabang sa pipila nga naghimo nga nanginahanglan labaw pa sa gihatag sa Arduino.

Unsa man ang I2C bus?

Arduino UNO millis function

Ang ngalan nga I2C naggikan Inter-Integrated nga Circuit o mga inter-integrated circuit. Ang bersyon niini nga 1.0 gimugna kaniadtong 1992 sa Philips. Pagkahuman usa ka segundo 2.1 moabut sa 2000 ug karon kini nahimo nga usa ka sukaranan (sa 100 kbit / s, bisan kung kini nagtugot hangtod sa 3.4 Mbit / s nga maximum) kung ang patente natapos sa 2006 ug mahimong magamit nga gawasnon.

Karon, kini kaylap nga gigamit sa industriya alang sa komunikasyon, ug labi usab nga gipasalamatan sa mga naghimo alang sa ilang mga proyekto aron makigsulti sa lainlaing mga microcontroller ug peripheral nga gihiusa sa usa ka IC.

El Ang I2C usa ka bus naila gikan sa serial nga komunikasyon. Naggamit kini usa ka managsama nga protocol sa komunikasyon nga adunay 2 ra nga agianan (adunay ikatulo, apan giupod kini sa pakisayran o GND), sa tinuud kini nailhan usab nga TWI (Two Wire Interface):

  • Usa alang sa orasan (SCL).
  • Ang uban pa alang sa datos (SDA).
Parehas nga abli ang mga koneksyon sa CMOS ug nagkinahanglan mga resistors nga pull-up. Ingon usab, kung ang usa ka aparato nagpadala usa ka 0 ug lain ang usa nga 1, mahimong adunay mga problema, kana ang hinungdan nga ang linya kanunay nga gitakda sa 1 (taas nga lebel) ug ang mga aparato kanunay magpadala 0 (ubos nga lebel).

Kana nagpasabut nga ang agalon ug ulipon nagpadala sila datos sa parehas nga cable o track, nga gikontrol sa una nga mao ang naghimo sa signal sa orasan. Ang matag usa sa mga peripheral device nga konektado sa I2C bus adunay usa ka talagsaon nga adres nga gitudlo, aron madumala ang mga transmisyon. Apan dili kinahanglan nga ang agalon kanunay parehas (multi-master), kanunay siya ang nagpasiugda sa pagbalhin.

Ingon sa gipatin-aw ko na sa artikulo sa Arduino I2C Nag-refer ako kaniadto, ang matag board adunay kini nga mga koneksyon sa I2C sa lainlaing mga lugar. Kini usa ka butang nga kinahanglan nimo nga hinumduman nga magamit kini sa husto nga paagi sa matag bersyon sa plate:

Nahibal-an na nimo nga mahimo nimo gamiton ang I2C alang sa imong mga sketch nga dali, tungod kay ang Wire.h librarya nga adunay lainlaing mga gimbuhaton alang sa kini nga serial nga komunikasyon:

  • magsugod (): pagsugod sa Wire library ug ipiho kung kini agalon o ulipon
  • hangyoFrom (): gigamit sa agalon aron mangayo datos gikan sa ulipon.
  • pagsugod sa Pagbalhin (): pagsugod sa pagbalhin sa ulipon.
  • endTransmission (): pagtapos sa pagpadala.
  • isulat ()- Pagsulat datos gikan sa usa ka ulipon agig tubag sa usa ka hangyo gikan sa agalon, o mahimo ka maglinya sa pagpadala sa agalon.
  • magamit (): ibalik ang ihap sa mga byte aron mabasa.
  • basaha (): basaha ang usa ka byte nga gibalhin gikan sa usa ka ulipon ngadto sa agalon o vice versa.
  • saMadawat (): Nagtawag us aka gimbuhaton kung ang usa ka ulipon nakadawat usa ka pagpadala gikan sa agalon.
  • onRequest (): Nagtawag us aka gimbuhaton kung ang usa ka ulipon nangayo datos gikan sa agalon.

sa dugang kasayuran bahin sa Arduino nga programa ug gimbuhaton mahimo nimo ma-download ang among PDF nga panudlo.

Unsa ang PCF8574?

Modul sa PCF8574

Ang PCF8574 usa ka Ang I2C bus digital input ug output (I / O) expander. Mahimo kini nga gigama sa lainlaing mga tiggama, dugang sa pagbaton niini nga magamit sa mga IC ug modyul. Sa bisan unsang kaso, praktikal kaayo nga ikonekta kini sa imong Arduino board ug adunay kapasidad nga makontrol ang daghang mga aparato kaysa gitugotan sa motherboard.

El PCF8574 pinout kini yano, tungod kay nag-upod ra kini 8 nga mga pine quasidirectional (P0-P7 diin ang mga chips aron makigsulti konektado), ug sa pikas nga bahin adunay ka sa SDA ug SCL nga kinahanglan nimo nga makonektar sa Arduino board, ingon man VCC ug GND aron usab mapadagan ang modyul. Ug ayaw kalimti ang tulo nga nagpunting sa mga pin nga A0, A1, A2 aron mapili kung kinsa sa mga aparato nga gitumong ang komunikasyon sa ...

Ang pinout sa PCF8574

Tag-iya uban pang mga bahin nga kinahanglan nimo mahibal-an:

  • Ang mga koneksyon niini, ingon usa ka bukas nga kanal, mahimo nga gigamit parehas nga mga input ug output.
  • La kinatumyan karon 25mA kini kung kini molihok ingon usa ka output (sink, kung ang karon nagaagay padulong sa PCF8574) ug 300 µA (gigikanan, karon nga nagaagay gikan sa PCF8574).
  • La tensiyon ang suplay sa kuryente 2.5 ug 6v. Ang stand-by nga konsumo mubu kaayo, 10 µA ra.
  • Tanan nga output adunay mga latches, aron mapadayon ang estado nga dili kinahanglan ang mga panggawas nga aksyon. Kinahanglan ka ra nga molihok kung gusto nimo usbon ang estado.
  • Mahimo ka makakuha 8 posible nga mga direksyon, kana mao, hangtod sa 8 nga mga aparato aron makigsulti o naggamit 8 nga mga modyul aron mapalapdan kini hangtod sa 64 nga mga aparato. Ang mga adres (mga pin A0, A1, A2) mao ang:
    • 000: adres 0x20
    • 001: adres 0x21
    • 010: adres 0x22
    • 011: adres 0x23
    • 100: adres 0x24
    • 101: adres 0x25
    • 110: adres 0x26
    • 111: adres 0x27
  • Giangkon pagkabalda (INT) pinaagi sa usa ka espesyal nga linya aron mahibal-an ang datos nga wala padayon nga pagmonitor.

Pag-uban sa Arduino

Screenshot sa Arduino IDE

Ang koneksyon sa Arduino yano kaayo, kinahanglan nimo nga ikonekta ang Vcc sa 5v pin sa Arduino board, ug GND sa GND sa Arduino. Sa laing bahin, ang mga lagdok sa PCF8574 SDA ug SCL module mahimo pagkonektar sa mga lagdok 14 (A5 SCL) ug 15 (A4 SDA). Lamang sa kini magsugod sa pagtrabaho, klaro nga mahimo nimo gamiton ang Px aron makonektar ang mga aparato nga gusto nimo ipahibalo ...

Pagkahuman nawala ra kini magsugod sa usa ka pananglitan nga sketch sa Arduino IDE. Mahimo nimo kini nga wala mogamit dugang nga librarya sama sa ...

#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);
   }
}

Ingon input:

#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);
}

O usab paggamit libraries, sama sa PCF8574 nga mahimo nimo download dinhi ug gamiton ang code nga parehas niini gikan sa pananglitan mismo nga kauban sa librarya:

#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() 
{
}


Ang sulud sa artikulo nagsunod sa among mga prinsipyo sa pamatasan sa editoryal. Aron magreport usa ka pag-klik sa sayup dinhi.

Himoa ang una nga makomentaryo

Biyai ang imong komentaryo

Ang imong email address dili nga gipatik. Gikinahanglan kaumahan mga gimarkahan sa *

*

*

  1. Responsable sa datos: Miguel Ángel Gatón
  2. Katuyoan sa datos: Kontrolaha ang SPAM, pagdumala sa komento.
  3. Legitimation: Ang imong pagtugot
  4. Komunikasyon sa datos: Ang datos dili ipahibalo sa mga ikatulong partido gawas sa ligal nga obligasyon.
  5. Pagtipig sa datos: Ang database nga gidumala sa Occentus Networks (EU)
  6. Mga Katungod: Sa bisan unsang oras mahimo nimong limitahan, bawion ug tanggalon ang imong kasayuran.