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

מד מתח דיגיטלי עם CloudX: 6 שלבים
מד מתח דיגיטלי עם CloudX: 6 שלבים

וִידֵאוֹ: מד מתח דיגיטלי עם CloudX: 6 שלבים

וִידֵאוֹ: מד מתח דיגיטלי עם CloudX: 6 שלבים
וִידֵאוֹ: איך משתמשים ברב מודד 2024, נוֹבֶמבֶּר
Anonim
מד מתח דיגיטלי עם CloudX
מד מתח דיגיטלי עם CloudX

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

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

שלב 1: דרישת חומרה

מודול מיקרו -בקר CloudX

CloudX USB

SoftCard

תצוגת קטע 7

נגדים

יחידת אספקת חשמל

לוח לחם

חוטי מגשר (מחברים)

שלב 2: CloudX M633 מיקרו -בקר

בקר MicroX M633
בקר MicroX M633

מודול מיקרו -בקר CloudX

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

שלב 3: הצמד חיבורים

חיבורי פינים
חיבורי פינים

סיכות 7 המקטעים: A, B, C, D, E, F, G, 1, 2 ו- 3 מחוברות לסיכה של CloudX-MCU, pin2, pin3, pin4, pin5, pin6, pin7, pin8, pin9, pin10 ו- pin11 בהתאמה.

שלב 4: תרשים מעגלים

תרשים מעגלים
תרשים מעגלים

ניתן להפעיל את מודול הבקר המיקרו, הנמצא בשלב המרכזי כאן:

או באמצעות נקודות ה- Vin ו- Gnd (כלומר, חיבורן עד למסופי +ו ו -החיבור של יחידת אספקת החשמל החיצונית שלך) על הלוח;

או באמצעות מודול כרטיס ה- SoftX של CloudX

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

ונבחרים בצורה כזו:

להגביל את כמות הזרם הזורם ברשת;

מגבלה בטווח בטוח של (0 - 5) V עבור ה- MCU.

באמצעות הנוסחה: VOUT = (R2/(R1+R2)) * VIN; וניתן להעריך אותו בקלות.

Voutmax = 5V

ולפרויקט זה, אנו בוחרים: Vinmax = 50V;

5 = (R2/(R1+R2)) * 50 R1 = 45/5 * R2 לוקח R2 = 10kΩ למשל; R1 = 45/5 * 10 = 90kΩ

שלב 5: עקרון הפעולה

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

שלב 6: תוכנית התוכנה

#לִכלוֹל

#לִכלוֹל

#לִכלוֹל

#מגדיר קטע 1 סיכה 9

#הגדר קטע 2 סיכה 10

#מגדיר קטע 3 סיכות 11

צף batt_voltage;

int decimalPoint, batt;

/*מערכים המאחסנים תבנית קטע לכל ספרה נתונה*/

char CCathodeDisp = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};

char CAnodeDisp = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90};

int disp0, disp1, disp2;

display () {

char i ללא חתום;

if (decimalPoint <10) {

disp0 = (int) batt_voltage /100; // מביא את ה- MSD (הספרה המשמעותית ביותר)

// להיות המשוקלל הגבוה ביותר

/* מביא את הספרה המשוקללת הבאה; וכן הלאה */

disp1 = ((int) batt_voltage % 100)/10;

disp2 = ((int) batt_voltage % 10);

}

אחר {

disp0 = (int) batt_voltage /1000;

disp1 = ((int) batt_voltage % 1000)/100;

disp2 = ((int) batt_voltage % 100)/10;

}

/*דפוסים נשפכים לתצוגה; ותו 0x80 הוספת נקודה עשרונית

אם המצב הקשור מתקיים*/

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

pin9 = pin10 = pin11 = HIGH;

אם (עשרוני <10)

portWrite (1, CCathodeDisp [disp0] | 0x80);

else portWrite (1, CCathodeDisp [disp0]);

קטע 1 = נמוך;

segment2 = HIGH;

segment3 = HIGH;

עיכוב Ms (5);

pin9 = pin10 = pin11 = HIGH;

אם ((decimalPoint> = 10) && (decimalPoint <100))

portWrite (1, CCathodeDisp [disp1] | 0x80);

else portWrite (1, CCathodeDisp [disp1]);

קטע 1 = גבוה;

קטע 2 = נמוך;

segment3 = HIGH;

עיכוב Ms (5);

pin9 = pin10 = pin11 = HIGH;

אם (decimalPoint> = 100)

portWrite (1, CCathodeDisp [disp2] | 0x80);

else portWrite (1, CCathodeDisp [disp2]);

קטע 1 = גבוה;

segment2 = HIGH;

קטע 3 = נמוך;

עיכוב Ms (5);

}

}

setup () {// הגדרה כאן

analogSetting (); // יציאה אנלוגית אתחלה

portMode (1, OUTPUT); // סיכות 1 עד 8 מוגדרות כסיכות פלט

/ * סיכות סריקה הוגדרו כסיכות פלט */

pin9Mode = OUTPUT;

pin10Mode = OUTPUT;

pin11Mode = OUTPUT;

portWrite (1, LOW);

pin9 = pin10 = pin11 = HIGH; // סיכות סריקה (שהן פעילות-נמוכות)

// מושבתים בהתחלה

לולאה () {// תכנית כאן

batt_voltage = analogRead (A0); // לוקח את הערך הנמדד

batt_voltage = ((batt_voltage * 5000) / 1024); // גורם המרה עבור 5Vin

batt_voltage = (batt_voltage * 50)/5000; // גורם המרה עבור 50Vin

decimalPoint = batt_voltage; // מסמן בו מופיעה נקודה עשרונית

// הערך המקורי לפני מניפולציה של נתונים

לְהַצִיג();

}

}

מוּמלָץ: