// // FILE: MS5611_test.ino // AUTHOR: Rob Tillaart // PURPOSE: demo application // DATE: 2014-okt-16 // URL: https://github.com/RobTillaart/MS5611 #include "MS5611.h" // BREAKOUT MS5611 aka GY63 - see datasheet // // SPI I2C // +--------+ // VCC VCC | o | // GND GND | o | // SCL | o | // SDI SDA | o | // CSO | o | // SDO | o L | L = led // PS | o O | O = opening PS // +--------+ // // PS to VCC ==> I2C // PS to GND ==> SPI // CS to VCC ==> 0x76 // CS to GND ==> 0x77 MS5611 MS5611(0x76); // 0x76 = CSB to VCC; 0x77 = CSB to GND uint32_t start, stop; void setup() { Serial.begin(115200); while (!Serial); Serial.println(); Serial.println(__FILE__); Serial.print("MS5611_LIB_VERSION: "); Serial.println(MS5611_LIB_VERSION); if (MS5611.begin() == true) { Serial.println("MS5611 found."); } else { Serial.println("MS5611 not found. halt."); while (1) { digitalWrite(LED_BUILTIN, HIGH); delay(1000); digitalWrite(LED_BUILTIN, LOW); delay(1000); } } Serial.println(); } /* There are 5 oversampling settings, each corresponding to a different amount of milliseconds The higher the oversampling, the more accurate the reading will be, however the longer it will take. OSR_ULTRA_HIGH -> 8.22 millis OSR_HIGH -> 4.11 millis OSR_STANDARD -> 2.1 millis OSR_LOW -> 1.1 millis OSR_ULTRA_LOW -> 0.5 millis Default = backwards compatible */ void loop() { digitalWrite(LED_BUILTIN, HIGH); MS5611.setOversampling(OSR_ULTRA_LOW); test(); digitalWrite(LED_BUILTIN, LOW); delay(1000); digitalWrite(LED_BUILTIN, HIGH); MS5611.setOversampling(OSR_LOW); test(); digitalWrite(LED_BUILTIN, LOW); delay(1000); digitalWrite(LED_BUILTIN, HIGH); MS5611.setOversampling(OSR_STANDARD); test(); digitalWrite(LED_BUILTIN, LOW); delay(1000); digitalWrite(LED_BUILTIN, HIGH); MS5611.setOversampling(OSR_HIGH); test(); digitalWrite(LED_BUILTIN, LOW); delay(1000); digitalWrite(LED_BUILTIN, HIGH); MS5611.setOversampling(OSR_ULTRA_HIGH); test(); digitalWrite(LED_BUILTIN, LOW); delay(1000); Serial.println(); } void test() { start = micros(); int result = MS5611.read(); stop = micros(); if (result != MS5611_READ_OK) { Serial.print("Error in read: "); Serial.println(result); } else { Serial.print("T:\t"); Serial.print(MS5611.getTemperature(), 2); Serial.print("\tP:\t"); Serial.print(MS5611.getPressure(), 2); Serial.print("\tt:\t"); Serial.print(stop - start); Serial.println(); } } // -- END OF FILE --