- Componenten vereist
- BMP280 Druksensormodule:
- Schakelschema om BMP280 te koppelen aan Arduino:
- Arduino-programma om BMP280 te koppelen aan Arduino:
- Werking van Arduino BMP280 Pressure Sensor Interfacing Project
Als u uw eigen temperatuurcontrolesysteem wilt bouwen of de hoogte van uw drone wilt meten of gewoon de atmosferische druk in uw omgeving wilt meten, dan is een van de beste modules die u in uw project kunt gebruiken de BMP280-druksensormodule. BMP280 is een absolute druk- en temperatuurbewakingssensor, de verbeterde versie van de BMP085-, BMP180-, BMP183-sensoren. Waarom heet het een bijgewerkte versie? Het zal in de volgende secties worden besproken. We hebben de oudere versie BMP180 al met Arduino gebruikt in een van onze vorige tutorials.
BMP280 sensormodule kan worden gebruikt in combinatie met microcontrollers zoals Arduino, PIC, AVR, etc. Voor dit project gaan we Arduino Uno gebruiken met BMP280 samen met een LCD 16x2 display module, om waarden van temperatuur en druk weer te geven. Voordat we de BMP280 met Arduino verbinden, moeten we de BMP280 Arduino-bibliotheek downloaden, die is ontwikkeld door Adafruit. Klik op deze Adafruit BMP280-bibliotheeklink om de respectieve Github-pagina te openen en het header-bestand toe te voegen aan je Arduino IDE.
Componenten vereist
- Arduino
- BMP280
- Verbindingsdraden
- Broodplank
- LCD-16x2
BMP280 Druksensormodule:
De BMP280 sensormodule werkt met de minimale spanning (VDD) van 1,71V, terwijl de vorige versie sensormodules werken op 1,8V (VDD). Als het gaat om stroomverbruik, verbruikt de BMP280 2,7uA, terwijl de BMP180 12uA verbruikt en de BMP183 en BMP085 elk 5uA. De BMP280 ondersteunt ook nieuwe filtermodi. De BMP280-sensormodule ondersteunt I2c- en SPI-protocollen, terwijl de overige sensor I2c of SPI ondersteunt. De BMP280 sensormodule heeft een nauwkeurigheid van ± 0,12 hPa, wat overeenkomt met ± 1 m hoogteverschil. Vanwege deze belangrijke kenmerken wordt het meestal in verschillende toepassingen gebruikt. De BMP-sensor bestaat uit een druksensorelement, vochtigheidssensorelement en temperatuursensorelement die verder zijn verbonden met drukfront-end, vochtigheid front-end en temperatuur front-end. Deze front-end IC's zijn analoge gevoeligheidsversterkers die worden gebruikt bij het versterken van kleine signalen. De output van deze analoge front-end IC's wordt als inputsignaal naar ADC gestuurd. Hierin worden de analoge waarden omgezet in digitale spanning en deze spanning wordt toegevoerd aan de logische schakelingen voor verdere interface met de buitenwereld.
De BMP280-sensormodule bestaat uit drie energiemodi, slaapmodus, geforceerde modus en normale modus. In de slaapstand worden geen metingen uitgevoerd en is het stroomverbruik minimaal. In de geforceerde modus wordt een enkele meting uitgevoerd volgens de geselecteerde meet- en filteropties. Normale modus wisselt continu tussen meting en standby-periode, en de cyclustijd wordt bepaald door Tstandby. De stroom in de stand-bymodus is iets hoger dan in de slaapmodus.
Schakelschema om BMP280 te koppelen aan Arduino:
Het schakelschema om de Arduino te verbinden met de BMP280- sensor en het LCD-scherm wordt hieronder weergegeven. Als je helemaal nieuw bent bij Arduino en LCD, kun je deze Arduino LCD-tutorial bekijken om te begrijpen hoe je Arduino met LCD-schermen kunt gebruiken.
De VCC- en GND-pinnen van de sensor zijn verbonden met de 3v3- en GND-pinnen van de Arduino. De SCL- en SDA-pinnen van de sensor zijn verbonden met de A5 en A4 van het Arduino-bord. De LCD-aansluitingen zijn als volgt
Naam LCD-pincode |
Arduino-pin |
VSS en RW |
GND |
RS |
D9 |
E. |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Arduino-programma om BMP280 te koppelen aan Arduino:
De volledige BMP280 Arduino-code vindt u onderaan deze pagina en kan rechtstreeks naar uw Arduino-bord worden geüpload. De uitleg hiervan wordt hieronder gegeven
Deze bibliotheken zijn inbegrepen om de speciale functies mogelijk te maken. Met de # include header-bestanden kunnen we direct de waarden aflezen die van de sensor komen. De #include
# omvatten
Creëren op object BMP voor Adafruit_BMP280. Er wordt een objectbestand gemaakt om toegang te krijgen tot speciale functies.
Adafruit_BMP280 bmp; // I2C
De pinnen van de Arduino instellen om te communiceren met het LCD-scherm. Met behulp van deze pinnen worden gegevens overgedragen.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Initialiseren van de LCD en seriële communicatie.
leegte setup () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("BMP280-test")); lcd.print ("Welkom bij"); lcd.setCursor (0,1); lcd.print ("CIRCUIT DIGEST"); vertraging (1000); lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Kon geen geldige BMP280-sensor vinden, controleer de bedrading!")); terwijl (1); }
Deze functie werkt wanneer het initialiseren van het bmp-object is mislukt.
/ * Standaardinstellingen uit datasheet. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Operating Mode. * / Adafruit_BMP280:: SAMPLING_X2, / * Temp. oversampling * / Adafruit_BMP280:: SAMPLING_X16, / * Druk oversampling * / Adafruit_BMP280:: FILTER_X16, / * FILTER_X16 * / Adafruit_BMP280:: STANDBY_MS_500); /* Standby-tijd. * /}
Dit deel van de code drukt de temperatuur af op een seriële monitor en is bedoeld voor foutopsporing.
void loop () {Serial.print (F ("Temperatuur =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
De functie bmp.readPressure en bmp.readTemprature worden gebruikt om speciale functies op te roepen en de temperatuur- en drukwaarden te retourneren.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Werking van Arduino BMP280 Pressure Sensor Interfacing Project
De functies bmp.readTemprature () en bmp.readPressure () worden gebruikt om de temperatuur- en drukwaarden te retourneren. Deze functies zijn een groep instructies die een speciale taak uitvoeren, in ons geval om temperatuur- en drukbestanden te retourneren. Deze functies worden aangeroepen met de functies bmp.readTemprature () en bmp.readPressure () . De lcd.setCursor zet de cursor van de LCD op de gewenste positie op het scherm. Het lcd.print commando drukt de gegevens af vanaf de positie die is ingesteld door de programmeur. Als er standaard geen positie voor het LCD-scherm is ingesteld, wordt (0,0) als de beginpositie gebruikt en worden de gegevens continu afgedrukt. De volgende gegevens nemen de positie van de volgende kolom in en de procedure gaat door totdat het het einde van de rij bereikt en naar de volgende rij gaat.
De BMP280 kan worden gebruikt in vliegend speelgoed, mobiele telefoons, tablets, pc's, gps-apparaten, draagbare medische apparaten, weerstations thuis, enz. Door deze procedure te volgen en header-bestanden en enkele speciale functies te gebruiken, kunnen we de BMP280 eenvoudig verbinden met de Arduino. De volledige werking is ook te vinden in de onderstaande video, ik hoop dat je deze BMP280 Arduino-tutorial leuk vond en iets nuttigs hebt geleerd. Als je een vraag hebt, laat ze dan achter in de commentaarsectie hieronder of gebruik de forums voor andere technische vragen.