כל האוהבים המוטבעים מכירים את המולטימטר שהוא כלי נהדר למדידת מתח, זרם, התנגדות וכו '. מודד יכול למדוד אותם בקלות. אבל לפעמים אנחנו צריכים למדוד השראות וקיבול שלא ניתן עם מולטימטר רגיל. ישנם כמה מולטימטרים מיוחדים שיכולים למדוד השראות וקיבול, אך הם יקרים. בנינו כבר מד תדרים, מד קיבוליות ומד התנגדות באמצעות Arduino. אז היום אנחנו הולכים לעשות השראות Arduino באמצעות מד LC. בפרויקט זה נציג את ערכי ההשראות והקיבול יחד עם התדר מעל צג LCD בגודל 16x2. במעגל ניתן לחצן כפתור כדי לעבור בין קיבול לתצוגת השראות.
רכיבים נדרשים
- ארדואינו אונו
- 741 IC IC
- סוללת 3v
- נגד 100 אוהם
- קבלים
- משרנים
- דיודת 1n4007
- נגד 10k
- סיר 10k
- ספק כוח
- לחץ על הכפתור
- לוח לחם או PCB
- חוטי חיבור
חישוב תדירות והשראות
בפרויקט זה אנו הולכים למדוד השראות וקיבול באמצעות מעגל LC במקביל. מעגל זה הוא כמו טבעת או פעמון שמתחילים להדהד בתדירות מסוימת. בכל פעם שאנחנו מפעילים דופק, מעגל LC זה יתחיל להדהד ותדר התהודה הזה הוא בצורה של אנלוגי (גל סינוסי) ולכן עלינו להמיר אותו בגל סקוויר. לשם כך, אנו מיישמים את תדר התהודה האנלוגי הזה על אופמפ (741 במקרה שלנו) שימיר אותו בגל סקוויר (תדר) ב 50% ממחזור החובה. כעת אנו מודדים את התדר על ידי שימוש בארדואינו ועל ידי שימוש בחישוב מתמטי כלשהו אנו יכולים למצוא את ההשראות או הקיבול. השתמשנו בנוסחת תגובת תדר מעגל LC הנתונה.
f = 1 / (2 * זמן)
איפה הזמן הוא פלט של pulseIn () פונקציה
עכשיו יש לנו תדר מעגל LC:
f = 1/2 * Pi * שורש ריבועי של (LC)
אנחנו יכולים לפתור את זה כדי לקבל השראות:
f 2 = 1 / (4Pi 2 LC) L = 1 / (4Pi 2 f 2 C) L = 1 / (4 * Pi * Pi * f * f * C)
כפי שכבר הזכרנו כי הגל שלנו הוא גל סינוסי ולכן יש לו פרק זמן זהה במשרעת חיובית ושלילית כאחד. פירושו שהמשווה ימיר אותו לגל מרובע בעל מחזור חובה של 50%. כדי שנוכל למדוד את זה באמצעות פונקציית pulseIn () של Arduino. פונקציה זו תיתן לנו פרק זמן אשר ניתן להמיר בקלות לתדר על ידי היפוך פרק הזמן. כפי pulseIn מיידה פונקציה רק דופק אחד, אז עכשיו כדי לקבל תדר נכון עלינו להכפיל את זה על ידי אלי 2. עכשיו יש לנו תדר אשר ניתן להמיר השראות באמצעות נוסחה לעיל.
הערה: בעת מדידת ההשראות (L1), ערך הקבל (C1) צריך להיות 0.1uF ובעוד מדידת הקיבול (C1), ערך המשרן (L1) צריך להיות 10mH.
תרשים מעגל והסבר
בתרשים מעגל זה של מד LC השתמשנו בארדואינו כדי לשלוט על פעולת הפרויקט. בזה השתמשנו במעגל LC. מעגל LC זה מורכב ממשרן וקבל. כדי להמיר תדר תהודה סינוסי לגל דיגיטלי או לריבוע השתמשנו במגבר תפעולי כלומר 741. כאן עלינו להחיל אספקה שלילית למגבר אופ כדי לקבל תדר פלט מדויק. אז השתמשנו בסוללת 3V המחוברת בקוטביות הפוכה, פירושה שפין שלילי 741 מחובר למסוף השלילי של הסוללה והסיכה החיובית של הסוללה מחוברת לקרקע המעגל הנותר. להבהרה נוספת עיין בתרשים המעגל להלן.
כאן יש לנו לחצן כפתור כדי לשנות את אופן הפעולה בין אם אנו מודדים השראות או קיבול. LCD 16x2 משמש כדי להראות אינדוקציה או קיבול בתדירות מעגל LC. סיר 10k משמש לשליטה על בהירות ה- LCD. המעגל מופעל בעזרת אספקת Arduino 5v ואנחנו יכולים להניע את Arduino באמצעות 5V באמצעות מתאם USB או 12V.
הסבר על תכנות
חלק התכנות של פרויקט LC Meter זה קל מאוד. קוד ארדואינו מלא ניתן בסוף מאמר זה.
ראשית עלינו לכלול ספרייה עבור LCD ולהצהיר על כמה סיכות ומקרו.
#לִכלוֹל
לאחר מכן, בפונקציית ההתקנה , יזמנו את תקשורת ה- LCD והסידורי כדי להציג ערכים נמדדים על גבי LCD והצג הטורי.
הגדרת חלל () { #ifdef Serial.begin סדרתי (9600); #endif lcd.begin (16, 2); pinMode (freqIn, INPUT); pinMode (טעינה, OUTPUT); pinMode (מצב, INPUT_PULLUP); lcd.print ("שימוש במד LC"); lcd.setCursor (0, 1); lcd.print ("ארדואינו"); עיכוב (2000); lcd.clear (); lcd.print ("מעגל עיכול"); עיכוב (2000); }
ואז בתפקוד לולאה , החל דופק של פרק זמן קבוע על מעגל LC שיחייב את מעגל LC. לאחר הסרת דופק מעגל LC מתחיל להדהד. לאחר מכן אנו קוראים את המרת הגל המרובע שלו, המגיע מאופ -אמפר, באמצעות פונקציית pulseIn () וממיר זאת על ידי הכפלת 2. הנה לקחנו גם כמה דוגמאות לכך. כך מחושבים התדירות:
loop loop () { for (int i = 0; i
לאחר שקיבלנו ערך תדר, הפכנו אותם להשראות באמצעות פיסת קוד נתונה
קיבול = 0.1E-6; השראות = (1. / (קיבול * תדר * תדר * 4. * 3.14159 * 3.14159)) * 1.E6; #ifdef Serial.print סדרתי ("Ind:"); אם (השראות> = 1000) { הדפס סידורי (השראה / 1000); Serial.println ("mH"); } אחר { Serial.print (השראות); Serial.println ("uH"); } #endif lcd.setCursor (0, 1); lcd.print ("Ind:"); אם (השראות> = 1000) { lcd.print (השראות / 1000); lcd.print ("mH"); } אחר { lcd.print (השראות); lcd.print ("uH"); } }
ועל ידי שימוש בקוד נתון חישבנו את הקיבול.
אם (Bit.flag) { השראות = 1. E-3; קיבול = ((1. / (השראות * תדר * תדר * 4. * 3.14159 * 3.14159)) * 1.E9); אם ((int) קיבול <0) קיבול = 0; #ifdef Serial.print סדרתי ("קיבול:"); הדפס סידורי (קיבול, 6); Serial.println ("uF"); #endif lcd.setCursor (0, 1); lcd.print ("כובע:"); אם (קיבוליות> 47) { lcd.print ((קיבול / 1000)); lcd.print ("uF"); } אחר { lcd.print (קיבוליות); lcd.print ("nF"); } }
אז ככה חישבנו תדר, קיבול והשראות באמצעות Arduino והצגנו אותו על LCD 16x2.