תוכן עניינים:
- שלב 1:
- שלב 2: בדיקת פלט מכשיר
- שלב 3: כיול
- שלב 4: תכנות Arduino
- שלב 5: עוד כמה תמונות
- שלב 6: התאמה
- שלב 7: רק תמונות
- שלב 8: מילים אחרונות
וִידֵאוֹ: מחולל/בודק 4-20ma באמצעות Arduino: 8 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:11
גנרטורים של 4-20mA זמינים ב- eBay, אבל אני מצד אחד אוהב את החלק העשיני של הדברים והשימוש בחלקים שיש לי.
רציתי לבדוק את הכניסות האנלוגיות של ה- PLC שלנו כדי לאמת את קריאות ה- scada שלנו ולבדוק את התפוקה של מכשירים של 4-20mA. ישנם המון ממירי זרם למתח ומתח לממירים זרם עבור arduino ב- ebay, אך הם זקוקים לכיול. אני יכול להשתמש בזה כדי לכייל כל אחד מהממירים שנמצאו ב- eBay וכדומה.
החלטתי שאני אעשה גנרטור ובודק. בנקודת זמן זו עדיין מדובר בעבודה בתהליך ואב -טיפוס.
הייתה לי מערכת שמע ישנה של 2.1 שלא הייתה בשימוש (רמקולים קטנים). אז השתמשתי באחת מארגזי הרמקולים כמארז. היה לי גם מגבר שמת בגלל ברק, הסרתי את מסוף הרמקולים מהמגבר הזה כדי לגרום לחיבור למשב רוח. אני מתכוון להכין PCB בעתיד ומארז טוב יותר.
אספקה:
רשימת חלקים.
LCD // 20x4 (התאם קוד אם שלך קטן יותר)
ווסת LM7808 // 8 וולט
LED // כל סוג או גודל
הנגד ל LED // מתאים לסוג הלד ו -8 וולט
נגד 100 אוהם + 47 אוהם נגד בסדרה // ישמש כנגד שאנט
נגד 10K // אנלוגי Arduino בהגנה מפני מתח גבוה
הנגד 22K // כדי לעצור את A0 מהציפה
נגד 100 טריהם + אוהם 47 אוהם בסדרה // סימולטור PT100
קבל 35 וולט // השתמשתי ב- 470uF, רק כדי לשמור על תנודות מתח האספקה
RTD (מתמר PT100) // טווח לא משנה (טווח)
DIODE (להגנה על קוטביות)
INA219
ארדואינו
שלב 1:
עקוב אחר הסכימה צריך להתחיל היכן להוסיף את החלקים ולחבר אותם.
ה- LM7808 מאפשר כניסה מקסימלית של 25 וולט וזה בסדר עבור מערכות PLC, בדרך כלל הם משתמשים בספקי כוח של 24 וולט. הוסף גוף קירור לרגולטור ואל תשתמש בו לתקופות ממושכות. הורדת 16 וולט גורמת לווסת לייצר חום רב.
אספקת הכניסה מזינה את הרגולטור ומתחברת ל- INA219 VIN, בתצורה זו ה- INA219 תוכל גם למדוד את מתח האספקה הנכון מינוס ירידת המתח מהדיודה. עליך למדוד את ירידת המתח של הדיודה ולהוסיף אותה לקוד כך שתקבל את קריאת מתח האספקה הנכונה.
מ- INA219 VOUT ל- RTD+ מפעיל את ה- RTD. RTD- לקרקע משלים את המעגל.
כדי לבדוק כרטיס אנלוגי PLC היית מחבר RTD- לכניסה בכרטיס האנלוגי ולקרקע מהכרטיס לקרקע ארדואינו. (הקפד לנתק כל מכשיר המחובר לערוץ הנבדק).
R5 ו- LED1, המציין כי המערכת מופעלת.
הרגולטור מוזרם ל- VIN הארדואינו (ארדואינו בנה רגולטור עד 5 וולט).
פין Arduino 5V עובר ל- INA219 כדי להפעיל את השבב המשולב. INA219 GND לקרקע ארדואינו.
מגבם את סיר החיתוך ל- RTD PIN1 ואת סיכת הסיר 3 לחיתוך סיכה 2 לדמות חיבור PT100. (החלף את החוטים אם סיבוב סיר הגימור עם כיוון השעון אינו מגביר את ה- mA).
שלב 2: בדיקת פלט מכשיר
כדי לבדוק את פלט המכשיר יש צורך בחלקים נוספים, כמו נגד שאנט. נגדים רגילים של 0.25W יעשו את העבודה מצוין. אתה יכול לעזוב את הנגד shunt ולהוסיף INA219 שני לבדיקת פלט המכשיר. נשאר לי רק אחד אז השתמשתי בנגד.
בדיקה באמצעות shunt יכולה להיעשות רק בצד השלילי של המכשיר. אם תשתמש בצד החיובי תספק לארדואינו שלך יותר מפי 4 מהמתח המותר ותתן לעשן לצאת.
הוסף את הנגד shunt בסדרה עם חוט שלילי של המכשיר. הצד של shunt הקרוב ביותר למכשיר יהפוך לאנלוגי החיובי של arduino. הצד השני של shunt הקרוב ביותר לאספקת החשמל יהפוך לקרקע הארדואינו שמשלימה את מעגל הכניסה האנלוגי.
נגד שאנט 150 אוהם הוא המקסימום המוחלט שיש להשתמש בו בעת שימוש בארדואינו. לנגד יש ירידת מתח לינארית ל- mA הזורם דרכו. ככל שה- mA גדול יותר המתח גדול יותר.
ב 20mA הנוכחי # 150ohm*0.02A = 3 וולט לארדואינו.
ב 4mA הנוכחי # 150ohm*0.004A = 0.6 וולט לארדואינו.
עכשיו אולי תרצה שהמתח יהיה קרוב יותר ל -5 וולט, כך שתוכל להציע לנו את כל טווח ה- ADC המלא של הארדואינו. (לא רעיון טוב).
RTD יכול להגיע לפלט של 30.2mA (שלי עושה). 150 אוהם*0.03A = 4.8 וולט. זה קרוב ככל שהייתי רוצה להיות.
אתר אחר הצביע על שימוש בנגד 250 אוהם.
ב 20mA הנוכחי # 250ohm*0.02A = 5 וולט לארדואינו.
בזרם 30mA # 250ohm*0.03A = 7.5volt לארדואינו.
אתה מסתכן בשריפת ה- ADC והארדואינו שלך.
כדי לבדוק מכשיר בשטח, קח איתך סוללה של 12 וולט וחבר אותה לכניסת האספקה. שימוש במקור חשמל חיצוני לא ישפיע על התקנת ה- PLC הנוכחית.
כדי לבדוק כרטיס כניסה אנלוגי בשטח, קח איתך סוללה של 12 וולט. נתק את המכשיר + מהמעגל. חבר את הקרקע לקרקע המכשיר ואת ה- RTD- לחוט המכשיר המנותק.
שלב 3: כיול
כדי לכייל את קריאת הנגד shunt שלך, חוט RTD- אל shunt אנלוגי פנימה. הגדר את סיר הגימור שלך כך שה- mA שנוצר יהיה 4mA. אם ה- mA של המכשיר שלך אינו שווה, שנה את הערך הראשון בקוד בשורה 84. הגדלת ערך זה תוריד את קריאת ה- mA.
לאחר מכן הגדר את סיר הגימור שלך ליצירת 20mA. אם ה- mA של המכשיר שלך אינו שווה, שנה את הערך השני בקוד בשורה 84.
אז 4-20mA שלך יהפוך כעת ל-0.6-3 וולט (תיאורטי). טווח די והותר. שימוש בספרייה מ- eRCaGuy, דגימת יתר תעניק לך קריאה טובה ויציבה יותר.
מקווה שאתה קורא את זה. זו ההנחיה הראשונה שלי, אז אנא הקל על עצמך אם טעיתי איפשהו או השארתי משהו בחוץ.
הפרויקט הזה הוא כנראה לא הדרך הטובה ביותר לעשות את זה, אבל זה עובד בשבילי והיה כיף לעשות את זה.
כמה רעיונות יש לי נוספים…
הוסף סרוו לסובב את סיר החיתוך בתוך הקופסה.
הוסף כפתורי לחיצה לסיבוב סרוו שמאלה או ימינה.
הוסף חיישן טמפרטורה דיגיטלי לגוף הקירור של הרגולטור כדי להזהיר מפני חום מסוכן.
שלב 4: תכנות Arduino
#לִכלוֹל
// #include // ביטול תגובה אם אתה משתמש ב- LCD עם רשם משמרות.
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
// A4 = (SDA)
// A5 = (SCL)
Adafruit_INA219 ina219;
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
// LiquidCrystal_SR lcd (3, 4, 2); // לא להגיב אם אתה משתמש ב- LCD עם רשימת משמרות.
// | | | _ סיכת תפס
// | / _ סיכת שעון
// / _ נתונים/אפשר סיכה
בתים bitsOfResolution = 12; // מצווה על רזולוציה מדוגמת יתר
numSamplesToAvg לא חתום ארוך; // מספר הדגימות ברזולוציה הממומנת שברצונך לקחת ובממוצע
ADC_prescaler_t ADCSpeed = ADC_DEFAULT;
unsign long long previousMillis = 0;
מצוף shuntvoltage = 0.0; // מאת INA219
צף אוטובוס = 0.0; // מאת INA219
float current_mA = 0.0; // מאת INA219
מצף עומס = 0.0; // מאת INA219
צף arduinovoltage = 0.0; // חישוב מתח מפין A0
A0analogReading ארוך ללא חתימה = 0;
בייט analogIn = A0;
float ma_mapped = 0.0; // מתח מפה מ A0 עד 4-20mA
הגדרת בטל () {
adc.setADCSpeed (ADCSpeed);
adc.setBitsOfResolution (bitsOfResolution);
adc.setNumSamplesToAvg (numSamplesToAvg);
uint32_t currentFrequency;
ina219.begin ();
ina219.setCalibration_32V_30mA (); // ספריה שונה לשיפור הדיוק ב- mA
lcd.begin (20, 4); // לאתחל את ה- LCD
lcd.clear ();
lcd.home (); // ללכת הביתה
lcd.print ("*********************");
עיכוב (2000);
lcd.clear ();
}
לולאת חלל ()
{
current Signillial millis = millis ();
const מרווח ארוך = 100;
//&&&&&&&&&&&&&&&&&
קראו התקני I2C במרווחי זמן ועשו כמה חישובים
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
if (currentMillis - previousMillis> = מרווח) {
previousMillis = currentMillis;
הַפסָקָה();
}
Print_To_LCD (); // כנראה שאני לא צריך לעדכן את ה- LCD מהר כל כך וניתן להעביר אותו למטה למרווח ()
}
בָּטֵל
מרווח () {
shuntvoltage = ina219.getShuntVoltage_mV ();
busvoltage = ina219.getBusVoltage_V ();
current_mA = ina219.getCurrent_mA ();
עומס = (busvoltage + (shuntvoltage / 1000)) + 0.71; // +0.71 היא ירידת מתח הדיודה שלי
A0analogReading = adc.newAnalogRead (analogIn);
arduinovoltage = (5.0 * A0analogReading); // מחושב ל- mV
ma_mapped = map (arduinovoltage, 752, 8459, 30, 220) / 10.0; // מפה לא יכולה להשתמש במצופים. הוסף 0 מאחורי הערך הממופה וחלק ב- 10 כדי לקבל קריאת מצוף.
// מיפוי מחשבון מתח נותן קריאה יציבה יותר לאחר השימוש בקריאת ADC הגולמית.
אם (shuntvoltage> = -0.10 && shuntvoltage <= -0.01) // ללא עומס INA219 נוטה לקרוא מתחת -0.01, ובכן שלי עושה.
{
current_mA = 0;
busvoltage = 0;
עומס = 0;
shuntvoltage = 0;
}
}
בָּטֵל
Print_To_LCD () {
lcd.setCursor (0, 0);
אם (ma_mapped <1.25) {// ללא זרם זו קריאת ה- mA שלי, אז אני פשוט מוריד אותה.
lcd.print (" * מחולל 4-20mA *");
}
אחר {
lcd.print ("** בודק אנלוגי **");
}
lcd.setCursor (0, 1);
lcd.print ("מכשיר:");
lcd.setCursor (10, 1);
אם (ma_mapped <1.25) {
lcd.print ("ללא מכשיר");
}
אחר {
lcd.print (ma_mapped);
}
lcd.print ("mA");
lcd.setCursor (0, 2);
lcd.print ("צור:");
lcd.setCursor (10, 2);
lcd.print (current_mA);
lcd.print ("mA");
lcd.setCursor (0, 3);
lcd.print ("אספקה:");
lcd.setCursor (10, 3);
lcd.print (loadvoltage);
lcd.print ("V");
}
שלב 5: עוד כמה תמונות
מסוף רמקול מגבר. LED מונע על ידי הגנרטור הנוכחי (RTD). חיווט כרטיס אנלוגי יחליף את הנורית.
הטרמינל בצד שמאל ביותר מיועד לקלט אספקה. מסופים מימין מיועדים לקלט מכשירים.
שלב 6: התאמה
נראה שהכל מתאים. השתמשתי בסיליקון כדי להחזיק כמה דברים ביחד. סיר החיתוך מסוכך בצד ימין למעלה. נקב חור קטן. אני יכול להתאים את הזרם מהחלק העליון של התיבה.
שלב 7: רק תמונות
שלב 8: מילים אחרונות
בדקתי את הפלט של מכשיר זה עם Allan Bradley PLC. התוצאות היו טובות מאוד. קיבלתי טווח מלא. בדקתי גם מכשיר זה עם חיישן לחץ 4-20mA הכולל צג LCD מובנה. שוב התוצאות היו טובות מאוד. הקריאות שלי הושקעו בכמה עשרוניות.
אני כותב את קוד הארדואינו בכרטיסיות. ב- PLC הם נקראים שגרות משנה. מקל על ניפוי הבאגים שלי.
מצורפים קבצי טקסט של כרטיסיות אלה.
מוּמלָץ:
ערכת בודק טרנזיסטור / רכיבי בודק Hiland M12864: 8 שלבים
ערכת בונה טרנזיסטור / רכיבי בודק Hiland M12864: בין אם אתה רק מתחיל בהרפתקאות האלקטרוניקה שלך ורק צריך לאמת קוד נגד של חמישה פס, או כמוני, צברת חבורה שלמה של רכיבים במהלך השנים ולא ממש בטוח מה הם או אם הם סגנונות
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): 4 שלבים (עם תמונות)
מחולל מוזיקה מבוסס מזג אוויר (מחולל מידי מבוסס ESP8266): היי, היום אסביר כיצד להכין מחולל מוזיקה קטן מבוסס מזג אוויר. ועוצמת אור. אל תצפה שהוא ייצור שירים שלמים או יתפתח אקורד
בודק IC, אופ-אמפר, 555 טיימר בודק: 3 שלבים
בודק IC, אופ-אמפר, 555 טיימר טיימר: כל מחשבי ה- IC הרעים או החלופיים שוכבים, אך אם הם התערבבו זה בזה, לוקח הרבה זמן לזהות רע או טוב, במאמר זה אנו לומדים כיצד אנו יכולים ליצור IC בודק, אפשר להמשיך
בודק קיבולת סוללות ליתיום (בודק כוח ליתיום): 5 שלבים
בודק קיבולת סוללות ליתיום (בודק כוח ליתיום): ============ אזהרה & כתב ויתור =========== סוללות ליתיום הן מסוכנות מאוד אם אינן מטופלות כראוי. אל תטען / תישרף / תפתח עטלפי לי-יון כל מה שאתה עושה עם המידע הזה הוא על אחריותך בלבד ====== =======================================
בודק LED בודק הנוכחי: 4 שלבים (עם תמונות)
בודק נוכחי LED מוסדר: אנשים רבים מניחים שניתן להפעיל את כל הלדים באמצעות מקור חשמל קבוע של 3V. ללדים למעשה יש יחסי מתח זרם לא לינארי. הזרם גדל באופן אקספוננציאלי עם המתח המסופק. יש גם את התפיסה השגויה שכל הנורות של