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

קנה מידה דיגיטלי עם ESP32: 12 שלבים
קנה מידה דיגיטלי עם ESP32: 12 שלבים

וִידֵאוֹ: קנה מידה דיגיטלי עם ESP32: 12 שלבים

וִידֵאוֹ: קנה מידה דיגיטלי עם ESP32: 12 שלבים
וִידֵאוֹ: עשה זאת בעצמך DC UPS 1228-12 עבור 100 וואט - חלק 2, הרכבה למארז, ממירי מתח 2024, דֵצֶמבֶּר
Anonim
Image
Image
משאבים בשימוש
משאבים בשימוש

האם חשבת פעם על התקנת סולם דיגיטלי באמצעות ESP32 וחיישן (המכונה תא עומס)? היום אראה לך כיצד לעשות זאת באמצעות תהליך המאפשר גם בדיקות מעבדה אחרות, כגון זיהוי הכוח שמנוע מבצע בנקודה, בין דוגמאות אחרות.

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

שלב 1: שימוש במשאבים

• Heltec Lora 32 WiFi ESP

• תא טעינה (0 עד 50 ניוטון, באמצעות סולם)

• פוטנציומטר אחד של 100k (עדיף אם אתה משתמש בטרמפוט רב וולט להתאמה דקה)

• 1 מגבר אופ LM358

• 2 נגדים 1M5

• 2 נגדים של 10k

• נגד אחד 4k7

• חוטים

• פרוטובארד

• כבל USB ל- ESP

• משקל, מיכל עם נפח מדורג, או כל שיטת כיול אחרת.

שלב 2: הפגנה

הפגנה
הפגנה

שלב 3: טען תאים

טען תאים
טען תאים

• הם מתמרי כוח.

• הם יכולים להשתמש בשיטות שונות לתרגם את הכוח המופעל לגודל פרופורציונלי שיכול לשמש כמדד. בין הנפוצים ביותר הם אלה שמשתמשים בהרחבות יריעות, האפקט הפיזואלקטרי, הידראוליקה, מיתרים רוטטים וכו '…

• ניתן לסווג אותם גם לפי צורת המדידה (מתח או דחיסה)

שלב 4: טען תאים ומדדי זן

טען תאים ומדדי זן
טען תאים ומדדי זן
טען תאים ומדדי זן
טען תאים ומדדי זן

• מדדי הרחבה של גיליונות הם סרטים (בדרך כלל מפלסטיק) עם חוט מודפס בעלי התנגדות שיכולה להשתנות עם שינוי הגודל שלהם.

• בנייתו נועדה בעיקר להמיר עיוות מכני לווריאציה בעוצמה חשמלית (התנגדות). זה קורה רצוי בכיוון אחד, כך שניתן לבצע הערכת רכיבים. לשם כך, השילוב של מספר הרחבות נפוץ

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

• הם ידועים גם כמדדי מתיחה.

• כאשר הם נמתחים בכוח מתיחה, החוטים מתארכים וצרים, ומגבירים את ההתנגדות.

• בעת דחיסה בכוח דחיסה, החוטים מתקצרים ומתרחבים, ומפחיתים את ההתנגדות.

שלב 5: גשר ויטסטון

גשר ויטסטון
גשר ויטסטון

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

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

• אם R1 = Rx ו- R2 = R3, מחיצות המתח יהיו שוות, והמתחים Vc ו- Vb יהיו גם שווים, כאשר הגשר בשיווי משקל. כלומר, Vbc = 0V;

• אם Rx שונה מ- R1, הגשר לא יהיה מאוזן והמתח Vbc יהיה אפס.

• אפשר להראות כיצד וריאציה זו אמורה להתרחש, אך כאן, נבצע כיול ישיר, המתייחס לערך הנקרא ב- ADC למסה המופעלת על תא העומס.

שלב 6: הגברה

הַגבָּרָה
הַגבָּרָה

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

• כדי לפתור מצב זה, נשתמש בשני שלבי הגברה. אחד כדי לקבוע את ההבדל ואחר כדי להתאים את הערך המתקבל ל- ADC של ה- ESP.

שלב 7: הגברה (תכנית)

הגברה (תכנית)
הגברה (תכנית)

• הרווח של שלב החיסור ניתן על ידי R6 / R5 וזהה ל- R7 / R8.

• הרווח של השלב הסופי שאינו הופך ניתן על ידי פוט / R10

