În acest tutorial vom proiecta un sistem de măsurare a presiunii barometrice folosind BMP180 și ARDUINO. În primul rând pentru interfațarea BMP180 cu ARDUINO, trebuie să descărcăm o bibliotecă special concepută pentru BMP180. Această bibliotecă este disponibilă la: https://github.com/adafruit/Adafruit-BMP085-Library După atașarea acelei biblioteci, putem apela funcții speciale care vor ușura lucrul cu senzorul BMP180.
Componente necesare
Hardware: placă Arduino uno, pini de conectare, rezistență 220Ω, senzor de presiune barometrică BMP180, LCD 16x2, placă pentru pâine.
Software: Arduino noaptea
Diagrama circuitului și explicația de lucru
După apelarea pentru antet, nu trebuie să ne facem griji pentru stabilirea comunicării între Arduino Uno și senzorul BMP180. Putem pur și simplu să apelăm la funcții speciale care vor face acest lucru pentru noi. Trebuie doar să inițializăm un LCD și să afișăm valorile apelate de la SENSOR pe el.
În ecranul LCD 16x2 există 16 pini peste tot dacă există o lumină din spate, dacă nu există lumină din spate vor exista 14 pini în total. Se poate alimenta sau lăsa pinii luminii din spate. Acum, în cele 14 pinii există 8 pini de date (7-14 sau D0-D7), 2 pini de alimentare (1 & 2 sau VSS & VDD sau GND & + 5v), 3 rd PIN pentru controlul contrastului (VEE-control cât de gros personajele ar trebui să fie prezentate) și 3 pini de control (RS & RW & E).
În circuit, puteți observa că am luat doar doi pini de control, bitul de contrast și READ / WRITE nu sunt adesea folosite, astfel încât acestea pot fi scurtcircuitate la masă. Acest lucru pune LCD în cel mai mare contrast și modul de citire. Trebuie doar să controlăm ENABLE și pinii RS pentru a trimite caractere și date în consecință.
Conexiunile care se fac pentru LCD sunt date mai jos:
PIN1 sau VSS la masă
PIN2 sau VDD sau VCC la + 5v putere
PIN3 sau VEE la sol (oferă un contrast maxim optim pentru un începător)
PIN4 sau RS (Selecție înregistrare) la PIN8 din ARDUINO UNO
PIN5 sau RW (citire / scriere) la masă (pune LCD în modul de citire facilitează comunicarea pentru utilizator)
PIN6 sau E (Enable) toPIN9 of ARDUINO UNO
PIN11 sau D4 până la PIN10 ale ARDUINO UNO
PIN12 sau D5 până la PIN11 ale ARDUINO UNO
PIN13 sau D6 până la PIN12 ale ARDUINO UNO
PIN14 sau D7 până la PIN13 ale ARDUINO UNO
IDE ARDUINO permite utilizatorului să utilizeze LCD în modul 4 biți. Acest tip de comunicare permite utilizatorului să reducă utilizarea pinului pe ARDUINO, spre deosebire de alte dispozitive, ARDUINO nu trebuie să fie programat separat pentru a-l utiliza în modul 4 it deoarece implicit ARDUINO este configurat să comunice în modul 4 biți. În circuit puteți vedea că am folosit o comunicație pe 4 biți (D4-D7).
Deci, din simpla observare din tabelul de mai sus, conectăm 6 pini de LCD la controler, în care 4 pini sunt pini de date și 2 pini pentru control.
Pentru conectarea BMP180 la Arduino Uno trebuie să procedăm în felul următor:
|
Mai întâi trebuie să apelăm fișierul antet pentru activarea funcțiilor speciale „#include”.
Cu acest fișier antet putem apela funcții care pot citi valorile de la senzor direct fără niciun fuzz.
Acum trebuie să activăm comunicarea C, acest lucru se face apelând „#include
Putem citi presiunea apelând „String PRESSUREVALUE = String (bmp.readPressure ());”. Aici valoarea presiunii va fi citită de la senzor și este stocată în șirul „PRESSUREVALUE”.
Putem citi temparatura apelând „String TEMPARATUREVALUE = String (bmp.readTemperature ());”. Aici valoarea presiunii va fi citită de la senzor și este stocată în șirul „TEMPARATUREVALUE”.
Mai întâi trebuie să activăm fișierul antet ('#include
În al doilea rând, trebuie să spunem tabloului ce tip de LCD folosim aici. Deoarece avem atât de multe tipuri diferite de LCD (cum ar fi 20 * 4, 16 * 2, 16 * 1 etc.). Aici vom interfața un LCD 16 * 2 la UNO, astfel încât să obținem „lcd.begin (16,2);”. Pentru 16 * 1 obținem „lcd.begin (16,1);”.
În această instrucțiune vom spune plăcii unde am conectat pinii. Pinii conectați trebuie să fie reprezentați în ordine ca „RS, En, D4, D5, D6, D7”. Acești pini trebuie să fie reprezentați corect. Deoarece am conectat RS la PIN0 și așa mai departe, așa cum se arată în schema de circuite, reprezentăm numărul pinului de pe placă ca „LiquidCrystallcd (0,1,8,9,10,11);”.
După ce mai sus nu mai rămâne decât trimiterea de date, datele care trebuie afișate pe LCD trebuie scrise ca „cd.print („ salut, lume! ”);”. Cu această comandă ecranul LCD afișează „salut, lume!”.
După cum puteți vedea, nu trebuie să ne facem griji în legătură cu altceva, trebuie doar să inițializăm și ONU va fi gata să afișeze date. Nu trebuie să scriem o buclă de program pentru a trimite datele BYTE cu BYTE aici. După ce am citit valoarea de la senzor, le vom afișa pe ecranul LCD 16x2.