ዝርዝር ሁኔታ:

PCF8591 (i2c አናሎግ I/O Expander) ፈጣን ቀላል አጠቃቀም 9 ደረጃዎች
PCF8591 (i2c አናሎግ I/O Expander) ፈጣን ቀላል አጠቃቀም 9 ደረጃዎች

ቪዲዮ: PCF8591 (i2c አናሎግ I/O Expander) ፈጣን ቀላል አጠቃቀም 9 ደረጃዎች

ቪዲዮ: PCF8591 (i2c አናሎግ I/O Expander) ፈጣን ቀላል አጠቃቀም 9 ደረጃዎች
ቪዲዮ: Arduino analog port expander - pcf8591 with I2C protocol 2024, ሀምሌ
Anonim
PCF8591 (i2c አናሎግ I/O Expander) ፈጣን ቀላል አጠቃቀም
PCF8591 (i2c አናሎግ I/O Expander) ፈጣን ቀላል አጠቃቀም

ቤተ -መጽሐፍት i2c pcf8591 IC ን ከአርዱዲኖ እና esp8266 ጋር ለመጠቀም።

ይህ አይሲ (እስከ 4) የአናሎግ ግብዓት እና/ወይም 1 የአናሎግ ውፅዓት እንደ የመለኪያ voltage ልቴጅ ፣ የቴርሞስተር ዋጋን ያንብቡ ወይም መሪን ማደብዘዝ ይችላል።

የአናሎግ ዋጋን ማንበብ እና የአናሎግ ዋጋን በ 2 ሽቦ ብቻ (ለ ESP-01 ፍጹም) መጻፍ ይችላል።

እኔ በትንሹ የአሠራር ስብስብ ፣ የዚህን IC አጠቃቀም ለማቃለል እሞክራለሁ።

በጣቢያዬ ላይ የዘመነ ስሪት https://www.mischianti.org/2019/01/03/pcf8591-i2c-analog-i-o-expander/ ማግኘት ይችላሉ

ደረጃ 1: I2c እንዴት እንደሚሰራ

I2c እንዴት እንደሚሰራ
I2c እንዴት እንደሚሰራ

I2C በሁለት ገመዶች ማለትም SDA (የውሂብ መስመር) እና SCL (የሰዓት መስመር) ጋር አብሮ ይሰራል።

ሁለቱም እነዚህ መስመሮች ክፍት-ፍሳሽ ናቸው ፣ ግን ከተቃዋሚዎች ጋር ተጎተቱ።

ብዙውን ጊዜ በመስመሩ ላይ አንድ ጌታ እና አንድ ወይም ብዙ ባሮች አሉ ፣ ምንም እንኳን ብዙ ጌቶች ሊኖሩ ይችላሉ ፣ ግን ስለዚያ በኋላ እንነጋገራለን።

ሁለቱም ጌቶች እና ባሮች መረጃን ሊያስተላልፉ ወይም ሊቀበሉ ይችላሉ ፣ ስለሆነም አንድ መሣሪያ ከእነዚህ አራት ግዛቶች በአንዱ ሊሆን ይችላል -ማስተር ማስተላለፍ ፣ ማስተር መቀበል ፣ ባሪያ ማስተላለፍ ፣ ባሪያ መቀበል።

ደረጃ 2

የእኔን ቤተ -መጽሐፍት እዚህ ማግኘት ይችላሉ።

ለማውረድ.

በላይኛው ቀኝ ጥግ ላይ ያለውን የወረደውን ቁልፍ ጠቅ ያድርጉ ፣ ያልጨመቀውን አቃፊ PCF8591 እንደገና ይሰይሙ።

የ PCF8591 አቃፊ PCF8591.cpp እና PCF8591.h የያዘ መሆኑን ያረጋግጡ።

የ PCF8591 ቤተ -መጽሐፍት አቃፊ / ቤተ -መጽሐፍት / አቃፊዎን ያስቀምጡ።

የመጀመሪያ ቤተ -መጽሐፍትዎ ከሆነ የቤተ -መጻህፍት ንዑስ አቃፊን መፍጠር ሊያስፈልግዎት ይችላል።

IDE ን እንደገና ያስጀምሩ።

ደረጃ 3: አጠቃቀም

ገንቢ - የ i2c አድራሻውን ማለፍ አለብዎት (አድራሻውን ለመፈተሽ ይህንን መመሪያ I2cScanner ይጠቀሙ)

PCF8591 (uint8_t አድራሻ);

