PCF8574: Mo te I2C I / O Kaitoha mo Arduino

PCF8574 TI Tipi

Kua rongo ano koe ki nga PCF8574 IC, he maramara ka taea te hoko wehe, kua eke ranei ki runga i te waahanga pera i etahi atu Nga waahanga hiko hei awhina i to whakauru ki to poari Arduino. I tenei keehi, he toro atu i nga whakauru me nga putanga mo te pahi I2C.

Ka whakaaro pea koe kei a koe ano a Arduino pahi I2C whakauru, a he pono. Engari ka taea e te PCF8574 te awhina ki te whakarahi i taua pahi ki tua atu o te rohe o to poari whanaketanga, ka nui pea te awhina ki etahi kaihanga e hiahia ana kia nui ake i ta Arduino e whakarato ana.

He aha te pahi I2C?

Arduino UNO mahi millis

Ko te ingoa I2C i ahu mai Huringa Whakawhiti Motuhake nga huringa honohono ranei. Ko tana putanga 1.0 i hangaia i te 1992 e Philips. Ana ka tae mai te tuarua 2.1 i te 2000 ana i tenei ra kua paerewa (i te 100 kbit / s, ahakoa ka eke ki te 3.4 Mbit / s te nuinga) ka pau te mana i te 2006 ka taea te whakamahi noa.

I tenei wa kei te whakamahia whānuitia i roto i te umanga mo te korero, me te tino paingia e nga kaihanga mo a raatau kaupapa ki te whakawhitiwhiti i nga momo microcontrollers me nga piringa kua whakauruhia ki te IC kotahi.

El Ko te I2C he pahi rongonui korero rangatū. Ka whakamahia e ia tetahi kawa whakawhitiwhitinga honohono me nga awa e rua noa (he tuatoru, engari ka honoa ki te tohutoro, ki te GND ranei), ina hoki e mohiotia ana ko TWI (Atanga Waea Rua):

  • Kotahi mo te karaka (SCL).
  • Ko etahi atu mo te raraunga (SDA).
Ko enei e rua e tuwhera ana nga hononga CMOS me te aukati i nga aukume kume. Ano hoki, mena ka tukuna e tetahi taputapu te 0 me tetahi atu a 1, tera pea ka raru, no reira ka whakatauhia te raina ki te 1 (taumata teitei) ka tuku tonu nga taputapu i te 0 (taumata iti).

E tohu ana tera te rangatira me te pononga ka tukuna e ratau nga raraunga ki runga i taua taura raanei ara raanei, e whakahaerehia ana e te tuatahi ka whakaputa i te tohu karaka. Ko ia o nga taputapu piripiri e hono ana ki te pahi I2C ka whai waahi motuhake ki te whakarite, hei whakatika i nga whakawhitinga. Engari kaore e tika kia orite te kaiako i nga wa katoa (he maha nga-kaiwhakaako), ko ia tonu te kaimanaaki whakawhiti.

Ka rite ki kua whakamāramatia e ahau i roto i te tuhinga i runga i Arduino I2C I korero ahau i mua, kei ia poari enei hononga I2C i nga waahi rereke. He mea hei whakaaro maau kia taea ai te whakamahi tika i ia waahanga pereti:

  • Arduino UNO: Ko te SDA kei te A4 me te SCK i te A5
  • ArduinoNano: te rite ki te mua.
  • Arduino MiniPro: rite.
  • Mega Arduino: Kei te SDA te titi 20 me te SCK kei te 21.
  • He korero ano mo te pereti.

Kua mohio ano koe ka taea e koe te whakamahi i te I2C mo o tuhi, mai i te Whare pukapuka Wire.h me nga momo mahi mo tenei korerorero korero:

  • tiimata (): tiimata te whare pukapuka Waea ka tohu mena he rangatira he pononga ranei
  • tonoMai (): whakamahia e te rangatira ki te tono raraunga mai i te pononga.
  • timatanga Tuku (): tiimata te whakawhiti me te pononga.
  • Whakamutunga Tukunga (): tuku mutunga.
  • tuhi ()- Tuhia nga tuhinga mai i te pononga hei whakautu ki te tono a te rangatira ka taea ranei e koe te tuunga i te tuku rangatira
  • waatea (): ka whakahoki i te maha o nga paita hei panui.
  • panuihia (): panui i te paita i tukuna mai i te pononga ki te rangatira, te tuarua ranei.
  • i runga i te Whiwhi (): Ka karanga i tetahi mahi ka riro i te pononga te tuku mai i te rangatira.
  • onRequest (): Ka karanga i tetahi mahi ina tono te pononga i nga korero mai i te rangatira.

para nui atu nga korero mo te kaupapa Arduino me nga mahi ka taea e koe te tango i a maatau Akoranga PDF.

He aha te PCF8574?

Kōwae PCF8574

Ko te PCF8574 he Ko nga whakauru rorohiko I2C pahi me nga putanga (I / O) e kawe ana. Ka taea e nga momo kaihanga te hanga, hei taapiri ki te waatea i nga IC me nga waahanga. Ahakoa he aha, he mea pai ki te hono atu ki to papa Arduino me te kaha ki te whakahaere i etahi atu taputapu kaore e whakaaetia e te kaupapa matua.

El Poutu PCF8574 he ngawari, na te mea he whakauru noa iho 8 pines ahuarangi-aronga (P0-P7 kei reira nga kiripiri hei whakawhiti korero), kei tetahi atu ringa kei a koe te SDA me te SCL me hono atu koe ki te poari Arduino, me te VCC me te GND kia kaha ai hoki te kawe i te kaupapa. Kaua hoki e wareware ki nga pou korero e toru A0, A1, A2 ki te tohu ko tehea o nga taputapu e ahu atu ana te whakawhitinga korero ki ...

Poutu PCF8574

Rangatira etahi atu waahanga kia mohio koe:

  • Ko ona hononga, he waikawa tuwhera, ka taea whakamahia ana hei whakauru me nga whakaputa.
  • La tihi o nāianei ko te 25mA ka mahi ana hei putanga (totohu, ka rere ana te PCF8574) me te 300 µA (puna, ka rere mai i PCF8574).
  • La mānukanuka ko te mana ko te 2.5 me te 6v. Ko te kohi-ma te kohi he iti rawa, 10 µA anake.
  • Nga putanga katoa whai raiti, ki te pupuri i te kawanatanga me te kore e hiahiatia nga mahi o waho. Me mahi noa koe ina hiahia koe ki te whakarereke i te ahua.
  • Ka taea e koe te tiki 8 nga tohutohu ka taea, ara, tae atu ki te 8 taputapu hei whakawhiti korero ma te whakamahi ranei i nga waahanga 8 hei whakawhaanui kia 64 nga taputapu. Ko nga wahitau (pine A0, A1, A2) ka penei:
    • 000: wāhitau 0x20
    • 001: wāhitau 0x21
    • 010: wāhitau 0x22
    • 011: wāhitau 0x23
    • 100: wāhitau 0x24
    • 101: wāhitau 0x25
    • 110: wāhitau 0x26
    • 111: wāhitau 0x27
  • Whakaae whakakahore (INT) ma tetahi raina motuhake kia kitea nga raraunga kaore e aro turukihia.

Te Whakakotahitanga me Arduino

Whakaahuamata o Arduino IDE

Ko te hononga ki te Arduino he tino maamaa, me hono noa a Vcc me nga tohu 5v o te poari Arduino, me te GND me te GND o Arduino. I tetahi atu, ko nga titi o te PCF8574 SDA me te SCL waahanga ka taea hono atu ki nga titi 14 (A5 SCL) me te 15 (A4 SDA). Ma tenei ka tiimata te mahi, maarama ka taea e koe te whakamahi i te Px ki te hono i nga taputapu e hiahia ana koe ki te whakawhiti korero ...

Katahi ka ngaro noa iho tiimata ma te tauira tuhi i te Arduino IDE. Ka taea e koe te mahi ma te kore e whakamahi i tetahi wharepukapuka taapiri penei i te ...

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

Hei whakauru:

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

Ano hoki whakamahi wharepukapuka, penei i te PCF8574 ka taea e koe tikiake i konei ka whakamahi waehere rite ki tenei mai i te tauira ake ka haere mai me tenei whare pukapuka.

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


Ko nga korero o te tuhinga e piri ana ki o maatau kaupapa o matatika whakatika. Ki te ripoata i tetahi paatene paato Here.

Hei tuatahi ki te korero

Waiho to korero

Ka kore e whakaputaina tō wāhitau īmēra. Kua tohua ngā āpure e hiahiatia ana ki *

*

*

  1. He kawenga mo nga raraunga: Miguel Ángel Gatón
  2. Te kaupapa o te raraunga: Whakahaerehia te SPAM, te whakahaere korero.
  3. Ture: To whakaae
  4. Whakawhitinga korero: Kaore nga korero e tukuna ki nga taha tuatoru engari ma te ture herenga.
  5. Rokiroki raraunga: Paetukutuku e whakahaerehia ana e Occentus Networks (EU)
  6. Tika: I nga wa katoa ka taea e koe te whakaiti, te whakaora me te muku i o korero.