Ciao a tutti,
ho comprato un paio di questi sensori di pressione. Sono molto facili da montare.
Ho utilizzato la libreria di adafruitBMP280 e prima ho utilizzato I2CSCANNER per vedere su quale indirizzo era stato settato il sensore.
Infatti era messo sullo 0x76.
Ho modificato la libreria mettendo al posto di 0x77 il 0x76.
I collegamenti sono:
VIN -> 3,3 volt
GND->GND
A5->SCL
A4-SDA
Ho testato anche il voltaggio ed è perfetto.
D'altra parte se fossero non corretti il i2Cscanner non avrebbe rivelato l'indirizzo giusto.
Uso una ARDUINO NANO.
Ebbene il programma di esempio BMP280_test di adafruit continua a dare il messaggio di errore:
Could not find a valid BMP280 sensor, check wiring!
Sinceramente non so più dove sbattere la testa.
Ho guardato decine di post e tutti cambiando indirizzo sono riusciti a farlo andare.
Ho provato anche a cambiare la chiamata alla BEGIN mettendo l'indirizzo da li ma niente da fare.
Questo il codice:
/***************************************************************************
This is a library for the BMP280 humidity, temperature & pressure sensor
Designed specifically to work with the Adafruit BMEP280 Breakout
----> http://www.adafruit.com/products/2651
These sensors use I2C or SPI to communicate, 2 or 4 pins are required
to interface.
Adafruit invests time and resources providing this open source code,
please support Adafruit andopen-source hardware by purchasing products
from Adafruit!
Written by Limor Fried & Kevin Townsend for Adafruit Industries.
BSD license, all text above must be included in any redistribution
***************************************************************************/
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#define BMP_SCK 13
#define BMP_MISO 12
#define BMP_MOSI 11
#define BMP_CS 10
Adafruit_BMP280 bme; // I2C
//Adafruit_BMP280 bme(BMP_CS); // hardware SPI
//Adafruit_BMP280 bme(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);
void setup() {
Serial.begin(9600);
Serial.println(F("BMP280 test"));
if (!bme.begin(0x76)) {
Serial.println("Could not find a valid BMP280 sensor, check wiring!");
while (1);
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bme.readPressure());
Serial.println(" Pa");
Serial.print("Approx altitude = ");
Serial.print(bme.readAltitude(1013.25)); // this should be adjusted to your local forcase
Serial.println(" m");
Serial.println();
delay(2000);
}
In allegato al foto del progetto.
Qualcuno ha qualche idea ?
Grazie in anticipo
Ciao