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

מדוד לחץ בעזרת המיקרו שלך: ביט: 5 שלבים (עם תמונות)
מדוד לחץ בעזרת המיקרו שלך: ביט: 5 שלבים (עם תמונות)

וִידֵאוֹ: מדוד לחץ בעזרת המיקרו שלך: ביט: 5 שלבים (עם תמונות)

וִידֵאוֹ: מדוד לחץ בעזרת המיקרו שלך: ביט: 5 שלבים (עם תמונות)
וִידֵאוֹ: החיים שלי, תוניסיה שלי - ספר שמע שלם בצרפתית 2024, נוֹבֶמבֶּר
Anonim
מדוד לחץ בעזרת המיקרו שלך: ביט
מדוד לחץ בעזרת המיקרו שלך: ביט
מדוד לחץ בעזרת המיקרו שלך: ביט
מדוד לחץ בעזרת המיקרו שלך: ביט

ההוראות הבאות מתארות מכשיר קל לבנייה וזול לביצוע מדידות לחץ ולהדגמת חוק בויל, באמצעות המיקרו: ביט בשילוב עם חיישן לחץ/טמפרטורה BMP280.

בעוד ששילוב המזרק/חיישן הלחץ הזה כבר תואר באחד מההנחיות הקודמות שלי, השילוב עם המיקרו: ביט מציע הזדמנויות חדשות, למשל. לפרויקטים של חדרי כיתה.

בנוסף, מספר תיאורי היישומים בהם נעשה שימוש במיקרו: ביט בשילוב עם חיישן מונע I2C מוגבלים למדי עד כה. אני מקווה שההנחיה הזו עשויה להוות נקודת מוצא לפרויקטים אחרים.

המכשיר מאפשר לבצע מדידות לחץ אוויר כמותיות, ולהציג את התוצאות במערך ה- LED: micro: bit או במחשב מחובר, לשימוש מאוחר יותר במסך הטורי או בפונקציות ה- plotter הסידורי של ה- Arduino IDE. בנוסף יש לך משוב מהטי, מכיוון שתדחוף או תמשוך את בוכנת המזרק בעצמך, ותחוש בזאת את הכוח הנדרש.

כברירת מחדל, התצוגה מאפשרת לך לאמוד את הלחץ על ידי מחוון הרמות המוצג על מטריצת ה- LED. הקושר הטורי של ה- Arduino IDE מאפשר לעשות את אותו הדבר, אך עם רזולוציה טובה בהרבה (ראו וידאו). יש גם פתרונות משוכללים יותר, למשל. בשפת העיבוד. תוכל גם להציג את הערכים המדויקים של לחץ וטמפרטורה במטריצת ה- LED לאחר לחיצה על כפתורי A או B בהתאמה, אך הצג הטורי של ה- Arduino IDE מהיר בהרבה ומאפשר להציג ערכים בזמן אמת כמעט.

סך העלויות והכישורים הטכניים הנדרשים לבניית המכשיר נמוכים למדי, כך שיכול להיות פרויקט כיתה נחמד בהשגחת מורה. בנוסף המכשיר יכול להיות כלי לפרויקטים של STEM עם התמקדות בפיזיקה או בשימוש בפרויקטים אחרים בהם כוח או משקל יהפכו לערך דיגיטלי.

העיקרון שימש לבניית מיקרו: מעט צלילה-מטר, מכשיר למדידת עד כמה אתה צולל.

תוספת 27-מאי-2018:

מכיוון שפימורוני פיתח ספריית MakeCode עבור חיישן BMP280, זה נתן לי את ההזדמנות לפתח סקריפט שישמש עבור המכשיר המתואר כאן. ניתן למצוא את הסקריפט ואת קובץ ה- HEX המקביל בשלב האחרון של מדריך זה. כדי להשתמש בו, פשוט טען את קובץ HEX למיקרו: bit. אין צורך בתוכנות מיוחדות, ותוכל להשתמש בעורך MakeCode המקוון לעריכת התסריט.

שלב 1: חומרים משומשים

חומרים משומשים
חומרים משומשים
חומרים משומשים
חומרים משומשים
חומרים משומשים
חומרים משומשים
חומרים משומשים
חומרים משומשים
  • מיקרו: ביט, קיבלתי את שלי מפימורוני - 13.50 ליש"ט
  • מחבר אדג 'Kitronic למיקרו: ביט - באמצעות פימורוני - 5 ליש"ט, הערה: פימוריני מציעה כעת מחבר קצה ידידותי ללוח שנקרא pin: bit עם סיכות ביציאות I2C.
  • רצועות כותרת 2 x 2 פינים
  • סוללה או LiPo למיקרו: ביט (לא הכרחי, אך מועיל), כבל סוללה עם מתג (דיטו) - פימורוני
  • כבלי מגשר לחיבור חיישנים למחבר Edge
  • כבלי מגשר ארוכים (!) לחיישן, לפחות לאורך המזרק,, f/f או f/m
  • חיישן לחץ וטמפרטורה BMP280 - Banggood - 5 US $ לשלוש יחידות טווח המדידה של חיישן זה הוא בין 550 ל- 1537 hPa.
  • מזרק צנתר פלסטיק 150 מ"ל עם אטם גומי - אמזון או חנויות לחומרי בניין וגינה - בערך 2 - 3 דולר ארה"ב
  • דבק חם/אקדח דבק חם
  • מלחם
  • מחשב עם Arduino IDE מותקן

שלב 2: הוראות הרכבה

הוראות הרכבה
הוראות הרכבה
הוראות הרכבה
הוראות הרכבה
הוראות הרכבה
הוראות הרכבה

כותרות הלחמה לפריצת החיישן BMP280.

הלחם את שני כותרות 2 הפינים למחברי הסיכה 19 והסיכה 20 של מחבר Edge (ראה תמונה).

חבר את המיקרו: ביט למחבר Edge ולמחשב שלך.

הכן תוכנה ומיקרו: ביט כפי שמתואר בהוראות המיקרו: ביט של Adafruit. תקרא אותם היטב.

התקן את הספריות הנדרשות ל- Arduino IDE.

פתח את הסקריפט BMP280 המצורף בשלב מאוחר יותר.

חבר את החיישן למחבר Edge. GND עד 0V, VCC עד 3V, SCL לסיכה 19, SDA לסיכה 20.

העלה את הסקריפט למיקרו: ביט.

בדוק שהחיישן מספק נתונים סבירים, ערכי הלחץ צריכים להיות בסביבות 1020 hPa, המוצגים על הצג הטורי. במקרה, בדוק תחילה את הכבלים והחיבורים, ולאחר מכן התקנת התוכנה ותקן.

כבה את המיקרו: ביט, הסר את החיישן.

הפעל את כבלי המגשר הארוך דרך שקע המזרק. במקרה שתצטרך להרחיב את הפתח. הקפד להשמיט שהכבלים ניזוקים.

חבר את החיישן לכבלי המגשר. בדוק שהחיבורים נכונים וטובים. התחבר למיקרו: ביט.

בדוק שהחיישן פועל כהלכה. משוך בזהירות את הכבלים, העבר את החיישן לחלק העליון של המזרק.

הכנס את הבוכנה והעבר אותו קצת יותר ממצב המנוחה הרצוי (100 מ ל).

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

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

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

שלב 3: קצת תיאוריה וכמה מדידות מעשיות

קצת תיאוריה וכמה מדידות מעשיות
קצת תיאוריה וכמה מדידות מעשיות
קצת תיאוריה וכמה מדידות מעשיות
קצת תיאוריה וכמה מדידות מעשיות

בעזרת המכשיר המתואר כאן, תוכל להוכיח את המתאם של דחיסה ולחץ בניסויים פשוטים בפיזיקה. מכיוון שהמזרק מגיע עם סולם "מ"ל", אפילו ניסויים כמותיים קלים לביצוע.

התיאוריה העומדת מאחוריו: על פי חוק בויל, [נפח * לחץ] הוא ערך קבוע לגז בטמפרטורה נתונה.

המשמעות היא שאם אתה דוחס נפח נתון של גז N פי, כלומר הנפח הסופי הוא פי 1/N מהמקור, הלחץ שלו יעלה פי N, כמו: P0*V0 = P1*V1 = חסרונות t. לפרטים נוספים, עיין במאמר בויקיפדיה בנושא חוקי גז. בגובה פני הים, הלחץ הברומטרי הוא בדרך כלל בטווח של 1010 hPa (hekto פסקל).

אז החל בנקודות מנוחה של למשל. V0 = 100 מ"ל ו- P0 = 1000 hPa, דחיסת האוויר לכ- 66 מ"ל (כלומר V1 = 2/3 * V0) תביא ללחץ של כ- 1500 hPa (P1 = 3/2 מ- P0). משיכת הבוכנה ל -125 מ"ל (נפח פי 5/4) מביאה ללחץ של כ- 800 hPa (לחץ 4/5). המדידות מדויקות להפליא למכשיר כל כך פשוט.

המכשיר מאפשר לך לקבל רושם הפטי ישיר כמה כוח נדרש כדי לדחוס או להרחיב את כמות האוויר הקטנה יחסית במזרק.

אבל אנחנו גם יכולים לבצע כמה חישובים ולבדוק אותם בניסוי. נניח שאנו דוחסים את האוויר ל 1500 hPa, בלחץ ברומטרי בסיסי של 1000 hPa. אז הפרש הלחץ הוא 500 hPa, או 50, 000 Pa. עבור המזרק שלי, קוטר (ד) הבוכנה הוא כ -4 ס מ או 0.04 מטר.

עכשיו אתה יכול לחשב את הכוח הדרוש כדי להחזיק את הבוכנה במיקום זה. נתון P = F/A (הלחץ הוא כוח מחולק לפי שטח), או המרות F = P*A. יחידת SI לכוח היא "ניוטון" N, באורך "מטר" מ ', ו- 1 Pa היא 1N למטר מרובע. עבור בוכנה עגולה, ניתן לחשב את השטח באמצעות A = ((d/2)^2)*pi, מה שנותן 0.00125 מטרים רבועים עבור המזרק שלי. לכן

50, 000 Pa * 0.00125 m^2 = 63 N.

בכדור הארץ, 1 N מתואם למשקל של 100 גרם, כך ש 63 N שווים להחזקה של 6.3 ק ג.

ניתן לבדוק זאת בקלות באמצעות סולם. דחוף את המזרק עם הבוכנה על הסקאלה, עד שיגיע ללחץ של כ- 1500 hPa ואז קרא את הסולם. או לחץ עד שהסולם יראה כ-6-7 ק"ג, לאחר מכן לחץ על כפתור "A" וקרא את הערך המוצג על מטריצת ה- LED של המיקרו: ביט. כפי שהתברר, ההערכה המבוססת על החישובים לעיל לא הייתה רעה. לחץ מעט מעל 1500 hPa מתואם ל"משקל "המוצג של כ -7 ק"ג בסולם הגוף (ראו תמונות). תוכל גם להפוך את הרעיון הזה ולהשתמש במכשיר לבניית קנה מידה דיגיטלי פשוט המבוסס על מדידות לחץ.

שים לב שהגבול העליון של החיישן הוא בערך 1540 hPa, כך שלא ניתן למדוד כל לחץ מעל זה ועלול לפגוע בחיישן.

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

שלב 4: סקריפט ה- MicroPython

מצורף אתה מוצא את הסקריפט BMP280 שלי עבור המיקרו: ביט. זוהי נגזרת של סקריפט BMP/BME280 שמצאתי אי שם באתר Banggood, בשילוב עם ספריית המיקרוביט של Adafruit. הראשון מאפשר לך להשתמש בחיישן Banggood, השני מפשט את הטיפול בתצוגת LED 5x5. תודתי מגיעה למפתחי שניהם.

כברירת מחדל, התסריט מציג את תוצאות מדידות הלחץ ב -5 שלבים בתצוגת ה- LED 5x5 של המיקרו: ביט, המאפשר לראות שינויים עם מעט עיכוב. ניתן להציג את הערכים המדויקים במקביל על הצג הסדרתי של Arduino IDE, או שניתן להציג גרף מפורט יותר את הקושר הסרלי של ה- Arduino IDE.

אם תלחץ על כפתור A, ערכי הלחץ הנמדדים יוצגו במערך ה- LED 5x5 של המיקרו: ביט. אם תלחץ על כפתור B, ערכי הטמפרטורה יוצגו. למרות שזה מאפשר לקרוא את הנתונים המדויקים, הוא מאט את מחזורי המדידה באופן משמעותי.

אני בטוח שיש דרכים הרבה יותר אלגנטיות לתכנת את המשימות ולשפר את התסריט. כל עזרה תתקבל בברכה.

#כלול את xxx

#כלול מיקרוביט Adafruit_Microbit_Matrix; #define BME280_ADDRESS 0x76 ללא חתום ארוך int hum_raw, temp_raw, pres_raw; חתום ארוך t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; // מכולות לערכים נמדדים int value0; int int1; int value2; int value3; int value4; // ------------------------------------------------ -------------------------------------------------- ------------------ הגדרת חלל () {uint8_t osrs_t = 1; // דגימת יתר של טמפרטורה x 1 uint8_t osrs_p = 1; // דגימת יתר של לחץ x 1 uint8_t osrs_h = 1; // דגימות יתר של לחות x 1 מצב uint8_t = 3; // מצב רגיל uint8_t t_sb = 5; // Tstandby 1000ms uint8_t filter = 0; // סנן uint8_t spi3w_en = 0; // 3-wire SPI השבת uint8_t ctrl_meas_reg = (osrs_t << 5) | (osrs_p << 2) | מצב; uint8_t config_reg = (t_sb << 5) | (מסנן << 2) | spi3w_en; uint8_t ctrl_hum_reg = osrs_h; pinMode (PIN_BUTTON_A, INPUT); pinMode (PIN_BUTTON_B, INPUT); Serial.begin (9600); // Serial.println ("טמפרטורה [deg C]"); // Serial.print ("\ t"); Serial.print ("לחץ [hPa]"); // כותרת Wire.begin (); writeReg (0xF2, ctrl_hum_reg); writeReg (0xF4, ctrl_meas_reg); writeReg (0xF5, config_reg); readTrim (); // microbit.begin (); // microbit.print ("x"); עיכוב (1000); } // ----------------------------------------------- -------------------------------------------------- -------- לולאת חלל () {כפול temp_act = 0.0, press_act = 0.0, hum_act = 0.0; חתום long int temp_cal; press_cal, hum_cal; int N; // הגדר ערכי סף לתצוגת מטריצת LED, ב- hPa כפול max_0 = 1100; מקסימום_1 = 1230; max_2 כפול = 1360; max_3 כפול = 1490; readData (); temp_cal = כיול_ט (temp_raw); press_cal = כיול_פ (pres_raw); hum_cal = כיול_ה (hum_raw); temp_act = (כפול) temp_cal / 100.0; press_act = (כפול) press_cal / 100.0; hum_act = (כפול) hum_cal / 1024.0; microbit.clear (); // אפס מטריצת LED /* Serial.print ("לחץ:"); Serial.println (press_act); Serial.print ("hPa"); Serial.print ("TEMP:"); Serial.print ("\ t"); Serial.println (temp_act); */ if (! digitalRead (PIN_BUTTON_B)) {// הצגת ערכים במספרים עיכובים למדידת מעגלים microbit.print ("T:"); microbit.print (temp_act, 1); microbit.print ("'C"); // Serial.println (""); } אחרת אם (! digitalRead (PIN_BUTTON_A)) {microbit.print ("P:"); microbit.print (press_act, 0); microbit.print ("hPa"); } אחרת {// הצגת ערכי לחץ כפיקסלים או קווים ברמה מסוימת // 5 שלבים: 1490 hPa // ספים המוגדרים על ידי ערכי max_n if (press_act> max_3) {(N = 0); // שורה עליונה} אחרת אם (press_act> max_2) {(N = 1); } אחרת אם (press_act> max_1) {(N = 2); } אחרת אם (press_act> max_0) {(N = 3); } אחר {(N = 4); // שורת בסיס} // Serial.println (N); // למטרות פיתוח // microbit.print (N); // כמו קו // microbit.drawLine (N, 0, 0, 4, LED_ON); // העבר ערכים לערך השורה הבא 4 = value3; value3 = value2; value2 = value1; value1 = value0; value0 = N; // צייר תמונה, עמודה אחר עמודה microbit.drawPixel (0, value0, LED_ON); // בתור פיקסל: עמודה, שורה. 0, 0 הפינה השמאלית העליונה microbit.drawPixel (1, value1, LED_ON); microbit.drawPixel (2, value2, LED_ON); microbit.drawPixel (3, value3, LED_ON); microbit.drawPixel (4, value4, LED_ON); } // שלח נתונים לצג הטורי ולפלוטר הטורי // Serial.println (press_act); // שלח ערכים ליציאה טורית לתצוגה מספרית, אופציונלי

