PCF8574: Mu I2C I / O Expander airson Arduino

PCF8574 TI CHIP

Tha thu gu cinnteach air cluinntinn mun IC PCF8574, chip a ghabhas a cheannach air leth no mu thràth air a chuir air modal mar mòran eile Pàirtean dealanach gus amalachadh riut leis a ’bhòrd Arduino agad. Anns a ’chùis seo, tha e na leudachadh air na cuir a-steach agus na toraidhean airson am bus I2C.

Is dòcha gu bheil thu a ’smaoineachadh gu bheil a chuid fhèin aig Arduino mu thràth bus I2C aonaichte, agus tha e fìor. Ach faodaidh am PCF8574 cuideachadh le bhith a ’leudachadh a’ bhus sin nas fhaide na crìochan a ’bhùird leasachaidh agad, a dh’ fhaodadh a bhith na chuideachadh mòr do chuid de luchd-dèanaidh a dh ’fheumas barrachd air dìreach na tha Arduino a’ toirt seachad.

Dè am bus I2C?

Arduino UNO gnìomhan millis

Tha an t-ainm I2C a ’tighinn Ciorcad eadar-aonaichte no cuairtean eadar-aonaichte. Chaidh an dreach 1.0 aige a chruthachadh ann an 1992 le Philips. An uairsin thigeadh dàrna 2.1 ann an 2000 agus an-diugh tha e air a thighinn gu bhith na inbhe (aig 100 kbit / s, ged a cheadaicheas e suas ri 3.4 Mbit / s aig a ’char as àirde) nuair a dh’ fhalbh an patent ann an 2006 agus faodar a chleachdadh gu saor.

Aig an àm seo tha e air a chleachdadh gu farsaing anns a ’ghnìomhachas airson conaltradh, agus cuideachd gu mòr a ’cur luach air luchd-dèanaidh airson na pròiseactan aca gus diofar microcontrollers agus peripherals a cho-aonachadh ann an aon IC.

El Tha I2C na bhus conaltradh sreathach ainmeil. Bidh e a ’cleachdadh protocol conaltraidh sioncronaich anns nach eil ach 2 sheanalan (tha an treas fear ann, ach tha e ceangailte ri iomradh no GND), gu dearbh tha e cuideachd air ainmeachadh mar TWI (Two Wire Interface):

  • Aon airson a ’ghleoc (SCL).
  • Eile airson dàta (SDA).
Tha an dà chuid nan ceanglaichean fosgailte CMOS agus feumach air luchd-taic tarraing suas. Cuideachd, ma bheir aon inneal seachad 0 agus fear eile 1, dh ’fhaodadh duilgheadasan a bhith ann, is e sin as coireach gu bheil an loidhne an-còmhnaidh air a shuidheachadh gu 1 (ìre àrd) agus bidh na h-innealan an-còmhnaidh a’ tar-chuir 0 (ìre ìosal).

Tha sin a ’ciallachadh gu bheil an mhaighstir agus tràill bidh iad a ’cur dàta thairis air an aon chàball no slighe, a tha fo smachd a’ chiad fhear a ghineas an comharra cloc. Bidh seòladh sònraichte air a thoirt do gach aon de na h-innealan iomaill a tha ceangailte ris a ’bhus I2C, gus na tar-chuiridhean a stiùireadh. Ach chan eil e riatanach gum bi an tidsear an-còmhnaidh mar an ceudna (ioma-thidsear), is e an-còmhnaidh esan a thòisicheas an gluasad.

Mar a mhìnich mi mu thràth san artaigil air Arduino I2C Thug mi iomradh na bu thràithe, tha na ceanglaichean I2C sin aig gach bòrd ann an diofar àiteachan. Is e rudeigin a dh ’fheumas tu a chumail nad inntinn gus an urrainn dhut a chleachdadh gu ceart anns gach dreach den bhòrd:

  • Arduino UNO: Tha SDA ann an A4 agus SCK ann an A5
  • Arduino Nano: an aon rud ris an fhear roimhe.
  • Arduino Mini Pro: an aon rud.
  • Mega Arduino: Tha SDA air prìne 20 agus SCK air 21.
  • Barrachd fiosrachaidh mu phlàtaichean.

Tha fios agad mu thràth gun urrainn dhut an I2C a chleachdadh airson do sgeidsichean gu furasta, bhon a Leabharlann Wire.h le diofar dhleastanasan airson a ’chonaltradh sreathach seo:

  • tòiseachadh (): tòisich air an leabharlann Wire agus sònraich an e maighstir no tràill a th ’ann
  • iarrtasFrom (): air a chleachdadh leis a ’mhaighstir gus dàta iarraidh bhon tràill.
  • beginTransmission (): tòiseachadh air tar-chuir le tràill.
  • endTransmission (): tar-chuir deireadh.
  • sgrìobh ()- Sgrìobh dàta bho thràill mar fhreagairt air iarrtas bhon mhaighstir, no faodaidh tu ciudha maighstir a chraoladh.
  • ri fhaighinn (): tillidh e an àireamh de bytes ri leughadh.
  • leugh (): a ’leughadh byte a chaidh a ghluasad bho thràill gu maighstir no a chaochladh.
  • onReceive (): A ’gairm gnìomh nuair a gheibh tràill tar-chuir bho mhaighstir.
  • onRequest (): A ’gairm gnìomh nuair a dh’ iarras tràill dàta bho mhaighstir.

Para barrachd fiosrachaidh mu phrògraman agus gnìomhan Arduino as urrainn dhut ar luchdachadh sìos Oideachadh PDF.

Dè a th ’anns a’ PCF8574?

Modal PCF8574

Tha am PCF8574 a Cuir a-steach agus toraidhean didseatach bus I2C (I / O). Faodar a dhèanamh le diofar luchd-saothrachaidh, a bharrachd air a bhith ri fhaighinn ann an ICan agus modalan. Ann an suidheachadh sam bith, tha e gu math practaigeach a cheangal ris a ’bhòrd Arduino agad agus an comas smachd a chumail air barrachd innealan na tha am motherboard a’ ceadachadh.

El PCF8574 pinout Tha e sìmplidh, seach nach eil e a ’toirt a-steach Pinnsean 8 leth-stiùiridh (P0-P7 far a bheil na sgoltagan airson conaltradh ceangailte), agus air an làimh eile tha an SDA agus SCL agad a dh ’fheumas tu a cheangal ri bòrd Arduino, a bharrachd air VCC agus GND gus cumhachd a thoirt don mhodal cuideachd. Agus na dìochuimhnich na trì prìnichean seòlaidh A0, A1, A2 gus taghadh dè na h-innealan a tha an conaltradh air a stiùireadh gu ...

PinF8574 pinF

Owns feartan eile gum bu chòir fios a bhith agad:

  • Faodaidh na ceanglaichean aige, a bhith mar dhrèanadh fosgailte air a chleachdadh an dà chuid mar chur-a-steach agus mar thoraidhean.
  • La stùc gnàthach tha e 25mA nuair a bhios e ag obair mar toradh (sinc, nuair a bhios sruth a ’sruthadh a dh’ ionnsaigh PCF8574) agus 300 µA (stòr, sruthan a ’sruthadh bho PCF8574).
  • La teannachadh is e solar cumhachd 2.5 agus 6v. Tha an caitheamh neo-sheasmhach glè ìosal, dìreach 10 µA.
  • A h-uile toradh tha latches, gus an stàit a chumail suas gun fheum air gnìomhan taobh a-muigh. Cha leig thu leas a bhith ach nuair a tha thu airson an stàit atharrachadh.
  • Gheibh thu 8 stiùiridhean comasach, is e sin, suas ri 8 innealan gus conaltradh le no cleachdadh 8 modalan gus a leudachadh gu 64 inneal. Is iad na seòlaidhean (prìnichean A0, A1, A2):
    • 000: seòladh 0x20
    • 001: seòladh 0x21
    • 010: seòladh 0x22
    • 011: seòladh 0x23
    • 100: seòladh 0x24
    • 101: seòladh 0x25
    • 110: seòladh 0x26
    • 111: seòladh 0x27
  • Aideachadh dealachadh (INT) le loidhne sònraichte gus dàta a lorg gun a bhith a ’cumail sùil daonnan.

Amalachadh le Arduino

Glacadh-sgrìn de Arduino IDE

Tha an ceangal le Arduino gu math sìmplidh, feumaidh tu dìreach Vcc a cheangal ri prìne 5v de bhòrd Arduino, agus GND le GND de Arduino. Air an làimh eile, faodaidh prìnichean a ’mhodal PCF8574 SDA agus SCL a bhith ceangal le prìnichean 14 (A5 SCL) agus 15 (A4 SDA). Is ann dìreach leis an sin a thòisicheadh ​​e ag obair, gu follaiseach faodaidh tu am Px a chleachdadh gus na h-innealan a tha thu airson conaltradh a cheangal ...

An uairsin cha bhiodh e ach a dhìth tòisich le sgeidse eisimpleir ann an Arduino IDE. Faodaidh tu a dhèanamh gun a bhith a ’cleachdadh leabharlann a bharrachd leithid ...

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

Mar chur-a-steach:

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

No cuideachd leabharlannan a chleachdadh, mar an PCF8574 as urrainn dhut luchdaich sìos an seo agus cleachd còd coltach ri seo bhon eisimpleir fhèin a thig an cois an leabharlann seo:

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


Tha susbaint an artaigil a ’cumail ri na prionnsapalan againn de moraltachd deasachaidh. Gus aithris a dhèanamh air mearachd cliog an seo.

Bi a 'chiad fhear a thog beachd

Fàg do bheachd

Seòladh-d cha tèid fhoillseachadh. Feum air achaidhean air an comharrachadh le *

*

*

  1. Uallach airson an dàta: Miguel Ángel Gatón
  2. Adhbhar an dàta: Smachd air SPAM, riaghladh bheachdan.
  3. Dìleab: Do chead
  4. Conaltradh an dàta: Cha tèid an dàta a thoirt do threas phàrtaidhean ach a-mhàin fo dhleastanas laghail.
  5. Stòradh dàta: Stòr-dàta air a chumail le Occentus Networks (EU)
  6. Còraichean: Aig àm sam bith faodaidh tu am fiosrachadh agad a chuingealachadh, fhaighinn air ais agus a dhubhadh às.