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

מודול מדידת כוח DIY עבור Arduino: 9 שלבים (עם תמונות)
מודול מדידת כוח DIY עבור Arduino: 9 שלבים (עם תמונות)

וִידֵאוֹ: מודול מדידת כוח DIY עבור Arduino: 9 שלבים (עם תמונות)

וִידֵאוֹ: מודול מדידת כוח DIY עבור Arduino: 9 שלבים (עם תמונות)
וִידֵאוֹ: ELF/EMBARC Bronchiectasis conference 2023 with subtitles 2024, יולי
Anonim
מודול מדידת כוח DIY עבור Arduino
מודול מדידת כוח DIY עבור Arduino
מודול מדידת כוח DIY עבור Arduino
מודול מדידת כוח DIY עבור Arduino
מודול מדידת כוח DIY עבור Arduino
מודול מדידת כוח DIY עבור Arduino

שלום לכולם, אני מקווה שהצלחתם מצויין! במדריך זה אני הולך להראות לך כיצד הכנתי את מודול מד הכוח/ וואט מד הזה לשימוש עם לוח Arduino. מד חשמל זה יכול לחשב את הכוח הנצרך על ידי ועומס DC. יחד עם הספק, מודול זה יכול גם לתת לנו קריאות מדויקות של מתח וזרם. הוא יכול למדוד בקלות מתח נמוך (סביב 2V) וזרמים נמוכים, עד 50 mA עם שגיאה של לא יותר מ -20mA. הדיוק תלוי בבחירת הרכיבים בהתאם לדרישותיך.

אספקה

  • IC LM358 כפול OP-AMP
  • בסיס IC 8 פינים
  • נגד שאנט (8.6 מיליאו -אוהם במקרה שלי)
  • נגדים: 100K, 10K, 2.2K, 1K (1/2 וואט)
  • קבלים: 3 * 0.1uF קבלים קרמיים
  • Veroboard או אפס לוח
  • מסופי ברגים
  • מלחם והלחמה
  • Arduino Uno או כל לוח תואם אחר
  • תצוגת OLED
  • חיבור חוטי הלחם

שלב 1: איסוף הרכיבים הדרושים

איסוף הרכיבים הנדרשים
איסוף הרכיבים הנדרשים

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

הבחירה והערך של הרכיבים תלויים בסוג היישום ובטווח העוצמה שברצונך למדוד.

שלב 2: עקרון העבודה

עקרון העבודה
עקרון העבודה
עקרון העבודה
עקרון העבודה
עקרון העבודה
עקרון העבודה
עקרון העבודה
עקרון העבודה

עבודת מודול ההספק מבוססת על שני מושגים של תורת המעגלים וחשמל בסיסי: תפיסת מחלק המתח למדידת מתח הכניסה וחוק אוהם לחישוב הזרם הזורם במעגל. אנו משתמשים בנגד shunt ליצירת ירידת מתח קטנה מאוד על פניו. ירידת מתח זו היא ביחס לכמות הזרם הזורם דרך השאנט. מתח קטן זה כאשר הוא מוגבר על ידי מגבר תפעולי יכול לשמש ככניסה למיקרו -בקר שניתן לתכנת אותו כדי לתת לנו את הערך הנוכחי. המגבר התפעולי משמש כמגבר לא הפוך שבו הרווח נקבע על ידי ערכי המשוב הנגד R2 ו- R1. השימוש בתצורה שאינה הופכת מאפשר לנו להיות בסיס משותף כאמצעי המדידה. לשם כך, הזרם נמדד בצד הנמוך של המעגל. ליישום שלי בחרתי רווח של 46 באמצעות הנגד 100K ו- 2.2K כרשת משוב. מדידת המתח מתבצעת באמצעות מעגל מחלק מתח המפריד את מתח הכניסה ביחס לרשת הנגדים המשמשת.

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

שלב 3: איחוד החלקים

איחוד החלקים
איחוד החלקים
איחוד החלקים
איחוד החלקים
איחוד החלקים
איחוד החלקים

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

שלב 4: הוספת החלקים לרשת מתח מתח

הוספת החלקים לרשת מתח מתח
הוספת החלקים לרשת מתח מתח
הוספת החלקים לרשת מתח מתח
הוספת החלקים לרשת מתח מתח
הוספת החלקים לרשת מתח מתח
הוספת החלקים לרשת מתח מתח

לצורך חישת מתח כניסה אני משתמש ברשת מפרידי מתח של 10K ו- 1K. הוספתי גם קבל 0.1 uF על פני הנגד של 1K כדי להחליק את המתחים. רשת תחושת המתח מולחמת ליד מסוף הכניסה.

שלב 5: הוספת החלקים לרשת החושים הנוכחית

הוספת החלקים לרשת החושים הנוכחית
הוספת החלקים לרשת החושים הנוכחית
הוספת החלקים לרשת החושים הנוכחית
הוספת החלקים לרשת החושים הנוכחית
הוספת החלקים לרשת החושים הנוכחית
הוספת החלקים לרשת החושים הנוכחית
הוספת החלקים לרשת החושים הנוכחית
הוספת החלקים לרשת החושים הנוכחית

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

שלב 6: השלמת החיבורים הנותרים וסיום הבנייה

השלמת החיבורים הנותרים וסיום הבנייה
השלמת החיבורים הנותרים וסיום הבנייה
השלמת החיבורים הנותרים וסיום הבנייה
השלמת החיבורים הנותרים וסיום הבנייה
השלמת החיבורים הנותרים וסיום הבנייה
השלמת החיבורים הנותרים וסיום הבנייה

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

שלב 7: חיבור המודול עם Arduino

חיבור המודול עם Arduino
חיבור המודול עם Arduino
חיבור המודול עם Arduino
חיבור המודול עם Arduino
חיבור המודול עם Arduino
חיבור המודול עם Arduino
חיבור המודול עם Arduino
חיבור המודול עם Arduino

כשהמודול הושלם, הגיע הזמן סוף סוף לחבר אותו עם Arduino ולהפעיל אותו. כדי לראות את הערכים, השתמשתי בתצוגת OLED שהשתמשה בפרוטוקול I2C כדי לתקשר עם הארדואינו. הפרמטרים המוצגים על המסך הם מתח, זרם והספק.

שלב 8: קוד פרויקט ותרשים מעגלים

קוד הפרויקט ותרשים המעגלים
קוד הפרויקט ותרשים המעגלים

צירפתי את תרשים המעגל ואת הקוד של מודול החשמל בשלב זה (בעבר צירפתי את קובץ ה-.ino וה- txt המכיל את הקוד אך שגיאת שרת כלשהי גרמה לקוד להיות בלתי נגיש או בלתי קריא למשתמשים, ולכן כתבתי את כל קוד בשלב זה. אני יודע שזו לא דרך טובה לשתף את הקוד:(). אל תהסס לשנות קוד זה בהתאם לדרישותיך. אני מקווה שהפרויקט הזה היה מועיל עבורך. אנא שתף את המשוב שלך בתגובות. לחיים!

#לִכלוֹל

#לִכלוֹל

#לִכלוֹל

#לִכלוֹל

#define OLED_RESET 4 תצוגת Adafruit_SSD1306 (OLED_RESET);

צף val = 0;

זרם צף = 0;

מתח צף = 0;

כוח צף = 0;

הגדרת בטל () {

pinMode (A0, INPUT);

pinMode (A1, INPUT);

display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // לאתחל עם ה- I2C addr 0x3C (עבור 128x32) display.display ();

עיכוב (2000);

// נקה את המאגר.

display.clearDisplay ();

display.setTextSize (1);

display.setCursor (0, 0);

display.setTextColor (לבן);

Serial.begin (9600); // לצפייה בערכים במסך הטורי

}

לולאת חלל () {

// לוקח את הממוצע לקריאות יציבות

עבור (int i = 0; i <20; i ++) {

current = current + analogRead (A0);

מתח = מתח + אנלוגי קרא (A1); }

הנוכחי = (הנוכחי/20); הנוכחי = הנוכחי * 0.0123 * 5.0; // ערך כיול, ישתנה בהתאם לרכיבים שבהם נעשה שימוש

מתח = (מתח/20); מתח = מתח * 0.0508 * 5.0; // ערך כיול, לשינוי בהתאם לרכיבים בהם נעשה שימוש

כוח = מתח*זרם;

// הדפסת הערכים על הצג הטורי

Serial.print (מתח);

Serial.print ("");

Serial.print (הנוכחי);

Serial.print ("");

Serial.println (כוח);

// הדפסת הערכים בתצוגת OLED

display.setCursor (0, 0);

display.print ("מתח:");

display.print (מתח);

display.println ("V");

display.setCursor (0, 10);

display.print ("Current:");

display.print (הנוכחי);

display.println ("A");

display.setCursor (0, 20);

display.print ("כוח:");

display.print (כוח);

display.println ("W");

display.display ();

עיכוב (500); // קצב רענון שנקבע על ידי העיכוב

display.clearDisplay ();

}

מוּמלָץ: