PCF8574: וועגן I2C I / O עקספּאַנדער פֿאַר אַרדוינאָ

PCF8574 טי שפּאָן

איר'ווע שורלי געהערט פון די יק פּקפ 8574, אַ שפּאָן וואָס קענען זיין פּערטשאַסט סעפּעראַטלי אָדער שוין מאָונטעד אויף אַ מאָדולע ווי פילע אנדערע עלעקטראָניש קאַמפּאָונאַנץ צו פאַסילאַטייט דיין ינטאַגריישאַן מיט דיין Arduino ברעט. אין דעם פאַל, עס איז אַן עקסטענדער פון די ינפּוץ און אַוטפּוץ פֿאַר די I2C ויטאָבוס.

איר קען טראַכטן אַז Arduino שוין האט זיין אייגן ינאַגרייטיד י 2 ק ויטאָבוס, און עס איז אמת. די PCF8574 קען העלפֿן די ויטאָבוס צו פאַרברייטערן די לימאַץ פון דיין אַנטוויקלונג באָרד, וואָס קען זיין אַ גרויסע הילף פֿאַר עטלעכע מייקערז וואָס דאַרפֿן מער ווי נאָר וואָס Arduino אָפפערס.

וואָס איז די I2C ויטאָבוס?

Arduino UNO מיליס פאַנגקשאַנז

דער נאָמען I2C קומט פֿון ינטער-ינטעגראַטעד קרייַז אָדער ינטער-ינאַגרייטיד סערקאַץ. ווערסיע 1.0 איז באשאפן אין 1992 דורך Philips. דערנאָך אַ צווייטע 2.1 וואָלט קומען אין 2000 און הייַנט עס איז געווארן אַ סטאַנדאַרט (ביי 100 קביט / s, כאָטש עס אַלאַוז אַרויף צו 3.4 מביט / s מאַקסימום) ווען דער פּאַטענט איז אויסגעגאנגען אין 2006 און קענען זיין געוויינט פרילי.

דערווייַל עס איז וויידלי געניצט אין דעם אינדוסטריע פֿאַר קאָמוניקאַציע, און אויך זייער אַפּרישיייטיד דורך מייקערז פֿאַר זייער פּראַדזשעקס צו יבערגעבן פאַרשידענע מיקראָ קאַנטראָולערז און פּעריפעראַלס ינאַגרייטיד אין איין יק.

El I2C איז אַ ויטאָבוס באַוווסט פֿון סיריאַל קאָמוניקאַציע. עס ניצט אַ סינטשראָנאָוס קאָמוניקאַציע פּראָטאָקאָל מיט בלויז 2 טשאַנאַלז (עס איז אַ דריט, אָבער עס איז קאַפּאַלד צו דערמאָנען אָדער GND), אין פאַקט עס איז אויך באַוווסט ווי TWI (Two Wire Interface):

  • איינער פֿאַר די זייגער (SCL).
  • אנדערע פֿאַר דאַטן (SDA).
ביידע זענען אָפן פליסן קמאָס קאַנעקשאַנז און ריקווייערז ציען-אַרויף רעסיסטאָרס. אויב איין מיטל טראַנסמיסיז אַ 0 און אנדערן אַ 1, עס קען זיין פּראָבלעמס, וואָס איז וואָס די שורה איז שטענדיק באַשטימט צו 1 (הויך מדרגה) און די דעוויסעס שטענדיק יבערשיקן 0 (נידעריק מדרגה).

אַז ימפּלייז אַז די בעל און שקלאַף זיי שיקן דאַטן איבער דער זעלביקער קאַבלע אָדער שפּור, וואָס איז קאַנטראָולד דורך דער ערשטער וואָס דזשענערייץ די זייגער סיגנאַל. יעדער פון די פּעריפעראַל דעוויסעס פארבונדן צו די I2C ויטאָבוס האָבן אַ יינציק אַדרעס צו ווייַזן די טראַנסמיסיע. אָבער עס איז ניט נייטיק אַז דער בעל איז שטענדיק דער זעלביקער (מולטי-בעל), עס איז שטענדיק ער וואָס ינישיאַץ די אַריבערפירן.

ווי איך שוין דערקלערט אין דעם אַרטיקל אויף Arduino I2C איך האָב פריער ריפערד, יעדער ברעט האט די I2C קאַנעקשאַנז אין פאַרשידענע ערטער. איר מוזן האַלטן אין זינען צו קענען צו נוצן עס רעכט אין יעדער ווערסיע:

  • Arduino UNO: SDA איז אין A4 און SCK אין A5
  • אַרדוינאָ נאַנאָ: די זעלבע ווי די פֿריִערדיקע.
  • אַרדוינאָ מיני פּראָ: זעלבע.
  • אַרדוינאָ מעגאַ: SDA איז אויף שפּילקע 20 און SCK אויף 21.
  • מער אינפֿאָרמאַציע וועגן פּלאַטעס.

איר שוין וויסן אַז איר קענען נוצן די I2C פֿאַר דיין סקעטשאַז ווייַל די Wire.h ביבליאָטעק מיט פאַרשידענע פאַנגקשאַנז פֿאַר דעם סיריאַל קאָמוניקאַציע:

  • אָנהייבן (): אָנהייב די ווירע ביבליאָטעק און ספּעציפיצירן אויב עס איז בעל אָדער שקלאַף
  • requestFrom (): געניצט דורך די בעל צו בעטן דאַטן פון דעם שקלאַף.
  • אָנהייבן טראַנסמיסיע (): אָנהייב טראַנסמיסיע מיט שקלאַף.
  • endTransmission (): סוף טראַנסמיסיע.
  • שרייַבן ()- שרייב דאַטן פון אַ שקלאַף אין ענטפער צו אַ בקשה פון די בעל, אָדער איר קענט באַקומען אַ טראַנסמיסיע פון ​​אַ בעל.
  • בנימצא (): וועט ווייַזן די נומער פון ביטעס צו לייענען.
  • לייענען (): לייענען אַ בייט טראַנסמיטטעד פֿון אַ שקלאַף צו אַ בעל אָדער וויצע ווערסאַ.
  • אָנרעסיווע (): רופט אַ פונקציע ווען אַ שקלאַף נעמט אַ טראַנסמיסיע פון ​​אַ בעל.
  • אָנרעקוועסט (): קאַללס אַ פונקציע ווען אַ שקלאַף ריקווייערז דאַטן פון אַ בעל.

פאַר מער אינפֿאָרמאַציע וועגן אַרדוינאָ פּראָגראַממינג און פאַנגקשאַנז, איר קענען אראפקאפיע אונדזער PDF טוטאָריאַל.

וואָס איז די PCF8574?

PCF8574 מאָדולע

די PCF8574 איז אַ I2C ויטאָבוס דיגיטאַל ינפּוץ און אַוטפּוץ (איך / אָ) יקספּאַנדערז. עס קענען זיין מאַניאַפאַקטשערד דורך פאַרשידן מאַניאַפאַקטשערערז, אין אַדישאַן צו האָבן עס בנימצא אין יקס און מאַדזשולז. אין קיין פאַל, עס איז זייער פּראַקטיש צו פאַרבינדן עס צו דיין Arduino ברעט און האָבן די קאַפּאַציטעט צו קאָנטראָלירן מער דעוויסעס ווי די מאָטהערבאָאַרד אַלאַוז.

El פּקפ 8574 פּינאָוט איז פּשוט ווייַל עס בלויז כולל 8 pines קוואַזי-דירעקטיאָנאַל (P0-P7 וווּ די טשיפּס צו יבערגעבן זענען פארבונדן), און אויף די אנדערע האַנט איר האָבן די SDA און SCL אַז איר מוזן פאַרבינדן צו די Arduino ברעט, ווי ווקק און GND צו מאַכט די מאָדולע. און טאָן ניט פאַרגעסן די דריי אַדרעסינג פּינס A0, A1, A2 צו קלייַבן צו די דעוויסעס די קאָמוניקאַציע איז דירעקטעד צו ...

פּקפ 8574 פּינאָוט

אָונז אנדערע פֿעיִקייטן אַז איר זאָל וויסן:

  • זיין קאַנעקשאַנז זייַנען אַן אָפן פליסן געוויינט ביידע ווי ינפּוץ און אַוטפּוץ.
  • La שפּיץ קראַנט עס איז 25 מאַ ווען עס אַקץ ווי אַ רעזולטאַט (זינקען, ווען קראַנט פלאָוז צו פּקפ 8574) און 300 µA (מקור, קראַנט פלאָוז פון פּקפ 8574).
  • La שפּאַנונג מאַכט צושטעלן איז 2.5 און 6 וו. דער פאַרהיטונג קאַנסאַמשאַן איז זייער נידעריק, בלויז 10 µA.
  • כל אַוטפּוץ האָבן לאַטשאַז, צו טייַנען די שטאַט אָן די נויט פֿאַר פונדרויסנדיק אַקשאַנז. איר נאָר האָבן צו האַנדלען ווען איר ווילן צו טוישן די שטאַט.
  • איר קענען באַקומען 8 מעגלעך אינסטרוקציעס, אַז איז, אַרויף צו 8 דעוויסעס צו יבערגעבן מיט אָדער ניצן 8 מאַדזשולז צו יקספּאַנד עס אַרויף צו 64 דעוויסעס. די אַדרעסעס (פּינס A0, A1, A2) וועלן זיין:
    • 000: אַדרעס 0 קס 20
    • 001: אַדרעס 0 קס 21
    • 010: אַדרעס 0 קס 22
    • 011: אַדרעס 0 קס 23
    • 100: אַדרעס 0 קס 24
    • 101: אַדרעס 0 קס 25
    • 110: אַדרעס 0 קס 26
    • 111: אַדרעס 0 קס 27
  • אַדמיץ יבעררייַס (INT) דורך אַ ספּעציעל שורה צו דעטעקט דאַטן אָן קעסיידערדיק מאָניטאָרינג.

ינטעגראַטיאָן מיט אַרדוינאָ

סקרעענשאָט פון Arduino IDE

די קשר מיט Arduino איז זייער פּשוט, איר נאָר האָבן צו פאַרבינדן Vcc מיט די 5v שפּילקע פון ​​די Arduino ברעט, און GND מיט GND פון Arduino. אויף די אנדערע האַנט, די פּינס פון די PCF8574 SDA און SCL מאָדולע קענען זיין פאַרבינדן מיט פּינס 14 (A5 SCL) און 15 (A4 SDA). בלויז מיט וואָס עס וואָלט אָנהייבן צו אַרבעטן, דאָך איר קענען נוצן די פּקס צו פאַרבינדן די דעוויסעס איר ווילן צו יבערגעבן ...

דערנאָך עס וואָלט נאָר פעלנדיק אָנהייבן מיט אַ בייַשפּיל סקיצע אין 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 וואָס איר קענען download here און נוצן קאָד ענלעך צו דעם פון דעם בייַשפּיל זיך וואָס קומט מיט די ביבליאָטעק:

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


דער אינהאַלט פון דעם אַרטיקל אַדכיר צו אונדזער פּרינציפּן פון לייט עטיקס. צו מעלדונג אַ טעות גיט דאָ.

זייט דער ערשטער צו באַמערקן

לאָזן דיין באַמערקונג

אייער בליצפּאָסט אַדרעס וועט נישט זייַן ארויס. Required fields זענען אנגעצייכנט מיט *

*

*

  1. פאַראַנטוואָרטלעך פֿאַר די דאַטן: Miguel Ángel Gatón
  2. ציל פון די דאַטן: קאָנטראָל ספּאַם, קאָמענטאַר פאַרוואַלטונג.
  3. לעגיטימאַטיאָן: דיין צושטימען
  4. קאָמוניקאַציע פון ​​די דאַטן: די דאַטן וועט נישט זיין קאַמיונאַקייטיד צו דריט פּאַרטיעס אַחוץ דורך לעגאַל פליכט.
  5. דאַטן סטאָרידזש: דאַטאַבייס כאָוסטיד דורך Occentus Networks (EU)
  6. רעכט: צו קיין צייט איר קענט באַגרענעצן, צוריקקריגן און ויסמעקן דיין אינפֿאָרמאַציע.