שלב 8: איסוף נתונים לכיול

איסוף נתונים לכיול
איסוף נתונים לכיול
איסוף נתונים לכיול
איסוף נתונים לכיול

• לאחר ההרכבה, הגדרנו את הרווח הסופי כך שערך המסה הנמדדת הגדולה ביותר קרוב לערך המרבי של ה- ADC. במקרה זה, עבור 2 ק ג המוחלים בתא, מתח המוצא היה סביב 3V3.

• לאחר מכן, אנו משתנים את המסה המיושמת (הידועה באמצעות איזון ולכל ערך), ומשייכים LEITUR של ה- ADC, תוך השגת הטבלה הבאה.

שלב 9: השגת קשר תפקודי בין המסה הנמדדת לבין הערך של ה- ADC המתקבל

קבלת קשר תפקודי בין המסה הנמדדת לבין ערך ה- ADC המתקבל
קבלת קשר תפקודי בין המסה הנמדדת לבין ערך ה- ADC המתקבל

אנו משתמשים בתוכנת PolySolve כדי להשיג פולינום המייצג את הקשר בין המסה לערך ה- ADC.

שלב 10: קוד המקור

קוד המקור - #כולל

כעת, כשיש לנו כיצד לקבל את המדידות ולדעת את הקשר בין ה- ADC לבין המסה המיושמת, אנו יכולים להמשיך לכתיבת התוכנה בפועל.

// Bibliotecas para utilização do display oLED #include // Necessário apenas para o Arduino 1.6.5 e anterior #include "SSD1306.h" // o mesmo que #include "SSD1306Wire.h"

קוד מקור - #הגדרות

// OS pinos do OLED estão conectados ao ESP32 pelos seguintes GPIO's: // OLED_SDA - GPIO4 // OLED_SCL - GPIO15 // OLED_RST - GPIO16 #define SDA 4 #define SCL 15 #define RST 16 // RST desve ser ajustado תוכנת פור

מקור - משתנים וקבועים גלובליים

תצוגת 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; // פינו דה לייטורה

קוד מקור - הגדרה ()

הגדרת 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 massa = 0.0; // variável para armazenar o valor da massa // inicia a coleta de amostras do ADC for (int i = 0; i (5000)) // se está ligado a mais que 5 segundos {// Envia um CSV contendo o instante, a medida média for ADC e o valor em gramas // para a Serial. Serial.print (מילי () / 1000.0, 0); // instante em segundos Serial.print (","); Serial.print (medidas, 3); // valor médio obtido no ADC Serial.print (","); Serial.println ((מסה), 1); // massa em gramas // לא להצטייר ללא מאגר להציג display.clear (); // Limpa o buffer do display // ajusta o alinhamento para a esquerda display.setTextAlignment (TEXT_ALIGN_LEFT); // ajusta a fonte para Arial 16 display.setFont (ArialMT_Plain_16); // אסור להציג חיץ במסך display.drawString (0, 0, "Massa:" + String (int (massa)) + "g"); // אין צורך במאגר או אומץ לעשות ADC display.drawString (0, 30, "ADC:" + String (int (medidas))); } else // se está ligado a menos de 5 segundos {display.clear (); // limpa o buffer do display.setTextAlignment (TEXT_ALIGN_LEFT); // Ajusta o alinhamento para a esquerda display.setFont (ArialMT_Plain_24); // ajusta a fonte para Arial 24 display.drawString (0, 0, "Balança"); // escreve no buffer display.setFont (ArialMT_Plain_16); // Ajusta a fonte para Arial 16 display.drawString (0, 26, "ESP-WiFi-Lora"); // escreve no buffer} display.display (); // העבר או חיץ עבור עיכוב תצוגה (50); }

קוד מקור - calculation פונקציה Massa ()

// função para cálculo da massa obtida pela regressão // usando oPolySolve float calculaMassa (float medida) {return -6.798357840659e + 01 + 3.885671618930e-01 * medida + 3.684944764970e-04 * medida * medida + -3.7481038 * -3.7481038 * medida * medida * medida + 1.796252359323e-10 * medida * medida * medida * -3.995722708150e-14 * medida * medida * medida * medida * medida + 3.284692453344e-18 * medida * medida * medida * medida * medida * מדידה; }

שלב 11: התחלה ומדידה

מתחילים ומודדים
מתחילים ומודדים

שלב 12: קבצים

הורד את הקבצים

INO

PDF

מוּמלָץ: