Untitled
unknown
plain_text
4 years ago
2.5 kB
4
Indexable
#include <Wire.h> #include <SPI.h> #include <Adafruit_BMP280.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27,20,4); Adafruit_BMP280 bmp; // use I2C interface Adafruit_Sensor *bmp_temp = bmp.getTemperatureSensor(); Adafruit_Sensor *bmp_pressure = bmp.getPressureSensor(); void setup() { Serial.begin(9600); Serial.println(F("BMP280 Sensor event test")); if (!bmp.begin()) { Serial.println(F("Could not find a valid BMP280 sensor, check wiring!")); while (1) delay(10); } /* Default settings from datasheet. */ bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */ Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */ Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */ Adafruit_BMP280::FILTER_X16, /* Filtering. */ Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */ bmp_temp->printSensorDetails(); lcd.init(); lcd.init(); } void loop() { sensors_event_t temp_event, pressure_event; bmp_temp->getEvent(&temp_event); bmp_pressure->getEvent(&pressure_event); Serial.print(F(" ")); Serial.print(F("Temperature = ")); Serial.print(temp_event.temperature); Serial.println(" *C"); Serial.print(F("Pressure = ")); Serial.print(pressure_event.pressure); Serial.println(" hPa"); Serial.print(F("Approx altitude = ")); Serial.print(bmp.readAltitude(1019.66)); //The "1019.66" is the pressure(hPa) at sea level in day in your region Serial.println(" m"); //If you don't know it, modify it until you get your current altitude lcd.backlight(); lcd.setCursor(0,0); lcd.print(temp_event.temperature); lcd.print((char)223); // print ° character lcd.print("C|"); lcd.setCursor(8,0); lcd.print(bmp.readAltitude(1019.66)); //The "1019.66" is the pressure(hPa) at sea level in day in your region lcd.print("m"); lcd.setCursor(3,1); lcd.print(pressure_event.pressure); lcd.print(" hPa"); Serial.println(); delay(20000); lcd.clear(); lcd.noBacklight(); // Toti pini off for(int i = 0; i < 20; i++){ pinMode(i, OUTPUT); } //Disable ADC ADCSRA &= ~(1 << 7); //Enable SLEEP SMCR |= (1<< 2); SMCR |= 1; //BOD Disable MCUCR |= (3 << 5); MCUCR = (MCUCR & ~(1 << 5)) | (1 << 6); __asm__ __volatile__("sleep"); }
Editor is loading...