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

מד מתח Arduino (0-100V DC) - גרסה 2 (טובה יותר): 3 שלבים
מד מתח Arduino (0-100V DC) - גרסה 2 (טובה יותר): 3 שלבים

וִידֵאוֹ: מד מתח Arduino (0-100V DC) - גרסה 2 (טובה יותר): 3 שלבים

וִידֵאוֹ: מד מתח Arduino (0-100V DC) - גרסה 2 (טובה יותר): 3 שלבים
וִידֵאוֹ: Вольтамперметр 7 В одном из Китая подделка 2024, נוֹבֶמבֶּר
Anonim
Image
Image
שלב 1: התרשימים
שלב 1: התרשימים

במדריך זה, בניתי מד מתח למדוד מתח גבוה DC (0-100v) בדיוק ודיוק יחסית באמצעות Arduino Nano ו- ADS 1115 ADC.

זוהי גרסה שנייה של מד המתח שהשתמשתי בהוראות הקודמות שלי כאן:

מדידות הבדיקה שעשיתי היו מדויקות, בעיקר בטווח של 0.1 וולט מהמתח בפועל שנמדד באמצעות מד מתח סטנדרטי (השתמשתי ב- Astro AI DM6000AR).

זה הרבה יותר טוב, וקל יותר לדעתי מאשר שימוש בהתייחסות מתח חיצונית בארדואינו.

אספקה

1 x ארדואינו ננו - קישור

1 x תצוגת Oled (SSD 1306) - קישור

1 x ADS 1115 - 16 סיביות ADC - קישור

1 x 1/4W (אני מציע להשתמש בנגדים של 1W אף) 1% נגדים - 220k אוהם - קישור

1 x 1/4 W

קרש לחוטים וחוטים - קישור

Astro AI DM6000AR - קישור

בנק כוח USB - קישור

סוללות 9V - קישור

CanadianWinters משתתפת בתוכנית Amazon Services LLC Associates, תוכנית פרסום של שותפים שנועדה לספק אמצעים לאתרים להרוויח עמלות על ידי קישור לאמזון.קום ואתרים קשורים. על ידי שימוש בקישורים אלה, בתור עמית אמזון אני מרוויח מרכישות מתאימות, גם אם אתה קונה משהו אחר-וזה לא יעלה לך כלום.

שלב 1: שלב 1: התרשימים

שלב 1: התרשימים
שלב 1: התרשימים

חיברתי את כל החלקים לפי הסכימות שלמעלה.

קשרתי את סיכת ה- ADDR של ה- ADC1115 לקרקע. זה מגדיר את כתובת ה- ADC ל- 0x48.

שלב 2: שלב 2: חישובי הקוד וההתנגדות

שלב 2: חישובי הקוד וההתנגדות
שלב 2: חישובי הקוד וההתנגדות

כמו בהוראות הקודמות, הרעיון של המעגל הוא שמתח DC שיש למדוד עובר בנגד מתח. המתח המוגדל ואז נכנס לסיכה האנלוגית של ממיר ה- ADC לקריאה, ואז מועבר לארדואינו באמצעות I2C ואז משתנה מחדש ומוצג בתצוגת OLed.

לא השתמשתי בממוצע או החלקה בקוד במקרה זה, מכיוון שהקריאות נראות מדויקות למדי. כדי להפחית את הרעש, ייתכן שתרצה להוסיף קבל קטן בין A0 (ב- ADC) לבין הקרקע. למרות שזה לא היה נדרש לבדיקה שלי.

דבר אחד ששמתי לב אליו הוא מעט רעש כאשר לא הייתה מצורפת סוללה (0 וולט). השתמשתי במסך הטורי של הארדואינו כדי להציג את ערך ה- ADC ולתקן/להתאים אותו באמצעות קוד.

כמו בהוראה הקודמת, הכנתי גיליון אלקטרוני המפעיל את החישובים למקרה שתרצה להשתמש בערכי הנגד השונים במפריד המתח: קישור ל- Google Sheet

להלן הקוד בו השתמשתי לפרויקט זה:

#לִכלוֹל

#include #include #include Adafruit_ADS1115 מודעות (0x48); // כתובת ADC U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (סיבוב, [אפס]) int calib = 7; // ערך כיול של ADS1115 להפחתת מתח צף השגיאה = 0; // משמש לאחסון צף ערך המתח Radjust = 0.043421905; // גורם מחלק מתח (R2 / R1+R2) float vbat = 0; // מתח סופי לאחר חישובים- מתח הסוללה // משתנים לרענון המסך ללא שימוש בעיכוב לא חתום ארוך קודם מיליליס = 0; // יישמר בפעם האחרונה שהמסך רענן // קבועים לא ישתנו: const מרווח ארוך = 250; // מרווח שבו רענון המסך (מילי שניות) הגדרת חלל (חלל) {Serial.begin (9600); u8g2.begin (); ads.begin (); } לולאת חלל (חלל) {int16_t adc0; // 16 סיביות ADC קריאה של קלט A0 adc0 = ads.readADC_SingleEnded (0); מתח = ((adc0 + calib) * 0.1875)/1000; current Signillial millis = millis (); vbat = מתח/Radjust; // מנע הצגת מתח שלילי כאשר הסוללה מנותקת אם (vbat = interval) {previousMillis = currentMillis; u8g2.clearBuffer (); // נקה את התפיסה הפנימית // תצוגת Pack Pack - גופנים בדף זה: https://github.com/olikraus/u8g2/wiki/fntlistall //u8g2.setFont(u8g2_font_fub20_tr); // גופן 20px u8g2.setFont (u8g2_font_fub35_tr); // גופן 35px u8g2.setCursor (1, 42); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 פיקסלים גופן u8g2.setCursor (1, 60); u8g2.print ("וולט"); } u8g2.sendBuffer (); // העברת זיכרון פנימי לעיכוב התצוגה (1); }

שלב 3: שלב 3: בואו לבדוק את זה

שלב 3: בואו לבדוק את זה!
שלב 3: בואו לבדוק את זה!

כדי לבדוק את מד המתח הזה השתמשתי בסוללות 10X 9V שקיבלתי בחנות מקומית. הפעם יכולתי למדוד עד 97 וולט! אני מתכנן להשתמש במד-וולט זה כדי למדוד את המתח על מארזי הסוללה של האופניים החשמליים שלי (יש להם מתח שנע בין 24-60 וולט עם מדי פעם 72 וולט).

ברגע שהאלקטרוניקה ארוזה למחשב קופסא וקופסה קטנה, זה יהפוך למד סוללה נחמד ונייד. הגרפיקה והגופנים ב- OLED ניתנים להתאמה אישית לצרכיך (למשל גופן גדול יותר לקריאה קלה). המטרה שלי הייתה קריאת מתח על מד Oled/Arduino לא רחוק מדי ממד הדיגיטלי שלי. כיוונתי ל +/- 0, 3v max delta.

כפי שאתה יכול לראות מהסרטון בתחילת המדריך, הצלחתי לאחסן אותו בארכיון! רוב הקריאות היו במקום!

אני מקווה שנהנית מהמדריך הזה וספר לי את דעתך!

מוּמלָץ: