PCF8574: Arduino നായുള്ള I2C I / O എക്സ്പാൻഡറിനെക്കുറിച്ച്

PCF8574 TI CHIP

നിങ്ങൾ തീർച്ചയായും കേട്ടിട്ടുണ്ട് IC PCF8574, വെവ്വേറെ വാങ്ങാൻ‌ കഴിയുന്ന അല്ലെങ്കിൽ‌ ഇതിനകം തന്നെ ഒരു മൊഡ്യൂളിൽ‌ മ mounted ണ്ട് ചെയ്‌തിരിക്കുന്ന ഒരു ചിപ്പ് ഇലക്ട്രോണിക് ഘടകങ്ങൾ നിങ്ങളുടെ Arduino ബോർഡുമായുള്ള സംയോജനം സുഗമമാക്കുന്നതിന്. ഈ സാഹചര്യത്തിൽ, ഇത് ഇൻപുട്ടുകളുടെയും p ട്ട്‌പുട്ടുകളുടെയും വിപുലീകരണമാണ് I2C ബസ്.

Arduino- ന് ഇതിനകം സ്വന്തമായുണ്ടെന്ന് നിങ്ങൾ ചിന്തിച്ചേക്കാം സംയോജിത I2C ബസ്, അത് സത്യമാണ്. നിങ്ങളുടെ വികസന ബോർഡിന്റെ പരിധിക്കപ്പുറത്തേക്ക് ആ ബസ് നീട്ടാൻ പി‌സി‌എഫ് 8574 സഹായിക്കും, ഇത് അർഡുനോ നൽകുന്നതിനേക്കാൾ കൂടുതൽ ആവശ്യമുള്ള ചില നിർമ്മാതാക്കൾക്ക് വളരെയധികം സഹായകമാകും.

എന്താണ് ഐ 2 സി ബസ്?

Arduino UNO മില്ലിസ് പ്രവർത്തനങ്ങൾ

I2C എന്ന പേര് വന്നു ഇന്റർ-ഇന്റഗ്രേറ്റഡ് സർക്യൂട്ട് അല്ലെങ്കിൽ ഇന്റർ-ഇന്റഗ്രേറ്റഡ് സർക്യൂട്ടുകൾ. അതിന്റെ പതിപ്പ് 1.0 1992 ൽ ഫിലിപ്സ് സൃഷ്ടിച്ചു. 2.1 ൽ രണ്ടാമത്തെ 2000 വരും, ഇന്ന് ഇത് ഒരു സ്റ്റാൻഡേർഡായി മാറി (100 കിബിറ്റ് / സെക്കന്റിൽ, ഇത് പരമാവധി 3.4 മെബിറ്റ് / സെ വരെ അനുവദിക്കുമെങ്കിലും) 2006 ൽ പേറ്റന്റ് കാലഹരണപ്പെടുമ്പോൾ അത് സ use ജന്യമായി ഉപയോഗിക്കാൻ കഴിയും.

നിലവിൽ ഇത് വ്യവസായത്തിൽ വ്യാപകമായി ഉപയോഗിക്കുന്നു ആശയവിനിമയത്തിനായി, കൂടാതെ ഒരു ഐസിയിൽ സംയോജിപ്പിച്ചിരിക്കുന്ന വ്യത്യസ്ത മൈക്രോകൺട്രോളറുകളെയും അനുബന്ധ ഉപകരണങ്ങളെയും ആശയവിനിമയം നടത്തുന്നതിനുള്ള നിർമ്മാതാക്കൾ അവരുടെ പ്രോജക്റ്റുകളെ വളരെയധികം അഭിനന്ദിക്കുന്നു.

El I2C ഒരു ബസ്സാണ് അറിയപ്പെടുന്ന സീരിയൽ ആശയവിനിമയം. ഇത് 2 ചാനലുകൾ മാത്രമുള്ള ഒരു സിൻക്രണസ് കമ്മ്യൂണിക്കേഷൻ പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നു (മൂന്നിലൊന്ന് ഉണ്ട്, പക്ഷേ ഇത് റഫറൻസ് അല്ലെങ്കിൽ ജി‌എൻ‌ഡിയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു), വാസ്തവത്തിൽ ഇത് TWI (ടു വയർ ഇന്റർഫേസ്) എന്നും അറിയപ്പെടുന്നു:

  • ക്ലോക്കിനായി ഒന്ന് (എസ്‌സി‌എൽ).
  • ഡാറ്റയ്‌ക്കായുള്ള മറ്റുള്ളവ (എസ്‌ഡി‌എ).
രണ്ടും ഓപ്പൺ ഡ്രെയിൻ സി‌എം‌ഒ‌എസ് കണക്ഷനുകളാണ്, അവയ്ക്ക് പുൾ-അപ്പ് റെസിസ്റ്ററുകൾ ആവശ്യമാണ്. കൂടാതെ, ഒരു ഉപകരണം 0 ഉം മറ്റൊന്ന് 1 ഉം പ്രക്ഷേപണം ചെയ്യുകയാണെങ്കിൽ, പ്രശ്നങ്ങൾ ഉണ്ടാകാം, അതിനാലാണ് ലൈൻ എല്ലായ്പ്പോഴും 1 (ഉയർന്ന നില) ലേക്ക് സജ്ജമാക്കുന്നത്, കൂടാതെ ഉപകരണങ്ങൾ എല്ലായ്പ്പോഴും 0 (താഴ്ന്ന നില) കൈമാറുന്നു.

