PCF8574: E uiga i le I2C I / O Expander mo Arduino

PCF8574 TI CHIP

E moni na e faʻalogo i le IC PCF8574, o se malamala e mafai ona faʻatau ese pe ua faʻaeʻeina i luga o se module pei o le tele o isi Vaega eletise e faʻafaigofie ai lou tuʻufaʻatasia ma lau Arduino laupapa. I lenei tulaga, o se faʻalauteleina o mea faʻaulufaleina ma galuega faatino mo le pasi I2C.

Atonu e te manatu o le Arduino ua i ai lana lava pasi I2C tuʻufaʻatasia, ma e moni. Ae o le PCF8574 e mafai ona fesoasoani faʻalauteleina lena pasi i tua atu o le tapulaʻa o lau atinae laupapa, lea e mafai ona avea ma fesoasoani sili i nisi tagata faia latou te manaʻomia sili atu nai lo na o le mea na saunia e Arduino.

O le a le pasi I2C?

Arduino UNO millis galuega

O le igoa I2C e sau mai Vaeluaga fesoʻotaʻiga poʻo taʻamilosaga tuʻufaʻatasi. O lana lomiga 1.0 na faia i le 1992 e Philips. Ona oʻo mai ai lea o le lona lua o le 2.1 i le 2000 ma o aso nei ua avea ma masani (i le 100 kbit / s, e ui lava e mafai ona oʻo i le 3.4 Mbit / s maualuga) pe a maeʻa le pateni i le 2006 ma mafai ona faʻaaogaina saoloto.

I le taimi nei ua lautele faʻaaogaina i le alamanuia mo fesootaiga, ma faʻapea foi ona talisapaia tele e tagata e faia mo latou poloketi e faʻafesoʻotaʻi ai microcontrollers eseese ma peripherals tuʻufaʻatasia i le tasi IC.

El I2C o se pasi lauiloa mai fesoʻotaʻiga fesoʻotaʻiga. Na te faʻaaogaina se fesoʻotaʻiga fesoʻotaʻiga faʻatasi ma na o le 2 auala (o loʻo i ai le lona tolu, ae o loʻo fesoʻotaʻi i le faʻasino poʻo le GND), o le mea moni e taʻua foʻi ia TWI (Lua Wire Interface):

  • Tasi mo le uati (SCL).
  • Isi mo faʻamaumauga (SDA).
O mea uma e lua o loʻo matala faʻaalu vai CMOS fesoʻotaʻiga ma manaʻomia toso-i luga resistors. Faʻapea foi, afai e tasi le masini faʻaliliuina le 0 ma le isi a 1, e ono i ai ni faʻafitauli, o lea o le laina e masani ona seti i le 1 (maualuga tulaga) ma o masini e masani ona lafoina le 0 (maualalo tulaga).

O lona uiga o le matai ma pologa latou te lafoina faʻamatalaga i luga o le tutusa uaea poʻo le ala, lea e pulea e le muamua tasi e gaosia ai le uati faʻailo. O masini taʻitasi e fesoʻotaʻi i le pasi I2C o le ai ai se tuatusi tulaga ese na tofiaina, ina ia faʻatonutonu ai le lafoina atu. Ae e le manaʻomia le faiaoga e tutusa i taimi uma (tele-faiaoga), o ia lava na te amataina le fesiitaiga.

E pei ona ou faʻamatalaina i le tusitusiga i luga Arduino I2C Na ou taʻua muamua, o laupapa taʻitasi e iai nei fesoʻotaʻiga I2C i nofoaga eseese. O se mea e tatau ona e teuina i lou mafaufau ina ia mafai ona faʻaaogaina lelei i vaega taʻitasi o le ipu:

  • Arduino UNO: SDA i le A4 ma SCK i le A5
  • Arduino Nano: tutusa ma le muamua.
  • Arduino Mini Pro: tutusa
  • Mega Arduino: SDA o loʻo i le pin 20 ma SCK i le 21.
  • Nisi faʻamatalaga e uiga i papatusi.

Ua uma ona e iloa e mafai ona e faʻaaogaina le I2C mo au tusiga faigofie talu ai le Faletusi a Wire.h ma eseese galuega tauave mo lenei serial fesoʻotaʻiga:

  • amata (): amata le Faletusi faletusi ma faʻamaonia pe o se matai poʻo se pologa
  • talosagaFrom (): faʻaaoga e le matai e talosagaina faʻamatalaga mai le pologa.
  • amataTransmission (): amata lafoina ma pologa.
  • Faʻamavaega: iʻuga faʻamutaina.
  • tusi ()- Tusi faʻamaumauga mai se pologa i le tali atu i se talosaga mai le matai, pe oe mafai faʻapipiʻi se tuʻuina atu o se matai.
  • avanoa (): o le a toe faafoi mai le numera o bytes e faitau.
  • faitau (): faitau se byte lafoina mai se pologa i se matai poʻo le isi itu.
  • onReceive (): Valaʻauina se gaioiga pe a maua e se pologa se faʻasalalauga mai se matai.
  • onRequest (): Valaʻauina se gaioiga pe a fai e pologa se faʻamatalaga mai se matai.

Para tele faʻamatalaga e uiga i le Arduino polokalame ma gaioiga e mafai ona e aumaia ai matou PDF tutorial.

O le a le PCF8574?

PCF8574 module

O le PCF8574 o le I2C pasi numera numera ma mea faʻapipiʻi (I / O) expander. E mafai ona gaosia e tagata gaosi eseese, e faʻaopopoga i le mauaina i ICs ma modules. I soo se tulaga, e matua aoga lava le faʻafesoʻotaʻi i lau Arduino laupapa ma i ai le agavaʻa e faʻatonutonu ai le tele o masini nai lo le motherboard faʻatagaina.

El Faʻapipiʻi PCF8574 e faigofie, talu ai e naʻo le aofia ai 8 pines quasidirectional (P0-P7 o loʻo fesoʻotaʻi ai chips), ma i leisi itu o loʻo ia te oe le SDA ma le SCL e tatau ona e faʻafesoʻotaʻi atu i le laupapa Arduino, faʻatasi ai ma le VCC ma le GND e faʻamalosia ai foʻi le vaega. Ma aua neʻi galo pine e tolu e faʻasino ai A0, A1, A2 e filifili ai poʻo le fea o masini e faʻatatau i ai le fesoʻotaʻiga ...

Faʻapipiʻi PCF8574

Faʻaleagaina isi vaega e tatau ona e iloa:

  • O ona fesoʻotaʻiga, o le avea ma se matala alavai, mafai ona faʻaaogaina uma e pei o sao ma galuega faatino.
  • La tumutumu āu e 25mA pe a galue o se galuega faatino (magoto, pe a o loʻo tafe atu agai i PCF8574) ma le 300 µA (punavai, o loʻo tafe mai nei mai PCF8574).
  • La popolega paoa sapalai o 2.5 ma 6v. O le tu-i le taumafaina e matua maualalo, na o le 10 µA.
  • O galuega faatino uma i ai latches, ia tausia le setete e aunoa ma le manaʻoga mo fafo gaioiga. Pau le mea e te amio ai pe a e manaʻo e sui le setete.
  • E mafai ona e mauaina le 8 mafai faatonuga, o lona uiga, oʻo atu i le 8 masini e fesoʻotaʻi ma pe faʻaaogaina 8 modula e faʻalautele ai i luga i le 64 masini. O tuatusi (pine A0, A1, A2) o le:
    • 000: tuatusi 0x20
    • 001: tuatusi 0x21
    • 010: tuatusi 0x22
    • 011: tuatusi 0x23
    • 100: tuatusi 0x24
    • 101: tuatusi 0x25
    • 110: tuatusi 0x26
    • 111: tuatusi 0x27
  • Tautinoga faalavelaveina (INT) e se laina faʻapitoa e iloa ai faʻamatalaga e aunoa ma le mataʻituina pea.

Tuʻufaʻatasia ma Arduino

Puʻe ata o le Arduino IDE

O le fesoʻotaʻiga ma le Arduino e faigofie lava, na ona e fesoʻotaʻi Vcc ma le pine 5v o le laupapa Arduino, ma le GND ma le GND o le Arduino. I leisi itu, o pine o le PCF8574 SDA ma le SCL module mafai ona fesoʻotaʻi ma pine 14 (A5 SCL) ma le 15 (A4 SDA). Naʻo le mea lena o le a amata galue, e mautinoa lava e mafai ona e faʻaaogaina le Px e faʻafesoʻotaʻi masini e te manaʻo e faʻafesoʻotaʻi ...

Ona pau lea o le mea o le a misi amata i se faʻataʻitaʻiga tusi i le Arduino IDE. E mafai ona e faia e aunoa ma le faʻaaogaina o se faletusi faʻaopopo e pei o ...

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

A o le sao:

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

Pe faʻapena foi faaaoga faletusi, pei ole PCF8574 e te mafaia download iinei ma faʻaaoga le code tutusa ma lenei mai le faʻataʻitaʻiga lava ia e o mai faatasi ma lenei faletusi:

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


O mataupu o le tusitusiga e tausisi ia tatou mataupu silisili o amio lelei faʻatonu. E lipotia se mea sese kiliki iinei.

Ia avea muamua ma faamatalaga

Tuʻu lau faamatalaga

o le a le lomia lou tuatusi imeli. O nofoaga e manaʻomia e makaina *

*

*

  1. E tali atu mo faʻamatalaga: Miguel Ángel Gatón
  2. Faamoemoega o faʻamatalaga: Pulea le SPAM, faʻamatalaga pulega.
  3. Tulaga faʻatulafonoina: Lau maliega
  4. Fesoʻotaʻiga o faʻamatalaga: O faʻamatalaga o le a le fesoʻotaʻi atu i isi vaega vagana i tulafono faʻatulafonoina.
  5. Teuina o faʻamatalaga: Faʻamaumauga tuʻufaʻatasia e Occentus Networks (EU)
  6. Aia Tatau: I soo se taimi e mafai ai ona e faʻatapulaʻaina, toe maua ma aveʻese au faʻamatalaga.