Serial.print (press_act); // שלח ערך ליציאה טורית לפוטר

// צייר קווי חיווי ותקן את הטווח המוצג Serial.print ("\ t"); Serial.print (600); Serial.print ("\ t"); Serial.print (1100), Serial.print ("\ t"); Serial.println (1600); עיכוב (200); // למדוד שלוש פעמים בשנייה} // ---------------------------------------- -------------------------------------------------- -------------------------------------------------- - // נדרש הדבר הבא עבור חיישן bmp/bme280, שמור כפי שהוא בטל readTrim () {uint8_t data [32], i = 0; // תיקון 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0x88); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 24); // תקן את 2014/while (Wire.available ()) {data = Wire.read (); i ++; } שידור Wire.beginTransmission (BME280_ADDRESS); // הוסף 2014/Wire.write (0xA1); // הוסף 2014/Wire.endTransmission (); // הוסף 2014/Wire.requestFrom (BME280_ADDRESS, 1); // הוסף 2014/data = Wire.read (); // הוסף 2014/i ++; // הוסף 2014/Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xE1); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 7); // תקן את 2014/while (Wire.available ()) {data = Wire.read (); i ++; } dig_T1 = (נתונים [1] << 8) | נתונים [0]; dig_P1 = (נתונים [7] << 8) | נתונים [6]; dig_P2 = (נתונים [9] << 8) | נתונים [8]; dig_P3 = (נתונים [11] << 8) | נתונים [10]; dig_P4 = (נתונים [13] << 8) | נתונים [12]; dig_P5 = (נתונים [15] << 8) | נתונים [14]; dig_P6 = (נתונים [17] << 8) | נתונים [16]; dig_P7 = (נתונים [19] << 8) | נתונים [18]; dig_T2 = (נתונים [3] << 8) | נתונים [2]; dig_T3 = (נתונים [5] << 8) | נתונים [4]; dig_P8 = (נתונים [21] << 8) | נתונים [20]; dig_P9 = (נתונים [23] << 8) | נתונים [22]; dig_H1 = נתונים [24]; dig_H2 = (נתונים [26] << 8) | נתונים [25]; dig_H3 = נתונים [27]; dig_H4 = (נתונים [28] << 4). (0x0F ונתונים [29]); dig_H5 = (data [30] 4) & 0x0F); // תיקון 2014/dig_H6 = נתונים [31]; // תקן 2014/} void writeReg (uint8_t reg_address, uint8_t נתונים) {Wire.beginTransmission (BME280_ADDRESS); Wire.write (reg_address); Wire.write (נתונים); Wire.endTransmission (); }

void readData ()

{int i = 0; uint32_t נתונים [8]; שידור Wire.beginTransmission (BME280_ADDRESS); Wire.write (0xF7); Wire.endTransmission (); Wire.requestFrom (BME280_ADDRESS, 8); while (Wire.available ()) {data = Wire.read (); i ++; } pres_raw = (נתונים [0] << 12) | (נתונים [1] 4); temp_raw = (נתונים [3] << 12) | (נתונים [4] 4); hum_raw = (נתונים [6] << 8) | נתונים [7]; }

כיול long int חתום [t (חתום long int adc_T)

{חתום long int var1, var2, T; var1 = ((((adc_T >> 3) - ((חתום long int) dig_T1 11; var2 = (((((adc_T >> 4) - ((sign int long) dig_T1)) * ((adc_T >> 4) - ((חתום ארוך int) dig_T1))) >> 12) * ((חתום ארוך) dig_T3)) >> 14; t_fine = var1 + var2; T = (t_fine * 5 + 128) >> 8; חזור T;} כיול לא מבוטל long int_c (חתום long int adc_P) {חתום long int var1, var2; uns sign long int P; var1 = (((sign long int) t_fine) >> 1) - (חתום long int) 64000; var2 = (((var1 >> 2) * (var1 >> 2)) >> 11) * ((חתום long int) dig_P6); var2 = var2 + ((var1 * ((חתום long int) dig_P5)) 2) + (((sign int long) dig_P4) 2) * (var1 >> 2)) >> 13)) >> 3) + ((((int int long) dig_P2) * var1) >> 1)) >> 18; var1 = ((((32768+var1))*((חתום ארוך int) dig_P1)) >> 15); אם (var1 == 0) {החזרה 0; } P = (((int sign long long) (((sign int long) 1048576) -adc_P)-(var2 >> 12))))*3125; אם (P <0x80000000) {P = (P << 1) / ((int sign long long) var1); } אחרת {P = (P / (int sign long int) var1) * 2; } var1 = (((חתום long int) dig_P9) * ((חתום long int) (((P >> 3) * (P >> 3)) >> 13))) >> 12; var2 = (((חתום ארוך) (P >> 2)) * ((חתום ארוך) dig_P8)) >> 13; P = (int sign long long) ((sign long long) P + ((var1 + var2 + dig_P7) >> 4)); החזר P; } כיול לא מבוטל long int_h (חתום long int adc_H) {חתום long int v_x1; v_x1 = (t_fine - ((חתום ארוך) 76800)); v_x1 = (((((adc_H << 14) -(((חתום ארוך int) dig_H4) 15) * ((((((v_x1 * ((חתום ארוך int) dig_H6)) >> 10) * ((* + 8192) >> 14)); v_x1 = (v_x1 - ((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((חתימה ארוכה חתומה) dig_H1)) >> 4)); v_x1 = (v_x1 419430400? 419430400: v_x1); return (int sign long long) (v_x1 >> 12);}

שלב 5: סקריפטים של MakeCode/JavaScript

סקריפטים של MakeCode/JavaScript
סקריפטים של MakeCode/JavaScript

פימורוני הוציאה לאחרונה את enviro: bit שמגיע עם חיישן לחץ BMP280, חיישן אור/צבע ומיקרופון MEMS.הם מציעים גם MicroPython וספריית MakeCode/JavaScript.

השתמשתי במאוחר כדי לכתוב סקריפט MakeCode לחיישן הלחץ. ניתן להעתיק את קובץ ה- hex המתאים ישירות למיקרו: ביט. הקוד מוצג למטה וניתן לשנות אותו באמצעות עורך MakeCode המקוון.

זוהי וריאציה של התסריט עבור ה- micro: bit dive-o-meter. כברירת מחדל הוא מציג את הפרש הלחץ כגרף עמודות. לחיצה על כפתור A קובעת את לחץ ההתייחסות, לחיצה על כפתור B מציגה את ההבדל בין הלחץ בפועל ללחץ ההתייחסות ב- hPa.

בנוסף לגרסת הברקוד הבסיסית אתה מוצא גם גרסת "X", צלב שיער וגרסת "L", שנועדה להקל על הקריאה.

תן טור = 0

תן להישאר = 0 תן שורה = 0 תן מטר = 0 תן דלתא = 0 תן Ref = 0 תן Is = 0 Is = 1012 basic.showLeds (` # # # # # # #.. # #. #. # #… # # # # # # `) Ref = 1180 basic.clearScreen () basic.forever (() => {basic.clearScreen () אם (input.buttonIsPressed (Button. A)) {Ref = envirobit.getPressure () basic.showLeds (` #. #. #. #. #. # # # # #. #. #. #. #`) basic.pause (1000)} אחר אם (input.buttonIsPressed (Button. B)) {basic.showString ("" + Delta + "hPa") basic.pause (200) basic.clearScreen ()} אחרת {Is = envirobit.getPressure () Delta = Is - Ref Meter = Math.abs (Delta) if (מטר> = 400) {שורה = 4} אחרת אם (מטר> = 300) {שורה = 3} אחרת אם (מטר> = 200) {שורה = 2} אחרת אם (מטר> = 100) {שורה = 1} אחרת {שורה = 0} נשאר = מטר - שורה * 100 אם (נשאר> = 80) {טור = 4} אחר אם (נשאר> = 60) {טור = 3} אחר אם (נשאר> = 40) {טור = 2 } אחרת אם (להישאר> = 20) {Column = 1} else {Column = 0} עבור (תנו ColA = 0; ColA <= Column; ColA ++) {led.plot (ColA, Row)} basic.pause (500)}})

מוּמלָץ: