- Komponenter, der kræves
- BMP280 tryksensormodul:
- Kredsløbsdiagram til interface BMP280 med Arduino:
- Arduino-program til interface BMP280 med Arduino:
- Arbejde med Arduino BMP280 trykfølergrænsefladesprojekt
Hvis du vil bygge dit eget temperaturovervågningssystem eller måle højden på din drone eller bare vil måle det atmosfæriske tryk i dit område, så er BMP280 tryksensormodulet et af de bedste moduler, du kan bruge i dit projekt. BMP280 er sensor til absolut tryk og temperaturovervågning, som er den opgraderede version af BMP085, BMP180, BMP183 sensorer. Hvorfor kaldes det en opgraderet version? Det vil blive diskuteret i de følgende afsnit. Vi har allerede brugt den ældre version BMP180 med Arduino i en af vores tidligere tutorials.
BMP280 sensormodul kan bruges sammen med mikrokontroller som Arduino, PIC, AVR osv. Til dette projekt skal vi bruge Arduino Uno med BMP280 sammen med et LCD 16x2 displaymodul til at vise værdier for temperatur og tryk. Før vi grænseflader BMP280 med Arduino, skal vi downloade BMP280 Arduino-biblioteket, som er udviklet af Adafruit. Klik på dette Adafruit BMP280-biblioteklink for at åbne den respektive Github-side og tilføje headerfilen til din Arduino IDE.
Komponenter, der kræves
- Arduino
- BMP280
- Tilslutning af ledninger
- Brødbræt
- LCD- 16x2
BMP280 tryksensormodul:
BMP280-sensormodulet fungerer med minimumspændingen (VDD) på 1,71V, mens sensormodulerne i den forrige version fungerer på 1,8V (VDD). Når det kommer til nuværende forbrug, forbruger BMP280 2,7 uA, mens BMP180 bruger 12 uA, og BMP183 og BMP085 bruger 5 uA hver. BMP280 understøtter også nye filtertilstande. BMP280-sensormodulet understøtter I2c- og SPI-protokoller, mens den resterende sensor understøtter enten I2c eller SPI. BMP280-sensormodulet har en nøjagtighed på ± 0,12 hPa, hvilket svarer til ± 1 m højdeforskel. På grund af disse nøglefunktioner bruges det mest i forskellige applikationer. BMP-sensoren består af et trykfølerelement, fugtighedsfølerelement og temperaturfølerelement, der yderligere er forbundet med trykfrontend, luftfugtighedsfrontend og temperaturfrontend. Disse frontend IC'er er følsomme analoge forstærkere, der bruges til forstærkning af små signaler. Outputtet fra disse analoge front-IC'er føres til ADC som et indgangssignal. I dette konverteres de analoge værdier til digital spænding, og denne spænding føres til de logiske kredsløb for yderligere grænseflade med omverdenen.
BMP280-sensormodulet består af tre strømtilstande dvaletilstand, tvungen tilstand og normal tilstand. I dvaletilstand udføres der ingen målinger, og strømforbruget er på et minimum. I tvungen tilstand udføres en enkelt måling i henhold til de valgte måle- og filterindstillinger. Normal tilstand skifter kontinuerligt mellem måling og standbyperiode, og cyklusens tidsperiode defineres af Tstandby. Strømmen i standbytilstand er lidt højere end dvaletilstanden.
Kredsløbsdiagram til interface BMP280 med Arduino:
Kredsløbsdiagrammet til at forbinde Arduino med BMP280- sensoren og LCD'et er vist nedenfor. Hvis du er helt ny til Arduino og LCD, kan du tjekke denne Arduino LCD-tutorial for at forstå, hvordan du bruger Arduino med LCD-skærme.
VCC- og GND-stifterne på sensoren er forbundet til 3v3- og GND-stifterne på Arduino. SCL- og SDA-stifterne på sensoren er tilsluttet A5 og A4 på Arduino-kortet. LCD-tilslutningerne er som følger
LCD-pin-navn |
Arduino Pin |
VSS og RW |
GND |
RS |
D9 |
E |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Arduino-program til interface BMP280 med Arduino:
Den komplette BMP280 Arduino-kode findes nederst på denne side, som kan uploades direkte til dit Arduino-kort. Forklaringen på det samme er givet nedenfor
Disse biblioteker er inkluderet til aktivering af specialfunktionerne. #Include header-filerne kan vi direkte læse de værdier, der kommer fra sensoren. # Inkluderer
#omfatte
Opretter på objekt BMP til Adafruit_BMP280. Der oprettes en objektfil for at få adgang til specielle funktioner.
Adafruit_BMP280 bmp; // I2C
Indstilling af stifterne på Arduino til at kommunikere med LCD'et. Ved hjælp af disse ben overføres data.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Initialisering af LCD og seriel kommunikation.
ugyldig opsætning () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("BMP280 test")); lcd.print ("Velkommen til"); lcd.setCursor (0,1); lcd.print ("CIRCUIT DIGEST"); forsinkelse (1000); lcd.clear (); hvis (! bmp.begin ()) {Serial.println (F ("Kunne ikke finde en gyldig BMP280-sensor, tjek ledningerne!"); mens (1); }
Denne funktion fungerer, når initialiseringen af bmp-objektet mislykkes.
/ * Standardindstillinger fra datablad. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Driftstilstand * * / Adafruit_BMP280:: STANDBY_MS_500); /* Standby tid. * /}
Denne del af koden udskriver temperaturen på den serielle skærm og er til fejlfindingsformål.
ugyldig sløjfe () {Serial.print (F ("Temperature =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
Funktionen bmp.readPressure og bmp.readTemprature bruges til at påkalde specielle funktioner og returnere temperatur- og trykværdierne.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Arbejde med Arduino BMP280 trykfølergrænsefladesprojekt
Funktionerne bmp.readTemprature () og bmp.readPressure () bruges til at returnere temperatur- og trykværdierne. Disse funktioner er en gruppe udsagn, der udfører en særlig opgave, i vores tilfælde at returnere temperatur- og trykfiler. Disse funktioner påkaldes ved hjælp af funktionerne bmp.readTemprature () og bmp.readPressure () . Den lcd.setCursor sætter markøren på LCD til den ønskede position på skærmen. den lcd.print kommando udskriver dataene fra den position, der er indstillet af programmøren. Hvis der som standard ikke er indstillet nogen position til LCD'et, tager det (0,0) som startposition og kontinuerlig udskrivning af dataene. De næste data tager positionen for den næste kolonne, og proceduren fortsætter, indtil den når slutningen af rækken og skifter til næste række.
BMP280 kan bruges i flyvende legetøj, mobiltelefoner, tablets, pc'er, GPS-enheder, bærbare sundhedsudstyr, hjemmevejrstationer osv. Ved at følge denne procedure og bruge headerfiler og nogle specielle funktioner kan vi let interface BMP280 med Arduino. Det komplette arbejde kan også findes i videoen nedenfor, håber du nød denne BMP280 Arduino tutorial og lærte noget nyttigt. Hvis du har spørgsmål, skal du lade dem være i kommentarfeltet nedenfor eller bruge fora til andre tekniske spørgsmål.