അത് സൂചിപ്പിക്കുന്നത് യജമാനനും അടിമയും ഒരേ കേബിളിലോ ട്രാക്കിലോ അവർ ഡാറ്റ അയയ്‌ക്കുന്നു, ഇത് ക്ലോക്ക് സിഗ്നൽ ജനറേറ്റുചെയ്യുന്ന ആദ്യത്തേത് നിയന്ത്രിക്കുന്നു. I2C ഓഫീസിലേക്ക് കണക്റ്റുചെയ്‌തിരിക്കുന്ന ഓരോ പെരിഫറൽ ഉപകരണങ്ങൾക്കും പ്രക്ഷേപണങ്ങൾ നയിക്കുന്നതിന് ഒരു അദ്വിതീയ വിലാസം നിശ്ചയിച്ചിരിക്കും. എന്നാൽ അധ്യാപകൻ എല്ലായ്പ്പോഴും ഒരുപോലെയായിരിക്കണമെന്നില്ല (മൾട്ടി-ടീച്ചർ), കൈമാറ്റത്തിന് തുടക്കം കുറിക്കുന്നത് അവനാണ്.

എന്ന ലേഖനത്തിൽ ഞാൻ ഇതിനകം വിശദീകരിച്ചതുപോലെ ആർഡ്വിനോ I2C ഞാൻ നേരത്തെ പരാമർശിച്ചു, ഓരോ ബോർഡിനും വ്യത്യസ്ത സ്ഥലങ്ങളിൽ ഈ I2C കണക്ഷനുകൾ ഉണ്ട്. ഓരോ പ്ലേറ്റ് പതിപ്പിലും ഇത് ശരിയായി ഉപയോഗിക്കാൻ നിങ്ങൾ ശ്രദ്ധിക്കേണ്ട കാര്യമാണ്:

നിങ്ങളുടെ സ്കെച്ചുകൾക്കായി I2C എളുപ്പത്തിൽ ഉപയോഗിക്കാമെന്ന് നിങ്ങൾക്കറിയാം Wire.h ലൈബ്രറി ഈ സീരിയൽ ആശയവിനിമയത്തിനായി വിവിധ ഫംഗ്ഷനുകൾ‌ക്കൊപ്പം:

  • ആരംഭിക്കുന്നു (): വയർ ലൈബ്രറി ആരംഭിച്ച് അത് മാസ്റ്ററോ അടിമയാണോ എന്ന് വ്യക്തമാക്കുക
  • requestFrom (): അടിമയിൽ നിന്ന് ഡാറ്റ അഭ്യർത്ഥിക്കാൻ മാസ്റ്റർ ഉപയോഗിക്കുന്നു.
  • startTransmission (): അടിമ ഉപയോഗിച്ച് പ്രക്ഷേപണം ആരംഭിക്കുക.
  • endTransmission (): എൻഡ് ട്രാൻസ്മിഷൻ.
  • എഴുതുക ()- മാസ്റ്ററുടെ അഭ്യർത്ഥനയ്‌ക്ക് മറുപടിയായി ഒരു അടിമയിൽ നിന്ന് ഡാറ്റ എഴുതുക അല്ലെങ്കിൽ നിങ്ങൾക്ക് ഒരു മാസ്റ്ററുടെ പ്രക്ഷേപണം ക്യൂ ചെയ്യാനാകും
  • ലഭ്യമാണ് (): വായിക്കാനുള്ള ബൈറ്റുകളുടെ എണ്ണം നൽകും.
  • വായിക്കുക (): അടിമയിൽ നിന്ന് യജമാനനിലേക്ക് കൈമാറിയ ഒരു ബൈറ്റ് വായിക്കുക അല്ലെങ്കിൽ തിരിച്ചും.
  • onReceive (): ഒരു അടിമയ്ക്ക് യജമാനനിൽ നിന്ന് ഒരു ട്രാൻസ്മിഷൻ ലഭിക്കുമ്പോൾ ഒരു ഫംഗ്ഷൻ വിളിക്കുന്നു.
  • onRequest (): ഒരു അടിമ ഒരു മാസ്റ്ററിൽ നിന്ന് ഡാറ്റ അഭ്യർത്ഥിക്കുമ്പോൾ ഒരു ഫംഗ്ഷൻ വിളിക്കുന്നു.

പാരാ കൂടുതൽ വിവരങ്ങൾ Arduino പ്രോഗ്രാമിംഗിനെക്കുറിച്ചും നിങ്ങൾക്ക് ഞങ്ങളുടെ ഡ download ൺലോഡ് ചെയ്യാൻ കഴിയുന്ന പ്രവർത്തനങ്ങളെക്കുറിച്ചും PDF ട്യൂട്ടോറിയൽ.

എന്താണ് പിസിഎഫ് 8574?

PCF8574 മൊഡ്യൂൾ

പിസിഎഫ് 8574 ഒരു ഐ 2 സി ബസ് ഡിജിറ്റൽ ഇൻപുട്ടുകളും p ട്ട്‌പുട്ടുകളും (ഐ / ഒ) എക്സ്പാൻഡർ. ഇത് വിവിധ നിർമ്മാതാക്കൾക്ക് നിർമ്മിക്കാൻ കഴിയും, കൂടാതെ ഇത് ഐസികളിലും മൊഡ്യൂളുകളിലും ലഭ്യമാണ്. എന്തായാലും, ഇത് നിങ്ങളുടെ ആർഡുനോ ബോർഡിലേക്ക് കണക്റ്റുചെയ്യുന്നത് വളരെ പ്രായോഗികമാണ്, കൂടാതെ മദർബോർഡ് അനുവദിക്കുന്നതിനേക്കാൾ കൂടുതൽ ഉപകരണങ്ങൾ നിയന്ത്രിക്കാനുള്ള ശേഷിയുമുണ്ട്.

El PCF8574 പിൻ out ട്ട് ഇത് വളരെ ലളിതമാണ്, കാരണം അതിൽ മാത്രം ഉൾപ്പെടുന്നു 8 പൈൻസ് ക്വാസി-ദിശാസൂചന (ആശയവിനിമയം നടത്താനുള്ള ചിപ്പുകൾ ബന്ധിപ്പിച്ചിരിക്കുന്ന P0-P7), മറുവശത്ത് നിങ്ങൾക്ക് എസ്‌ഡി‌എയും എസ്‌സി‌എല്ലും ഉണ്ട്, അവ നിങ്ങൾ‌ ആർ‌ഡിനോ ബോർഡുമായി ബന്ധിപ്പിക്കണം, കൂടാതെ മൊഡ്യൂളിനെ ശക്തിപ്പെടുത്തുന്നതിന് വി‌സി‌സി, ജി‌എൻ‌ഡി എന്നിവയും. ആശയവിനിമയം ഏത് ഉപകരണങ്ങളിലേക്കാണ് നയിക്കേണ്ടതെന്ന് തിരഞ്ഞെടുക്കാൻ മൂന്ന് വിലാസ പിൻ എ 0, എ 1, എ 2 എന്നിവ മറക്കരുത് ...

PCF8574 പിൻ out ട്ട്

ഉടമസ്ഥാവകാശം മറ്റ് സവിശേഷതകൾ നിങ്ങൾ അറിയേണ്ട:

  • ഇതിന്റെ കണക്ഷനുകൾ ഒരു തുറന്ന ഡ്രെയിൻ ആയതിനാൽ ആകാം ഇൻപുട്ടുകളും p ട്ട്‌പുട്ടുകളും ഉപയോഗിക്കുന്നു.
  • La പീക്ക് കറന്റ് ഒരു output ട്ട്‌പുട്ടായി പ്രവർത്തിക്കുമ്പോൾ ഇത് 25mA ആണ് (സിങ്ക്, പിസിഎഫ് 8574 ലേക്ക് വൈദ്യുത പ്രവാഹം നടക്കുമ്പോൾ) 300 µA (ഉറവിടം, പിസിഎഫ് 8574 ൽ നിന്നുള്ള വൈദ്യുത പ്രവാഹം).
  • La പിരിമുറുക്കം വൈദ്യുതി വിതരണം 2.5 ഉം 6 വി. സ്റ്റാൻഡ്-ബൈ ഉപഭോഗം വളരെ കുറവാണ്, 10 µA മാത്രം.
  • എല്ലാ p ട്ട്‌പുട്ടുകളും ലാച്ചുകൾ ഉണ്ട്, ബാഹ്യ പ്രവർത്തനങ്ങളുടെ ആവശ്യമില്ലാതെ സംസ്ഥാനം നിലനിർത്തുന്നതിന്. സംസ്ഥാനം മാറ്റാൻ നിങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ മാത്രമേ നിങ്ങൾ പ്രവർത്തിക്കാവൂ.
  • നിങ്ങൾക്ക് 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 എന്നിവയുമായി ബന്ധിപ്പിക്കണം. മറുവശത്ത്, പി‌സി‌എഫ് 8574 എസ്‌ഡി‌എ, എസ്‌സി‌എൽ മൊഡ്യൂളിന്റെ പിന്നുകൾ‌ ആകാം പിൻ ഉപയോഗിച്ച് ബന്ധിപ്പിക്കുക 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. ഡാറ്റ സംഭരണം: ഒസെന്റസ് നെറ്റ്‌വർക്കുകൾ (ഇയു) ഹോസ്റ്റുചെയ്യുന്ന ഡാറ്റാബേസ്
  6. അവകാശങ്ങൾ: ഏത് സമയത്തും നിങ്ങളുടെ വിവരങ്ങൾ പരിമിതപ്പെടുത്താനും വീണ്ടെടുക്കാനും ഇല്ലാതാക്കാനും കഴിയും.