- Componente necesare
- Modul senzor de presiune BMP280:
- Diagrama circuitului pentru interfața BMP280 cu Arduino:
- Program Arduino pentru interfața BMP280 cu Arduino:
- Funcționarea proiectului de interfațare a senzorului de presiune Arduino BMP280
Dacă doriți să vă construiți propriul sistem de monitorizare a temperaturii sau să măsurați altitudinea dronei sau pur și simplu doriți să măsurați presiunea atmosferică din zona dvs., atunci unul dintre cele mai bune module pe care le puteți utiliza în proiectul dvs. este modulul senzor de presiune BMP280. BMP280 este un senzor absolut de monitorizare a presiunii și temperaturii, care este versiunea actualizată a senzorilor BMP085, BMP180, BMP183. De ce se numește o versiune actualizată? Acesta va fi discutat în secțiunile următoare. Am folosit deja versiunea mai veche BMP180 cu Arduino într-unul dintre tutorialele noastre anterioare.
Modulul senzor BMP280 poate fi utilizat împreună cu microcontrolere precum Arduino, PIC, AVR etc. Pentru acest proiect vom folosi Arduino Uno cu BMP280 împreună cu un modul de afișaj LCD 16x2, pentru a afișa valorile temperaturii și presiunii. Înainte de a interfața BMP280 cu Arduino, trebuie să descărcăm biblioteca BMP280 Arduino, dezvoltată de Adafruit. Faceți clic pe acest link de bibliotecă Adafruit BMP280 pentru a deschide pagina Github respectivă și pentru a adăuga fișierul antet la ID-ul dvs. Arduino.
Componente necesare
- Arduino
- BMP280
- Conectarea firelor
- Pâine
- LCD- 16x2
Modul senzor de presiune BMP280:
Modulul senzor BMP280 funcționează cu tensiunea minimă (VDD) de 1,71V, în timp ce versiunea anterioară a modulelor senzorului funcționează pe 1,8V (VDD). Când vine vorba de consumul curent, BMP280 consumă 2,7 uA, în timp ce BMP180 consumă 12 uA, iar BMP183 și BMP085 consumă 5 uA fiecare. BMP280 acceptă, de asemenea, noi moduri de filtrare. Modulul senzor BMP280 acceptă protocoalele I2c și SPI, în timp ce senzorul rămas acceptă fie I2c, fie SPI. Modulul senzor BMP280 are o precizie de ± 0,12 hPa, care este echivalent cu o diferență de altitudine de ± 1 m. Datorită acestor caracteristici cheie, este utilizat în principal în diverse aplicații. Senzorul BMP constă dintr-un element de detectare a presiunii, element de detectare a umidității și element de detectare a temperaturii care sunt conectate în continuare la front-end de presiune, front-end de umiditate și capăt de temperatură. Aceste IC front-end sunt amplificatoare analogice de sensibilitate care sunt utilizate în amplificarea semnalelor mici. Ieșirea acestor IC-uri front-end analogice este alimentată către ADC ca semnal de intrare. În aceasta, valorile analogice sunt convertite în tensiune digitală și această tensiune este alimentată în circuitele logice pentru o interfață suplimentară cu lumea exterioară.
Modulul senzor BMP280 este format din trei moduri de alimentare modul de repaus, modul forțat și modul normal. În modul de repaus, nu se efectuează măsurători și consumul de energie este minim. În modul forțat, se efectuează o singură măsurare în funcție de opțiunile de măsurare și filtrare selectate. Modul normal se deplasează continuu între măsurare și perioada de așteptare, iar perioada ciclurilor de timp va fi definită de T standby. Curentul în modul de așteptare este puțin mai mare decât modul de repaus.
Diagrama circuitului pentru interfața BMP280 cu Arduino:
Schema circuitului pentru conectarea Arduino la senzorul BMP280 și LCD este prezentată mai jos. Dacă sunteți complet nou în Arduino și LCD, atunci puteți verifica acest tutorial Arduino LCD pentru a înțelege cum să utilizați Arduino cu afișaje LCD.
Pinii VCC și GND ai senzorului sunt conectați la pinii 3v3 și GND ai Arduino. Pinii SCL și SDA ai senzorului sunt conectați la A5 și A4 ale plăcii Arduino. Conexiunile LCD sunt după cum urmează
Numele pinului LCD |
Pinul Arduino |
VSS și RW |
GND |
RS |
D9 |
E |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Program Arduino pentru interfața BMP280 cu Arduino:
Codul complet BMP280 Arduino poate fi găsit în partea de jos a acestei pagini, care poate fi încărcat direct pe placa dvs. Arduino. Explicația acestora este dată mai jos
Aceste biblioteci sunt incluse pentru activarea funcțiilor speciale. #Include fișierele de antet putem citi direct valorile provenite de la senzor. #Include
#include
Crearea pe obiect BMP pentru Adafruit_BMP280. Un fișier obiect este creat pentru a accesa funcții speciale.
Adafruit_BMP280 bmp; // I2C
Setarea pinilor Arduino pentru a comunica cu ecranul LCD. Folosind acești pini, datele vor fi transferate.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Inițializarea ecranului LCD și a comunicării seriale.
void setup () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("test BMP280")); lcd.print („Bun venit la”); lcd.setCursor (0,1); lcd.print ("CIRCUIT DIGEST"); întârziere (1000); lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Nu s-a putut găsi un senzor BMP280 valid, verificați cablarea!")); în timp ce (1); }
Această funcție funcționează atunci când inițializarea obiectului bmp eșuează.
/ * Setări implicite din foaia de date. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Mod de operare. * / Adafruit_BMP280:: SAMPLING_X2, / * Eșantionare temporară * / Adafruit_BMP280:: SAMPLING_X16, / * Overampling de presiune * / Adafruit_BMP280:: FILTER_X16, * / Adafruit_BMP280:: STANDBY_MS_500); /* Timp de așteptare. * /}
Această parte a codului imprimă temperatura pe monitorul serial și este în scop de depanare.
bucla void () {Serial.print (F ("Temperatura =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
Funcția bmp.readPressure și bmp.readTemprature sunt utilizate pentru a invoca funcții speciale și pentru a returna valorile de temperatură și presiune.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Funcționarea proiectului de interfațare a senzorului de presiune Arduino BMP280
Funcțiile bmp.readTemprature () și bmp.readPressure () sunt utilizate pentru a returna valorile de temperatură și presiune. Aceste funcții sunt un grup de declarații care îndeplinesc o sarcină specială, în cazul nostru pentru a returna fișierele de temperatură și presiune. Aceste funcții sunt invocate folosind funcțiile bmp.readTemprature () și bmp.readPressure () . Lcd.setCursor setează cursorul de pe ecranul LCD în poziția dorită pe ecran. lcd.print comanda tipărește datele din poziția stabilită de programator. Dacă nu există o poziție setată în mod implicit pentru ecranul LCD, este luată (0,0) ca poziție inițială și imprimarea continuă a datelor. Următoarele date iau poziția coloanei următoare și procedura continuă până când ajunge la sfârșitul rândului și trece la rândul următor.
BMP280 poate fi utilizat în jucării zburătoare, telefoane mobile, tablete, PC-uri, dispozitive GPS, dispozitive portabile de îngrijire a sănătății, stații meteo la domiciliu etc. Arduino. Funcționarea completă poate fi găsită și în videoclipul prezentat mai jos, sper că ți-a plăcut acest tutorial BMP280 Arduino și ai învățat ceva util. Dacă aveți întrebări, lăsați-le în secțiunea de comentarii de mai jos sau folosiți forumurile pentru alte întrebări tehnice.