תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
כיצד תוכל לברר אודות מפלס המים במיכל מים? כדי לעקוב אחר דברים מסוג זה, אתה יכול להשתמש בחיישן לחץ. זהו ציוד שימושי מאוד לאוטומציה תעשייתית, באופן כללי. היום נדבר על המשפחה המדויקת הזו של חיישני לחץ MPX, במיוחד למדידת לחץ. אכיר לך את חיישן הלחץ MPX5700 ואבצע הרכבה לדוגמה באמצעות ESP WiFi LoRa 32.
לא אשתמש בתקשורת LoRa במעגל היום, לא WiFi ולא בלוטות '. עם זאת, בחרתי ב- ESP32 זה מכיוון שכבר לימדתי בסרטונים אחרים כיצד להשתמש בכל התכונות בהן אני דן היום.
שלב 1: הפגנה
שלב 2: שימוש במשאבים
• חיישן לחץ דיפרנציאלי MPX5700DP
• פוטנציומטר 10k (או טרימפוט)
• פרוטובורד
• חוטי חיבור
• כבל יו אס בי
• ESP WiFi LoRa 32
• מדחס אוויר (אופציונלי)
שלב 3: מדוע למדוד לחץ?
• ישנם יישומים רבים בהם הלחץ הוא משתנה שליטה חשוב.
• אנו יכולים לערב מערכות בקרה פנאומטיות או הידראוליות.
• מכשור רפואי.
• רובוטיקה.
• בקרה על תהליכים תעשייתיים או סביבתיים.
• מדידת מפלסים במאגרי נוזלים או גזים.
שלב 4: משפחת חיישני הלחץ MPX
• הם מתמרי לחץ במתח חשמלי.
• הם מבוססים על חיישן התנגדות לפיזו, שבו הדחיסה מומרת לווריאציה של ההתנגדות החשמלית.
• ישנן גרסאות המסוגלות למדוד הפרשי לחץ קטנים (מ -0 ל -0.04atm), או וריאציות גדולות (מ -0 עד 10atm).
• הם מופיעים במספר חבילות.
• הם יכולים למדוד לחץ מוחלט (ביחס לוואקום), לחץ דיפרנציאלי (ההבדל בין שני לחצים, p1 ו- p2), או מד (ביחס ללחץ האטמוספרי).
שלב 5: MPX5700DP
• סדרת 5700 כוללת חיישנים מוחלטים, דיפרנציאליים ומדדים.
• ה- MPX5700DP יכול למדוד לחץ דיפרנציאלי מ 0 עד 700kPa (כ -7 אטם).
• מתח המוצא משתנה בין 0.2V ל- 4.7V.
• העוצמה שלו היא בין 4.75V ל -5.25V
שלב 6: להפגנה
• הפעם, לא נבצע יישום מעשי באמצעות חיישן זה; נעלה אותו רק ונבצע כמה מדידות כהדגמה.
• לשם כך נשתמש במדחס אוויר ישיר להפעלת לחץ בכניסת הלחץ הגבוה (p1) ונקבל את ההפרש ביחס ללחץ האטמוספרי המקומי (p2).
• ה- MPX5700DP הוא חיישן חד כיווני, מה שאומר שהוא מודד הבדלים חיוביים כאשר p1 חייב תמיד להיות גדול או שווה ל- p2.
• p1> p2 וההפרש יהיה p1 - p2
• ישנם חיישנים דיפרנציאליים דו-כיווניים שיכולים להעריך הבדלים שליליים וחיוביים.
• למרות שמדובר בהדגמה בלבד, נוכל להשתמש בעקרונות כאן בכדי לשלוט למשל בלחץ במאגר אוויר המופעל על ידי מדחס זה.
שלב 7: כיול ה- ESP ADC
• מכיוון שאנו יודעים שההמרה האנלוגית-דיגיטלית של ESP אינה לינארית לחלוטין ויכולה להשתנות בין SoC למשנהו, נתחיל בקביעה פשוטה של התנהגותו.
• בעזרת פוטנציומטר ומולטימטר נמדוד את המתח המופעל על ה- AD ונייחס אותו לערך המצוין.
• בעזרת תוכנית פשוטה לקריאת ה- AD ואיסוף המידע בטבלה, הצלחנו לקבוע את עקומת התנהגותו.
שלב 8: חישוב הלחץ
• למרות שהיצרן מספק לנו את הפונקציה בהתנהגות הרכיב, תמיד מומלץ לבצע כיול כאשר אנו מדברים על ביצוע מדידות.
• אולם מכיוון שמדובר בהדגמה בלבד, נשתמש ישירות בפונקציה המצויה בגיליון הנתונים. לשם כך, נתפעל אותו באופן שנותן לנו את הלחץ כפונקציה של ערך ה- ADC.
* זכור כי חלק המתח המופעל על ה- ADC על ידי מתח הייחוס חייב להיות בעל אותו ערך כמו ה- ADC הנקרא על ידי ה- ADC הכולל. (תוך התעלמות מהתיקון)
שלב 9: הרכבה
• לחיבור החיישן, חפש את החריץ באחד המסופים שלו, המציין את סיכה 1.
• סופרים משם:
פין 1 מספק פלט אות (מ 0V ל 4.7V)
סיכה 2 היא ההפניה. (GND)
פין 3 לעוצמה. (לעומת)
• מכיוון שפלט האות הוא 4.7V, נשתמש במפריד מתח כך שהערך המקסימלי יהיה שווה ל -3V3. לשם כך ביצענו את ההתאמה בעזרת הפוטנציומטר.
שלב 10: קוד המקור
קוד מקור: #כולל ומגדיר
// Bibliotecas para utilização do display oLED #include // Necessário apenas para o Arduino 1.6.5 e posterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h" // Os pinos do OLED estão conectados ao ESP32 מגדיר את מספר ה- GPIO: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST deve ser ajustado por software
מקור: משתנים וקבועים גלובליים
תצוגת SSD1306 (0x3c, SDA, SCL, RST); // Instanciando e ajustando os pinos do objeto "display" const int amostras = 10000; // número de amostras coletadas para a média const int pin = 13; // pino de leitura const float fator_atm = 0.0098692327; // fator de conversão para atmosferas const float fator_bar = 0.01; // fator de conversão para bar const float fator_kgf_cm2 = 0.0101971621; // fator de conversão kgf/cm2
קוד מקור: הגדרות ()
הגדרת void () {pinMode (pin, INPUT); // pino de leitura analógica Serial.begin (115200); // iniciando סדרתי // Inicia o display display.init (); display.flipScreenVertically (); // Vira a tela verticalmente}
קוד מקור: לולאה ()
לולאת void () {float medidas = 0.0; // variável para manipular as medidas float pressao = 0.0; // variável para armazenar o valor da pressão // inicia a coleta de amostras do ADC for (int i = 0; i
קוד מקור: פונקציה המחשבת את הלחץ ב- kPa
float calculaPressao (float medida) {// Calcula a pressão com o // valor do AD corrigido pela função corrige Medida () // Esta função foi escrita de acordo com dados do fabricante // e NéO LEVA EM CONSIDERAÇÃO OS POSSÍVEIS DESVIOS DO COMPONENTE (טעות) החזר ((corrigeMedida (medida) / 3.3) - 0.04) / 0.0012858; }
- תמונות
קוד מקור: פונקציה המתקנת את ערך ה- AD
float corrige Medida (float x) { / * Esta função foi obtida através da relação entre a tensão aplicada no AD e valor lido * / return 4.821224180510e-02 + 1.180826610901e-03 * x + -6.640183463236e-07 * x * 5.235532597676e-10 * x * x * x + -2.020362975028e-13 * x * x * x * x + 3.809807883001e-17 * x * x * x * x * x + -2.896158699016e-21 * x * x * x * x * x * x; }
שלב 11: קבצים
הורד את הקבצים:
INO