PCF8574: Arduino కోసం I2C I / O ఎక్స్పాండర్ గురించి

PCF8574 TI CHIP

మీరు ఖచ్చితంగా విన్నారు ఐసి పిసిఎఫ్ 8574, విడిగా కొనుగోలు చేయగల చిప్ లేదా ఇప్పటికే చాలా మంది మాడ్యూల్‌పై అమర్చవచ్చు ఎలక్ట్రానిక్ భాగాలు మీ Arduino బోర్డుతో మీ ఏకీకరణను సులభతరం చేయడానికి. ఈ సందర్భంలో, ఇది ఇన్‌పుట్‌లు మరియు అవుట్‌పుట్‌ల యొక్క విస్తరణ I2C బస్సు.

ఆర్డునోకు ఇప్పటికే దాని స్వంతం ఉందని మీరు అనుకోవచ్చు ఇంటిగ్రేటెడ్ I2C బస్సు, మరియు ఇది నిజం. మీ అభివృద్ధి బోర్డు యొక్క పరిమితికి మించి ఆ బస్సును విస్తరించడానికి పిసిఎఫ్ 8574 సహాయపడుతుంది, ఇది ఆర్డునో అందించే దానికంటే ఎక్కువ అవసరమయ్యే కొంతమంది తయారీదారులకు ఎంతో సహాయపడుతుంది.

ఐ 2 సి బస్సు అంటే ఏమిటి?

Arduino UNO మిల్లీస్ విధులు

I2C పేరు వచ్చింది ఇంటర్-ఇంటిగ్రేటెడ్ సర్క్యూట్ లేదా ఇంటర్-ఇంటిగ్రేటెడ్ సర్క్యూట్లు. దీని వెర్షన్ 1.0 ను 1992 లో ఫిలిప్స్ రూపొందించారు. 2.1 లో రెండవ 2000 వస్తుంది మరియు ఈ రోజు 100 లో పేటెంట్ గడువు ముగిసినప్పుడు మరియు ఉచితంగా ఉపయోగించినప్పుడు ఇది ఒక ప్రమాణంగా మారింది (3.4 kbit / s వద్ద, ఇది గరిష్టంగా 2006 Mbit / s వరకు అనుమతిస్తుంది).

ప్రస్తుతం దీనిని పరిశ్రమలో విస్తృతంగా ఉపయోగిస్తున్నారు కమ్యూనికేషన్ కోసం, మరియు ఒక ఐసిలో విలీనం చేయబడిన విభిన్న మైక్రోకంట్రోలర్‌లు మరియు పెరిఫెరల్స్‌ను కమ్యూనికేట్ చేయడానికి వారి ప్రాజెక్టుల కోసం తయారీదారులు చాలా మెచ్చుకున్నారు.

El I2C ఒక బస్సు సీరియల్ కమ్యూనికేషన్ నుండి బాగా తెలుసు. ఇది కేవలం 2 ఛానెల్‌లతో సింక్రోనస్ కమ్యూనికేషన్ ప్రోటోకాల్‌ను ఉపయోగిస్తుంది (మూడవది ఉంది, కానీ దీనిని రిఫరెన్స్ లేదా జిఎన్‌డితో కలుపుతారు), వాస్తవానికి దీనిని టిడబ్ల్యుఐ (టూ వైర్ ఇంటర్ఫేస్) అని కూడా పిలుస్తారు:

  • గడియారం (ఎస్సీఎల్) కోసం ఒకటి.
  • డేటా కోసం ఇతర (SDA).
రెండూ ఓపెన్ డ్రెయిన్ CMOS కనెక్షన్లు మరియు పుల్-అప్ రెసిస్టర్లు అవసరం. అదనంగా, ఒక పరికరం 0 మరియు మరొకటి 1 ని ప్రసారం చేస్తే, సమస్యలు ఉండవచ్చు, అందుకే లైన్ ఎల్లప్పుడూ 1 (అధిక స్థాయి) కు సెట్ చేయబడుతుంది మరియు పరికరాలు ఎల్లప్పుడూ 0 (తక్కువ స్థాయి) ను ప్రసారం చేస్తాయి.

అది సూచిస్తుంది మాస్టర్ మరియు బానిస వారు ఒకే కేబుల్ లేదా ట్రాక్ ద్వారా డేటాను పంపుతారు, ఇది గడియార సిగ్నల్‌ను ఉత్పత్తి చేసే మొదటిదాని ద్వారా నియంత్రించబడుతుంది. I2C బస్సుకు అనుసంధానించబడిన ప్రతి పరిధీయ పరికరాలకు ప్రసారాలను నిర్దేశించడానికి ఒక ప్రత్యేకమైన చిరునామా కేటాయించబడుతుంది. కానీ గురువు ఎల్లప్పుడూ ఒకేలా ఉండవలసిన అవసరం లేదు (బహుళ-ఉపాధ్యాయుడు), బదిలీని ప్రారంభించేది అతడే.

నేను ఇప్పటికే వ్యాసంలో వివరించినట్లు ఆర్డునో I2C నేను ఇంతకు ముందే ప్రస్తావించాను, ప్రతి బోర్డులో ఈ I2C కనెక్షన్లు వేర్వేరు ప్రదేశాలలో ఉన్నాయి. ప్లేట్ యొక్క ప్రతి సంస్కరణలో దీన్ని సరిగ్గా ఉపయోగించుకోవటానికి మీరు గుర్తుంచుకోవలసిన విషయం ఇది:

  • Arduino UNO: ఎస్‌డిఎ ఎ 4 లో, ఎస్‌సికె ఎ 5 లో ఉంది
  • ఆర్డునో నానో: మునుపటి మాదిరిగానే.
  • ఆర్డునో మినీ ప్రో: అదే.
  • ఆర్డునో మెగా: ఎస్‌డిఎ పిన్ 20 లో, ఎస్‌సికె 21 న ఉంది.
  • ప్లేట్ల గురించి మరింత సమాచారం.

మీ స్కెచ్‌ల కోసం I2C ని సులభంగా ఉపయోగించవచ్చని మీకు ఇప్పటికే తెలుసు Wire.h లైబ్రరీ ఈ సీరియల్ కమ్యూనికేషన్ కోసం వివిధ ఫంక్షన్లతో:

  • ప్రారంభం (): వైర్ లైబ్రరీని ప్రారంభించి, అది మాస్టర్ లేదా బానిస కాదా అని పేర్కొనండి
  • requestFrom () నుండి: బానిస నుండి డేటాను అభ్యర్థించడానికి మాస్టర్ ఉపయోగించారు.
  • startTransmission (): బానిసతో ప్రసారం ప్రారంభించండి.
  • endTransmission (): ఎండ్ ట్రాన్స్మిషన్.
  • వ్రాయడానికి()- మాస్టర్ నుండి ఒక అభ్యర్థనకు ప్రతిస్పందనగా బానిస నుండి డేటాను వ్రాయండి లేదా మీరు మాస్టర్స్ ట్రాన్స్మిషన్కు క్యూ చేయవచ్చు.
  • అందుబాటులో ఉంది (): చదవడానికి బైట్ల సంఖ్యను తిరిగి ఇస్తుంది.
  • చదవండి(): బానిస నుండి మాస్టర్‌కు ప్రసారం చేసిన బైట్‌ను చదవండి లేదా దీనికి విరుద్ధంగా.
  • onReceive (): బానిస మాస్టర్ నుండి ప్రసారం అందుకున్నప్పుడు ఒక ఫంక్షన్‌ను పిలుస్తుంది.
  • విన్నపముపై (): బానిస మాస్టర్ నుండి డేటాను అభ్యర్థించినప్పుడు ఫంక్షన్‌ను పిలుస్తుంది.

పారా మరింత సమాచారం Arduino ప్రోగ్రామింగ్ మరియు ఫంక్షన్ల గురించి మీరు మా డౌన్‌లోడ్ చేసుకోవచ్చు PDF ట్యుటోరియల్.

పిసిఎఫ్ 8574 అంటే ఏమిటి?

PCF8574 మాడ్యూల్

పిసిఎఫ్ 8574 a I2C బస్ డిజిటల్ ఇన్‌పుట్‌లు మరియు అవుట్‌పుట్‌లు (I / O) ఎక్స్‌పాండర్. ఇది ఐసిలు మరియు మాడ్యూళ్ళలో లభించడంతో పాటు, వివిధ తయారీదారులచే తయారు చేయవచ్చు. ఏదేమైనా, దీన్ని మీ ఆర్డునో బోర్డ్‌కు కనెక్ట్ చేయడం చాలా ఆచరణాత్మకమైనది మరియు మదర్‌బోర్డు అనుమతించే దానికంటే ఎక్కువ పరికరాలను నియంత్రించే సామర్థ్యాన్ని కలిగి ఉంటుంది.

El PCF8574 పిన్అవుట్ ఇది చాలా సులభం, ఎందుకంటే ఇది మాత్రమే కలిగి ఉంటుంది పిన్స్ పైన్ క్వాసి-డైరెక్షనల్ (చిప్స్ కనెక్ట్ అయ్యే P0-P7), మరియు మరోవైపు మీకు SDA మరియు SCL ఉన్నాయి, అవి మీరు ఆర్డునో బోర్డ్‌కు కనెక్ట్ కావాలి, అలాగే మాడ్యూల్‌కు శక్తినిచ్చే VCC మరియు GND. కమ్యూనికేషన్ ఏ పరికరాలకు దర్శకత్వం వహించాలో ఎంచుకోవడానికి మూడు అడ్రసింగ్ పిన్స్ A0, A1, A2 ను మర్చిపోవద్దు ...

PCF8574 పిన్అవుట్

ఇది ఉంది ఇతర లక్షణాలు మీరు తెలుసుకోవాలి:

  • దాని కనెక్షన్లు, ఓపెన్ డ్రెయిన్ కావడం కావచ్చు ఇన్‌పుట్‌లు మరియు అవుట్‌పుట్‌లుగా ఉపయోగించబడుతుంది.
  • La పీక్ కరెంట్ ఇది అవుట్‌పుట్‌గా పనిచేసేటప్పుడు ఇది 25mA (సింక్, ప్రస్తుత PCF8574 వైపు ప్రవహించినప్పుడు) మరియు 300 µA (మూలం, PCF8574 నుండి ప్రస్తుత ప్రవాహాలు).
  • La ఉద్రిక్తత విద్యుత్ సరఫరా 2.5 మరియు 6 వి. స్టాండ్-బై వినియోగం చాలా తక్కువ, కేవలం 10 µA మాత్రమే.
  • అన్ని ఉత్పాదనలు లాచెస్ ఉన్నాయి, బాహ్య చర్యల అవసరం లేకుండా రాష్ట్రాన్ని నిర్వహించడానికి. మీరు రాష్ట్రాన్ని మార్చాలనుకున్నప్పుడు మాత్రమే మీరు చర్య తీసుకోవాలి.
  • మీరు 8 పొందవచ్చు సాధ్యం దిశలు, అంటే, 8 పరికరాల వరకు విస్తరించడానికి 8 మాడ్యూళ్ళతో కమ్యూనికేట్ చేయడానికి లేదా ఉపయోగించడం కోసం 64 పరికరాల వరకు. చిరునామాలు (పిన్స్ A0, A1, A2):
    • 000: చిరునామా 0x20
    • 001: చిరునామా 0x21
    • 010: చిరునామా 0x22
    • 011: చిరునామా 0x23
    • 100: చిరునామా 0x24
    • 101: చిరునామా 0x25
    • 110: చిరునామా 0x26
    • 111: చిరునామా 0x27
  • అంగీకరించాడు ఆటంకం (INT) నిరంతరం పర్యవేక్షించకుండా డేటాను గుర్తించడానికి ప్రత్యేక లైన్ ద్వారా.

Arduino తో అనుసంధానం

Arduino IDE యొక్క స్క్రీన్ షాట్

Arduino తో కనెక్షన్ చాలా సులభం, మీరు Vcc ని Arduino బోర్డు యొక్క 5v పిన్‌తో మరియు GND ను Arduino యొక్క GND తో కనెక్ట్ చేయాలి. మరోవైపు, PCF8574 SDA మరియు SCL మాడ్యూల్ యొక్క పిన్స్ కావచ్చు పిన్స్‌తో కనెక్ట్ అవ్వండి 14 (A5 SCL) మరియు 15 (A4 SDA). దానితో మాత్రమే ఇది పనిచేయడం ప్రారంభిస్తుంది, స్పష్టంగా మీరు కమ్యూనికేట్ చేయదలిచిన పరికరాలను కనెక్ట్ చేయడానికి Px ను ఉపయోగించవచ్చు ...

అప్పుడు అది తప్పిపోతుంది ఉదాహరణ స్కెచ్‌తో ప్రారంభించండి Arduino IDE లో. ఉదాహరణకు అదనపు లైబ్రరీని ఉపయోగించకుండా మీరు దీన్ని చేయవచ్చు ...

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

ఇన్‌పుట్‌గా:

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

లేదా కూడా లైబ్రరీలను ఉపయోగించండి, మీరు చేయగల PCF8574 వంటివి ఇక్కడ డౌన్లోడ్ చేయండి మరియు ఈ లైబ్రరీతో పాటు వచ్చే ఉదాహరణ నుండి ఇలాంటి కోడ్‌ను ఉపయోగించండి:

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


వ్యాసం యొక్క కంటెంట్ మా సూత్రాలకు కట్టుబడి ఉంటుంది సంపాదకీయ నీతి. లోపం నివేదించడానికి క్లిక్ చేయండి ఇక్కడ.

వ్యాఖ్యానించిన మొదటి వ్యక్తి అవ్వండి

మీ వ్యాఖ్యను ఇవ్వండి

మీ ఇమెయిల్ చిరునామా ప్రచురితమైన కాదు. లు గుర్తించబడతాయి గుర్తించబడతాయి *

*

*

  1. డేటాకు బాధ్యత: మిగ్యుల్ ఏంజెల్ గాటన్
  2. డేటా యొక్క ఉద్దేశ్యం: కంట్రోల్ స్పామ్, వ్యాఖ్య నిర్వహణ.
  3. చట్టబద్ధత: మీ సమ్మతి
  4. డేటా యొక్క కమ్యూనికేషన్: డేటా చట్టపరమైన బాధ్యత ద్వారా తప్ప మూడవ పార్టీలకు తెలియజేయబడదు.
  5. డేటా నిల్వ: ఆక్సెంటస్ నెట్‌వర్క్స్ (EU) హోస్ట్ చేసిన డేటాబేస్
  6. హక్కులు: ఎప్పుడైనా మీరు మీ సమాచారాన్ని పరిమితం చేయవచ్చు, తిరిగి పొందవచ్చు మరియు తొలగించవచ్చు.