Sa tutorial na ito ay magdidisenyo kami ng isang Barometric Pressure Measure System na gumagamit ng BMP180 at ARDUINO. Una sa lahat para sa interfacing BMP180 sa ARDUINO, kailangan naming mag-download ng isang library na partikular na idinisenyo para sa BMP180. Magagamit ang library na ito sa: https://github.com/adafruit/Adafruit-BMP085-Library Matapos mailakip ang library na iyon, maaari kaming tumawag ng mga espesyal na pagpapaandar na magpapadali sa pagtatrabaho sa BMP180 sensor.
Kinakailangan ang Mga Bahagi
Hardware: Arduino uno board, pagkonekta ng mga pin, 220Ω risistor, BMP180 Barometric Pressure Sensor, 16x2 LCD, tinapay board.
Software: Arduino gabi-gabi
Circuit Diagram at Paggawa ng Paliwanag
Matapos tumawag para sa header hindi namin kailangang mag-alala para sa pagtataguyod ng komunikasyon sa pagitan ng Arduino Uno at BMP180 sensor. Maaari lamang kaming tumawag sa mga espesyal na pagpapaandar na magagawa iyon para sa amin. Kailangan lamang naming Pasimulan ang isang LCD at ipakita ang tinawag na mga halaga mula sa SENSOR dito.
Sa 16x2 LCD mayroong 16 na pin sa lahat kung mayroong back light, kung walang back light magkakaroon ng kabuuang 14 na mga pin. Maaari ng isang tumakbo o iwanan ang mga light light pin. Ngayon sa 14 na pin mayroong 8 data pin (7-14 o D0-D7), 2 power supply pin (1 & 2 o VSS & VDD o GND & + 5v), 3 rd pin para sa control ng kaibahan (kinokontrol ng VEE kung gaano dapat makapal ang mga character ipinakita) at 3 control pin (RS & RW & E).
Sa circuit, maaari mong obserbahan na kumuha lamang ako ng dalawang control pin, ang kaibahan ng kaunti at READ / WRITE ay hindi madalas ginagamit upang maaari silang maiksi sa lupa. Inilalagay nito ang LCD sa pinakamataas na kaibahan at mode na basahin. Kailangan lang naming makontrol ang Mga PIN na INABAYAHAN at RS upang magpadala ng mga character at data nang naaayon.
Ang mga koneksyon na tapos para sa LCD ay ibinibigay sa ibaba:
PIN1 o VSS sa lupa
Ang PIN2 o VDD o VCC sa + 5v na lakas
PIN3 o VEE sa lupa (nagbibigay ng pinakamataas na maximum na kaibahan para sa isang nagsisimula)
Ang PIN4 o RS (Pagpili ng Rehistro) sa PIN8 ng ARDUINO UNO
Ang PIN5 o RW (Basahin / Isulat) sa ground (inilalagay ang LCD sa read mode ay pinapagaan ang komunikasyon para sa gumagamit)
Ang PIN6 o E (Paganahin) saPIN9 ng ARDUINO UNO
Ang PIN11 o D4 hanggang PIN10 ng ARDUINO UNO
Ang PIN12 o D5 hanggang PIN11 ng ARDUINO UNO
Ang PIN13 o D6 hanggang PIN12 ng ARDUINO UNO
Ang PIN14 o D7 hanggang PIN13 ng ARDUINO UNO
Pinapayagan ng ARDUINO IDE ang gumagamit na gumamit ng LCD sa 4 bit mode. Ang ganitong uri ng komunikasyon ay nagbibigay-daan sa gumagamit na bawasan ang paggamit ng pin sa ARDUINO, hindi katulad ng iba pang ARDUINO ay hindi kailangang i-program nang magkahiwalay para magamit ito sa 4 na mode na ito dahil bilang default ang ARDUINO ay naka-set up upang makipag-usap sa 4 bit mode. Sa circuit maaari mong makita ang gumamit ng 4bit na komunikasyon (D4-D7).
Kaya't mula sa pagmamasid lamang mula sa itaas na talahanayan kumokonekta kami ng 6 na mga pin ng LCD sa controller kung saan 4 na mga pin ang mga data pin at 2 mga pin para sa kontrol.
Para sa pagkonekta sa BMP180 sa Arduino Uno kailangan nating gawin ang sumusunod:
|
Una kailangan naming tawagan ang header file para sa pagpapagana ng mga espesyal na function na "#include".
Sa header file na ito maaari nating tawagan ang mga pagpapaandar na maaaring basahin ang mga halaga nang direkta mula sa Sensor nang walang anumang fuzz.
Ngayon kailangan naming paganahin ang C komunikasyon, ginagawa ito sa pamamagitan ng pagtawag sa "#include
Maaari nating mabasa ang presyur sa pamamagitan ng pagtawag sa "String PRESSUREVALUE = String (bmp.readPressure ());". Dito basahin ang halaga ng presyon mula sa sensor at nakaimbak sa string na "PRESSUREVALUE".
Mababasa natin ang temparature sa pamamagitan ng pagtawag sa "String TEMPARATUREVALUE = String (bmp.readTemperature ());". Dito basahin ang halaga ng presyon mula sa sensor at nakaimbak sa string na "TEMPARATUREVALUE".
Una kailangan naming paganahin ang file ng header ('# isama
Pangalawa kailangan naming sabihin sa board kung aling uri ng LCD ang ginagamit namin dito. Dahil mayroon kaming napakaraming iba't ibang mga uri ng LCD (tulad ng 20 * 4, 16 * 2, 16 * 1 atbp.). Dito kami ay mag-uugnay sa isang 16 * 2 LCD sa UNO kaya nakukuha namin ang 'lcd.begin (16,2);'. Para sa 16 * 1 nakukuha namin ang 'lcd.begin (16,1);'.
Sa tagubilin na ito ay sasabihin namin sa board kung saan namin ikinonekta ang mga pin, Ang mga pin na konektado ay kinakatawan sa pagkakasunud-sunod bilang "RS, En, D4, D5, D6, D7". Ang mga pin na ito ay dapat na kinatawan nang wasto. Dahil nakakonekta namin ang RS sa PIN0 at iba pa tulad ng ipinakita sa circuit diagram, kinakatawan namin ang numero ng pin sa board na "LiquidCrystallcd (0,1,8,9,10,11);".
Matapos sa itaas doon ang natitira ay upang magpadala ng data, ang data na kailangang ipakita sa LCD ay dapat na nakasulat bilang "cd.print (" hello, mundo! ");". Gamit ang utos na ito ang LCD ay nagpapakita ng 'hello, mundo!'.
Tulad ng nakikita mong hindi namin kailangang mag-alala tungkol sa iba pa, kailangan lang naming pasimulan at ang UNO ay handa na magpakita ng data. Hindi namin kailangang magsulat ng isang loop ng programa upang maipadala ang data na BYTE ni BYTE dito. Matapos basahin ang halaga mula sa sensor ay ipapakita namin ang mga ito sa 16x2 LCD.