ለ esp8266 የ SDA እና SCL ፒን መግለፅ ከፈለጉ ይህንን ይጠቀሙ-

PCF8591 (uint8_t አድራሻ ፣ uint8_t sda ፣ uint8_t scl);

ደረጃ 4 ዋጋን ያንብቡ

እሴት ያንብቡ
እሴት ያንብቡ

በምስሉ ላይ እንደሚመለከቱት አይሲ 4 የአናሎግ ግብዓት እና 1 የአናሎግ ውፅዓት አላቸው።

ስለዚህ ሁሉንም የአናሎግ ግብዓት በአንድ መጓጓዣ ውስጥ ማንበብ ይችላሉ (እሴቱ ከ 0 እስከ 255 ነው)

PCF8591:: AnalogInput ai = pcf8591.analogReadAll ();

Serial.print (ai.ain0); Serial.print (" -"); Serial.print (ai.ain1); Serial.print (" -"); Serial.print (ai.ain2); Serial.print (" -"); Serial.println (ai.ain3);

አንድ የአናሎግ ግቤት ወይም ሰርጥ ማንበብ ከፈለጉ -

int ana = pcf8591.analogRead (AIN0); // አናሎግ 0 ን ያንብቡ

ደረጃ 5 ቫሌን ከሰርጥ ያንብቡ

ቫሌን ከሰርጥ ያንብቡ
ቫሌን ከሰርጥ ያንብቡ

ይህ አይሲ በርካታ የንባብ ዓይነቶች አሉት እና የአናሎግ ግብዓት ወይም የአናሎግ ሰርጥ (ነጠላ የንባብ አናሎግ ግብዓት ሲጠቀሙ እና ሰርጡ በስዕሎቹ ውስጥ ናቸው) መጠቀም ይችላሉ።

ለምሳሌ ፣ የሰርጥ 0 ዋጋን በሁለት ልዩነት ግብዓት ውስጥ ለማንበብ የሚከተሉትን ማድረግ አለብዎት

int ana = pcf8591.analogRead (CHANNEL0 ፣ TWO_DIFFERENTIAL_INPUT) ፤ // አናሎግ 0 ን ያንብቡ

ደረጃ 6: እሴት ይፃፉ

የአናሎግ ዋጋን መጻፍ ከፈለጉ ማድረግ አለብዎት (እሴቱ ከ 0 እስከ 255 ነው)

pcf8591.analogWrite (128);

ደረጃ 7 - ተጨማሪ ባህሪዎች

ተጨማሪ ባህሪ የፅህፈት ቮልቴጅን ማንበብ ነው - ለቮልቴጅ ስሌት የተወሰኑ መለኪያዎች ማለፍ አለብዎት-

  • ማይክሮ መቆጣጠሪያ መቆጣጠሪያ ማጣቀሻ (ቮልቴጅ) - ከማይክሮ መቆጣጠሪያ መቆጣጠሪያ ቮልቴጅን ያግኙ (AVR ብቻ esp8266 ለ esp 3.3v ተስተካክሏል)
  • ማጣቀሻ Voltage: ማይክሮ መቆጣጠሪያ ከሆነ ማጣቀሻ Voltage ሐሰት ይህንን እሴት ይውሰዱ ትዕዛዙ የሚከተሉት ናቸው

ባዶ ቮልቴጅ ፃፍ (ተንሳፋፊ እሴት ፣ bool microcontrollerReferenceVoltage = true, float reference Vololage = 5.0);

ተንሳፋፊ ቮልቴጅ አንብብ (uint8_t analogPin ፣ bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

አንድ ምሳሌ የሚከተለው ነው-

pcf8591.voltageWrite (2.7); // 2.7Volts ውፅዓት

መዘግየት (3000);

ተንሳፋፊ ana0V = pcf8591.voltageRead (AIN0); // ከአናሎግ 0 ን ያንብቡ

Serial.println (ana0V);

ደረጃ 8 - ምሳሌዎች የግንኙነት ንድፍ

ምሳሌዎች የግንኙነት ንድፍ
ምሳሌዎች የግንኙነት ንድፍ

ደረጃ 9: አመሰግናለሁ

i2c ፕሮጀክት ተከታታይ (ስብስብ):

  • የሙቀት እርጥበት ዳሳሽ
  • የአናሎግ ማስፋፊያ
  • ዲጂታል ማስፋፊያ
  • ኤልሲዲ ማሳያ

የሚመከር: