תוכן עניינים:

PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: 9 שלבים
PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: 9 שלבים

וִידֵאוֹ: PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: 9 שלבים

וִידֵאוֹ: PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר: 9 שלבים
וִידֵאוֹ: Кратенький обзор PCF8591 2024, יולי
Anonim
PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר
PCF8591 (מרחיב קלט/פלט אנלוגי i2c) שימוש קל ומהיר

ספרייה לשימוש ב- i2c pcf8591 IC עם arduino ו- esp8266.

IC זה יכול לשלוט (עד 4) קלט אנלוגי ו/או פלט אנלוגי אחד כמו מדידת מתח, קריאת ערך תרמיסטור או דהיית LED.

יכול לקרוא ערך אנלוגי ולכתוב ערך אנלוגי עם 2 חוטים בלבד (מושלם ל- ESP-01).

אני מנסה לפשט את השימוש ב- IC הזה, עם מערכת פעולה מינימלית.

תוכל למצוא גירסה מעודכנת באתר שלי

שלב 1: איך I2c עובד

כיצד עובד I2c
כיצד עובד I2c

I2C עובד עם שני חוטים, SDA (קו נתונים) ו- SCL (קו שעון).

שני הקווים הללו פתוחים לניקוז, אך נמשכים עם נגדים.

בדרך כלל יש מאסטר אחד ועבד אחד או מספר עבדים על הקו, למרות שיכולים להיות מאסטרים מרובים, אבל נדבר על זה מאוחר יותר.

שני המאסטרים וגם העבדים יכולים לשדר או לקבל נתונים, ולכן מכשיר יכול להיות באחת מארבע המצבים הללו: שידור מאסטר, קבלת מאסטר, שידור עבדים, קבלת עבדים.

שלב 2:

תוכל למצוא את הספרייה שלי כאן.

להוריד.

לחץ על כפתור ההורדה בפינה השמאלית העליונה, שנה את שם התיקיה הלא דחוסה PCF8591.

בדוק שהתיקייה PCF8591 מכילה PCF8591.cpp ו- PCF8591.h.

מקם את תיקיית הספרייה PCF8591 שלך / ספריות / תיקייה.

ייתכן שיהיה עליך ליצור את תיקיית המשנה של הספריות אם זו הספרייה הראשונה שלך.

הפעל מחדש את IDE.

שלב 3: שימוש

בונה: עליך לעבור את כתובת i2c (כדי לבדוק את הכתובת השתמש במדריך זה I2cScanner)

PCF8591 (כתובת uint8_t);

עבור esp8266 אם אתה רוצה לציין SDA e SCL pin השתמש בזה:

PCF8591 (כתובת uint8_t, uint8_t sda, uint8_t scl);

שלב 4: קרא ערך

קרא ערך
קרא ערך

ל- IC כפי שאתה יכול לראות בתמונה יש 4 כניסות אנלוגיות ויציאה אנלוגית אחת.

אז כדי לקרוא את כל הקלט האנלוגי בהעברה אחת אתה יכול לעשות (הערך הוא מ -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: קרא Vale מהערוץ

קרא את וייל מהערוץ
קרא את וייל מהערוץ

ל- IC זה יש סוג קריאה מרובה ותוכלו להשתמש בקלט אנלוגי או בערוץ אנלוגי (כאשר אתם משתמשים בכניסה אנלוגית קריאה בודדת והערוץ נמצא בתמונות).

לדוגמה כדי לקרוא את הערך של ערוץ 0 בשתי קלט דיפרנציאלי עליך לבצע:

int ana = pcf8591.analogRead (CHANNEL0, TWO_DIFFERENTIAL_INPUT); // קרא אנלוגי 0

שלב 6: כתוב ערך

אם אתה רוצה לכתוב ערך אנלוגי עליך לעשות (הערך הוא מ -0 עד 255):

pcf8591.analogWrite (128);

שלב 7: תכונות נוספות

תכונה נוספת היא קריאת מתח כתיבה: לצורך חישוב המתח עליך לעבור פרמטר כלשהו:

  • microcontrollerReferenceVoltage: קבל מתח מהמתח של המיקרו -בקר (רק AVR ללא esp8266 עבור esp 3.3v קבוע)
  • referenceVoltage: אם microcontrollerReferenceVoltage false קח ערך זה הפקודה היא:

void voltageWrite (value float, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

float voltageRead (uint8_t analogPin, bool microcontrollerReferenceVoltage = true, float referenceVoltage = 5.0);

דוגמה לכך היא:

pcf8591.voltageWrite (2.7); // פלט 2.7 וולט

עיכוב (3000);

float ana0V = pcf8591.voltageRead (AIN0); // קריאת מתח מאנלוגי 0

Serial.println (ana0V);

שלב 8: דוגמאות תרשים חיבור

דוגמאות תרשים חיבור
דוגמאות תרשים חיבור

שלב 9: תודה

סדרת פרויקטים i2c (אוסף):

  • חיישן לחות טמפרטורה
  • מרחיב אנלוגי
  • מרחיב דיגיטלי
  • תצוגת אל סי די

מוּמלָץ: