PCF8574: Nipa I2C I / O Expander fun Arduino

PCF8574 TI IPrún

Ti o ti sọ nit surelytọ gbọ ti awọn IC PCF8574, chiprún ti o le ra ni lọtọ tabi ti tẹlẹ gbe sori module bi ọpọlọpọ awọn miiran Awọn irinše itanna lati dẹrọ isopọmọ rẹ pẹlu igbimọ Arduino rẹ. Ni ọran yii, o jẹ amugbooro ti awọn igbewọle ati awọn ọnajade fun akero I2C.

O le ro pe Arduino ti ni tirẹ tẹlẹ ese I2C akero, ati pe o jẹ otitọ. Ṣugbọn PCF8574 le ṣe iranlọwọ lati fa ọkọ akero naa kọja awọn opin ti igbimọ idagbasoke rẹ, eyiti o le jẹ iranlọwọ nla si diẹ ninu awọn oluṣe ti o nilo diẹ sii ju ohun ti Arduino pese lọ.

Kini akero I2C?

Arduino UNO awọn iṣẹ millis

Orukọ I2C wa lati Inter-Ese Circuit tabi awọn iyika ti a ṣepọ. Ẹya rẹ ti 1.0 ni a ṣẹda ni ọdun 1992 nipasẹ Philips. Lẹhinna 2.1 keji yoo wa ni ọdun 2000 ati loni o ti di boṣewa (ni 100 kbit / s, botilẹjẹpe o gba laaye to 3.4 Mbit / s o pọju) nigbati itọsi naa pari ni ọdun 2006 o le ṣee lo larọwọto.

Ni lọwọlọwọ o ti lo ni lilo ni ile-iṣẹ naa fun ibaraẹnisọrọ.

El I2C jẹ ọkọ akero kan daradara mọ lati ibaraẹnisọrọ ni tẹlentẹle. O nlo ilana ibanisọrọ amuṣiṣẹpọ pẹlu awọn ikanni 2 nikan (ẹkẹta wa, ṣugbọn o jẹ pọ lati tọka tabi GND), ni otitọ o tun mọ ni TWI (Ọlọpọọmídíà Meji Meji):

  • Ọkan fun aago (SCL).
  • Omiiran fun data (SDA).
Awọn mejeeji jẹ ṣiṣi ṣiṣan ṣiṣan ṣiṣan CMOS ati beere awọn alatako fifa soke. Pẹlupẹlu, ti ẹrọ kan ba n tan 0 ati omiiran kan 1, awọn iṣoro le wa, iyẹn ni idi ti a ṣeto laini nigbagbogbo si 1 (ipele giga) ati awọn ẹrọ nigbagbogbo n tan 0 (ipele kekere).

Iyẹn tumọ si pe oluwa ati eru wọn fi data ranṣẹ lori okun kanna tabi orin, eyiti o jẹ iṣakoso nipasẹ akọkọ ti o jẹ ọkan ti o ṣe ifihan agbara aago. Ọkọọkan ninu awọn ẹrọ agbeegbe ti o sopọ si ọkọ akero I2C yoo ni adirẹsi alailẹgbẹ ti a yan, lati tọ awọn gbigbe lọ. Ṣugbọn ko ṣe dandan pe oluwa jẹ nigbagbogbo kanna (olona-oluwa), o jẹ igbagbogbo ẹniti o bẹrẹ gbigbe.

Gẹgẹbi Mo ti ṣalaye tẹlẹ ninu nkan ọrọ lori Arduino I2C Mo ti tọka tẹlẹ, igbimọ kọọkan ni awọn asopọ I2C wọnyi ni awọn aaye oriṣiriṣi. O jẹ nkan ti o ni lati ni lokan lati ni anfani lati lo daradara ni ẹya kọọkan ti awo:

  • Arduino UNO: SDA wa ni A4 ati SCK ni A5
  • Arduino Nano: kanna bii ti iṣaaju.
  • Arduino Mini Pro: kanna.
  • Arduino Mega: SDA wa lori pin 20 ati SCK lori 21.
  • Alaye siwaju sii nipa awọn awo.

O ti mọ tẹlẹ pe o le lo I2C fun awọn aworan afọwọya rẹ ni rọọrun, niwon awọn Wire.h ìkàwé pẹlu awọn iṣẹ pupọ fun ibaraẹnisọrọ ni tẹlentẹle yii:

  • berè (): bẹrẹ ile-ikawe Waya ki o ṣọkasi boya o jẹ oluwa tabi ẹrú
  • beere Lati (): lo nipasẹ oluwa lati beere data lati ọdọ ẹrú naa.
  • ibere Gbigbe (): bẹrẹ gbigbe pẹlu ẹrú.
  • ipari Gbigbe (): opin gbigbe.
  • Kọ ()- Kọ data lati ọdọ ẹrú ni idahun si ibeere lati ọdọ oluwa, tabi o le ṣe isinyi gbigbe oluwa kan.
  • wa (): yoo da nọmba awọn baiti pada lati ka.
  • ka (): ka baiti ti a gbejade lati ọdọ ẹrú si oluwa tabi ni idakeji.
  • Gba (): Pe awọn iṣẹ kan nigbati ọmọ-ọdọ gba igbasilẹ lati ọdọ oluwa kan.
  • Ibeere (): Pe iṣẹ kan nigbati ẹrú beere data lati ọdọ oluwa kan.

