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

מד וולט מדויק ומדויק של Arduino (0-90V DC): 3 שלבים
מד וולט מדויק ומדויק של Arduino (0-90V DC): 3 שלבים

וִידֵאוֹ: מד וולט מדויק ומדויק של Arduino (0-90V DC): 3 שלבים

וִידֵאוֹ: מד וולט מדויק ומדויק של Arduino (0-90V DC): 3 שלבים
וִידֵאוֹ: Control 10 output pins or relay using 10 push button switch with 1 Arduino input pin ANPB-V2 2024, יולי
Anonim

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

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

כדי לארכיון זה השתמשתי בהתייחסות מתח (4.096v) ומפריד מתח.

בצד הקוד, השתמשתי, כמובן, באפשרות "הפניה חיצונית" עבור ה- Arduino Nano ובדוגמא "החלקה" במדריכי Arduino.

אספקה

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

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

1 x 1/4W נגדים 1% - 1k ohm - קישור

1 x 1/4W נגדים 1% - 220k אוהם - קישור

1 x 1/4W נגדים 1% - 10k אוהם - קישור

1 x 4.096v LM4040DIZ -4.1 הפניה למתח - קישור

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

Astro AI DM6000AR - קישור

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

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

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

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

הסכימות
הסכימות
הסכימות
הסכימות

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

בעקבות גליון הנתונים בחרתי בנגד 1K אוהם להתייחסות למתח למרות שניתן להשתמש בערך שונה. המתח להתייחסות מסופק מהפין Nano 5v.

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

ניסיתי לשמור על דברים פשוטים:)

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

ערכי הנגדים נבחרו כיוון שמומלץ (אם אינני טועה זה על גליון הנתונים של Arduino/Atmega) כדי לשמור על העכבה מתחת ל- 10k אוהם.

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

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

#לִכלוֹל

#כלול U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (סיבוב, [אפס]) מתח צף = 0; // משמש לאחסון צף ערך המתח Radjust = 0.043459459; // גורם מחלק מתח (R2 /R1+R2) float vbat = 0; // מתח סופי לאחר חישובים- מתח של מצוף הסוללה Vref = 4.113; // התייחסות למתח - הערך האמיתי נמדד. ערך נומינלי 4.096v const int numReadings = 50; // מספר דגימות קריאה - הגדל להחלקה נוספת. ירידה לקריאה מהירה יותר. int readings [numReadings]; // הקריאות מהקלט האנלוגי int readIndex = 0; // האינדקס של הקריאה הנוכחית סה"כ ארוך ללא סימן = 0; // ממוצע ה- int הכולל הפועל = 0; // משתנים לרענון המסך ללא שימוש בעיכוב ללא חתימה ארוכה קודמת מיליס = 0; // יישמר בפעם האחרונה שהמסך עודכן // קבועים לא ישתנו: const מרווח ארוך = 50; // מרווח שבו רענון המסך (מילי שניות) הגדרת חלל (void) {analogReference (EXTERNAL); // השתמש ב- AREF למתח התייחסות 4.096. המתח האמיתי שלי הוא 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {// … עוטף את ההתחלה: readIndex = 0; } // לחשב את הממוצע: ממוצע = (total / numReadings); מתח = ממוצע * (Vref / 1023.0); //4.113 הוא ה- Vref vbat = voltage/Radjust; // הגדרת העיכוב לרענון המסך באמצעות Millis if (currentMillis - previousMillis> = interval) {// שמור את הפעם האחרונה שהמסך עודכן previousMillis = currentMillis; u8g2.clearBuffer (); // נקה את התפיסה הפנימית // תצוגת Pack Pack u8g2.setFont (u8g2_font_fub20_tr); // גופן 20px u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // 10 פיקסלים גופן u8g2.setCursor (76, 20); u8g2.print ("וולט"); u8g2.setCursor (1, 40); u8g2.print ("CanadianWinters '"); u8g2.setCursor (1, 60); u8g2.print ("מתח מדויק"); } u8g2.sendBuffer (); // העברת זיכרון פנימי לעיכוב התצוגה (1); }

שים לב שאני קצת חלוד עם קידוד Arduino, אז אם אתה מוצא טעות או דרך לשפר את הקוד, אני פתוח להצעות:)

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

בואו לבדוק את זה!
בואו לבדוק את זה!
בואו לבדוק את זה!
בואו לבדוק את זה!
בואו לבדוק את זה!
בואו לבדוק את זה!

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

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

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

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

מוּמלָץ: