במדריך זה אנו מתכננים לעצב מערכת מדידת לחץ ברומטרית באמצעות BMP180 ו- ARDUINO. קודם כל לצורך ממשק BMP180 ל- ARDUINO, עלינו להוריד ספרייה שתוכננה במיוחד עבור BMP180. ספרייה זו זמינה בכתובת: https://github.com/adafruit/Adafruit-BMP085-Library לאחר צירוף הספרייה, אנו יכולים להתקשר לפונקציות מיוחדות אשר יקלו על העבודה עם חיישן BMP180.
רכיבים נדרשים
חומרה: לוח uno של Arduino, סיכות חיבור, נגן 220Ω, חיישן לחץ ברומטרי BMP180, 16x2 LCD, לוח לחם.
תוכנה: ארדואינו מדי לילה
תרשים מעגלים והסבר עבודה
לאחר קריאה לכותרת, איננו צריכים לדאוג לצורך יצירת תקשורת בין חיישן Arduino Uno ו- BMP180. אנו יכולים פשוט להזמין פונקציות מיוחדות שיעשו זאת עבורנו. עלינו לאתחל רק LCD ולהראות עליו את הערכים שנקראו מ- SENSOR.
ב- LCD 16x2 ישנם 16 פינים בכל מקום אם יש תאורה אחורית, אם אין אור אחורי יהיו בסך הכל 14 פינים. אפשר להפעיל או להשאיר את סיכות התאורה האחורית. עכשיו ב- 14 הסיכות ישנם 8 פיני נתונים (7-14 או D0-D7), 2 סיכות אספקת חשמל (1 & 2 או VSS & VDD או GND & + 5V), 3 rd סיכה לבקרת ניגודיות (VEE-שולט כמה עבה הדמויות צריכות להיות מוצג) ו- 3 סיכות בקרה (RS & RW & E).
במעגל, אתה יכול לראות כי לקחתי רק שני סיכות בקרה, מעט הניגודיות ו- READ / WRITE לא משמשים לעתים קרובות, כך שניתן לקצר אותם לקרקע. זה מכניס את LCD למצב הניגודיות והקריאה הגבוה ביותר. אנחנו רק צריכים לשלוט בסיכות ENABLE ו- RS כדי לשלוח תווים ונתונים בהתאם.
החיבורים שבוצעו עבור LCD מובאים להלן:
PIN1 או VSS לקרקע
PIN2 או VDD או VCC ל- + 5v כוח
PIN3 או VEE לקרקע (נותן ניגודיות מרבית הטובה ביותר למתחילים)
PIN4 או RS (בחירת רישום) ל- PIN8 של ARDUINO UNO
PIN5 או RW (קריאה / כתיבה) לקרקע (מכניס את LCD למצב קריאה מקל על התקשורת עבור המשתמש)
PIN6 או E (אפשר) ל- PININ9 של ARDUINO UNO
PIN11 או D4 ל- PIN10 של ARDUINO UNO
PIN12 או D5 ל- PIN11 של ARDUINO UNO
PIN13 או D6 ל- PIN12 של ARDUINO UNO
PIN14 או D7 ל- PIN13 של ARDUINO UNO
ה- ARDUINO IDE מאפשר למשתמש להשתמש ב- LCD במצב 4 סיביות. סוג זה של תקשורת מאפשר למשתמש להפחית את השימוש בסיכה ב- ARDUINO, בניגוד לאחרים, ARDUINO לא צריך להיות מתוכנת בנפרד לשימוש בו במצב 4 it מכיוון שברירת המחדל ה- ARDUINO מוגדר לתקשר במצב 4 ביט. במעגל ניתן לראות שהשתמשנו בתקשורת 4 ביט (D4-D7).
אז מעצם התבוננות מהטבלה לעיל אנו מחברים 6 פינים של LCD לבקר בהם 4 פינים הם פינים של נתונים ו -2 פינים לבקרה.
לצורך חיבור ה- BMP180 ל- Arduino Uno עלינו לבצע את הפעולות הבאות:
|
ראשית עלינו לקרוא לקובץ הכותרת להפעלת פונקציות מיוחדות "# כלול".
בעזרת קובץ כותרת זה אנו יכולים להתקשר לפונקציות שיכולות לקרוא ערכים מחיישן ישירות ללא כל תמיהה.
כעת עלינו לאפשר את תקשורת C, זה נעשה על ידי קריאה "# כלול
אנו יכולים לקרוא לחץ על ידי קריאה "String PRESSUREVALUE = String (bmp.readPressure ());". כאן נקרא ערך הלחץ מהחיישן ונשמר במחרוזת "PRESSUREVALUE".
אנו יכולים לקרוא את temparature על ידי קריאה "מחרוזת TEMPARATUREVALUE = מחרוזת (bmp.readTemperature ());". כאן נקרא ערך הלחץ מהחיישן ונשמר במחרוזת "TEMPARATUREVALUE".
ראשית עלינו לאפשר את קובץ הכותרת ('#include
שנית עלינו לספר ללוח באיזה סוג LCD אנו משתמשים כאן. מכיוון שיש לנו כל כך הרבה סוגים שונים של LCD (כמו 20 * 4, 16 * 2, 16 * 1 וכו '). כאן אנו הולכים להתממשק LCD 16 * 2 ל- UNO כך שנקבל 'lcd.begin (16,2);'. עבור 16 * 1 אנו מקבלים 'lcd.begin (16,1);'.
בהוראה זו אנו הולכים לספר ללוח היכן חיברנו את הפינים, הפינים המחוברים מיוצגים בסדר "RS, En, D4, D5, D6, D7". יש לייצג נכון סיכות אלה. מכיוון שחיברנו את ה- RS ל- PIN0 וכן הלאה כפי שמוצג בתרשים המעגל, אנו מייצגים את מספר הסיכה שעל הלוח הוא "LiquidCrystallcd (0,1,8,9,10,11);".
אחרי שלמעלה שם כל שנותר הוא לשלוח נתונים, הנתונים שצריכים להיות מוצגים ב- LCD צריכים להיות כתובים "cd.print (" שלום, עולם! ");". עם פקודה זו LCD מציג 'שלום, עולם!'.
כפי שאתה יכול לראות אנחנו לא צריכים לדאוג לשום דבר אחר, אנחנו רק צריכים לבצע אתחול וה- UNO יהיה מוכן להציג נתונים. אנחנו לא צריכים לכתוב לולאת תוכנה כדי לשלוח את הנתונים BYTE על ידי BYTE לכאן. לאחר קריאת הערך מהחיישן אנו נציג אותם על גבי LCD בגודל 16x2.