Si, ma a parte il fatto che uno dei due non risponde non riesco a comunicarci..
Ricapitolo:
Il barometro MS5611 che sta al 0x77 mi sa che mi da dei dati un po' incoerenti:
#include <Wire.h>
//#include <DebugUtils.h>
#include <MS561101BA.h>
MS561101BA baro = MS561101BA();
void setup() {
Wire.begin();
Serial.begin(115200);
delay(1000);
// Suppose that the CSB pin is connected to GND.
// You'll have to check this on your breakout schematics
baro.init(MS561101BA_ADDR_CSB_LOW);
}
void loop() {
float temperature = NULL, pression = NULL;
Serial.print("temp: ");
while(temperature == NULL) {
temperature = baro.getTemperature(MS561101BA_OSR_4096);
}
Serial.print(temperature);
Serial.print(" degC pres: ");
while(pression == NULL) {
pression = baro.getPressure(MS561101BA_OSR_4096);
//Serial.println(baro.lastTempConv);
//Serial.println(baro.lastPresConv);
//Serial.println("aaa");
}
Serial.print(pression);
Serial.println(" mbar");
}
Posizionandolo sul davanzale della finestra dopo un po' (almeno 10 minuti) la temperatura non rimane stabile.. Ora tende ad abbassare, ora tende ad alzare.. Aveva raggiunto i 7° ma ora sta a 9. Mentre la pressione fa la stessa cosa tra i 1660 e 1679 mbar
A torino dovrei avere 5.4°C e 988hPa
La cosa strana è che comunque la differenza di temperatura entrandolo e uscendolo la rileva, quindi comunque funziona..
L'MPU6050 gyro+acc invece non da niente:
#include "Wire.h"
// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include "I2Cdev.h"
#include "MPU6050.h"
// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for InvenSense evaluation board)
// AD0 high = 0x69
MPU6050 accelgyro;
int16_t ax, ay, az;
int16_t gx, gy, gz;
#define LED_PIN 13
bool blinkState = false;
void setup() {
// join I2C bus (I2Cdev library doesn't do this automatically)
Wire.begin();
// initialize serial communication
// (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
// it's really up to you depending on your project)
Serial.begin(115200);
// initialize device
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
// verify connection
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
// configure Arduino LED for
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// read raw accel/gyro measurements from device
accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
// these methods (and a few others) are also available
//accelgyro.getAcceleration(&ax, &ay, &az);
//accelgyro.getRotation(&gx, &gy, &gz);
// display tab-separated accel/gyro x/y/z values
Serial.print("a/g:\t");
Serial.print(ax); Serial.print("\t");
Serial.print(ay); Serial.print("\t");
Serial.print(az); Serial.print("\t");
Serial.print(gx); Serial.print("\t");
Serial.print(gy); Serial.print("\t");
Serial.println(gz);
// blink LED to indicate activity
blinkState = !blinkState;
digitalWrite(LED_PIN, blinkState);
}
a/g: 0 0 0 0 0 0