para alaye diẹ sii nipa siseto Arduino ati awọn iṣẹ o le ṣe igbasilẹ wa PDF Tutorial.

Kini PCF8574?

PCF8574 modulu

PCF8574 jẹ a Awọn igbewọle oni nọmba I2C akero ati awọn ọnajade (I / O) expander. O le ṣe nipasẹ ọpọlọpọ awọn aṣelọpọ, ni afikun si nini rẹ ni awọn IC ati awọn modulu. Ni eyikeyi idiyele, o wulo pupọ lati sopọ mọ si igbimọ Arduino rẹ ati ni agbara lati ṣakoso awọn ẹrọ diẹ sii ju modaboudu gba laaye.

El PCF8574 pinout O rọrun, nitori o pẹlu pẹlu nikan 8 pines itọsọna quasi-itọsọna (P0-P7 nibiti awọn eerun lati ṣe ibaraẹnisọrọ ti sopọ), ati ni apa keji o ni SDA ati SCL ti o gbọdọ sopọ si igbimọ Arduino, bii VCC ati GND lati tun ṣe agbara module naa. Maṣe gbagbe awọn pinni adirẹsi mẹta A0, A1, A2 lati yan eyi ti awọn ẹrọ ti ibaraẹnisọrọ ni itọsọna si ...

PCF8574 pinout

Awọn oniwun awọn ẹya miiran pe o yẹ ki o mọ:

  • Awọn isopọ rẹ, jẹ ṣiṣan ṣiṣi, le jẹ lo mejeeji bi awọn igbewọle ati awọn ọnajade.
  • La tente oke lọwọlọwọ o jẹ 25mA nigbati o ba ṣiṣẹ bi iṣujade (rii, nigbati ṣiṣan lọwọlọwọ si PCF8574) ati 300 (A (orisun, awọn ṣiṣan lọwọlọwọ lati PCF8574).
  • La ẹdọfu ipese agbara jẹ 2.5 ati 6v. Agbara imurasilẹ jẹ kekere, nikan 10 µA.
  • Gbogbo awọn abajade ni latches, lati ṣetọju ipinle laisi iwulo fun awọn iṣe ita. O ni lati ṣiṣẹ nikan nigbati o ba fẹ yi ipinle pada.
  • O le gba 8 awọn itọnisọna to ṣeeṣe, iyẹn, to awọn ẹrọ 8 lati ṣe ibasọrọ pẹlu tabi lilo awọn modulu 8 lati faagun rẹ soke si awọn ẹrọ 64. Awọn adirẹsi (awọn pinni A0, A1, A2) yoo jẹ:
    • 000: adirẹsi 0x20
    • 001: adirẹsi 0x21
    • 010: adirẹsi 0x22
    • 011: adirẹsi 0x23
    • 100: adirẹsi 0x24
    • 101: adirẹsi 0x25
    • 110: adirẹsi 0x26
    • 111: adirẹsi 0x27
  • Gba idilọwọ (INT) nipasẹ laini pataki kan lati ṣawari data laisi mimojuto nigbagbogbo.

Isopọpọ pẹlu Arduino

Iwoye ti Arduino IDE

Asopọ pẹlu Arduino jẹ irorun, o kan ni lati sopọ Vcc pẹlu pin 5v ti igbimọ Arduino, ati GND pẹlu GND ti Arduino. Ni apa keji, awọn pinni ti PCF8574 SDA ati module SCL le jẹ sopọ pẹlu awọn pinni 14 (A5 SCL) ati 15 (A4 SDA). Nikan pẹlu pe yoo bẹrẹ ṣiṣẹ, o han ni o le lo Px lati sopọ awọn ẹrọ ti o fẹ lati ba sọrọ ...

Lẹhinna yoo padanu nikan bẹrẹ pẹlu apẹrẹ aworan apẹẹrẹ ni Arduino IDE. O le ṣe laisi lilo ile-ikawe afikun bii ...

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

Bi igbewọle:

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

Tabi tun lo awọn ile ikawe, bii PCF8574 ti o le gba nibi ati lo koodu ti o jọra si eyi lati apẹẹrẹ funrararẹ ti o wa pẹlu ile-ikawe yii:

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


Awọn akoonu ti nkan naa faramọ awọn ilana wa ti awọn ilana olootu. Lati jabo aṣiṣe kan tẹ nibi.

Jẹ akọkọ lati sọ ọrọ

Fi ọrọ rẹ silẹ

Adirẹsi imeeli rẹ yoo ko le ṣe atejade. O beere aaye ti wa ni samisi pẹlu *

*

*

  1. Lodidi fun data naa: Miguel Ángel Gatón
  2. Idi ti data naa: SPAM Iṣakoso, iṣakoso ọrọ asọye.
  3. Ofin: Iyọọda rẹ
  4. Ibaraẹnisọrọ data: Awọn data kii yoo ni ifọrọhan si awọn ẹgbẹ kẹta ayafi nipasẹ ọranyan ofin.
  5. Ibi ipamọ data: Alaye data ti o gbalejo nipasẹ Awọn nẹtiwọọki Occentus (EU)
  6. Awọn ẹtọ: Ni eyikeyi akoko o le ni opin, gba pada ki o paarẹ alaye rẹ.