Hi. I bought a Bmp280 and now I'm trying to test it. For this, I'm using the I2C to communicate with an arduino UNO. And the the code I'm using is the native example in adafruit BMP280 library.
The Problem is the Reading, that's not working very well. In below an Picture of the Serial Monitor.
Is it broke?
I don't put the alimentation in 5V, I'm using the 3.3V and I don't know what I have to do more...
Can Someone Help me?
ps: Sorry for the quality's image...
If Image don't upload:
Temperature: 187.39ºC
Pressure: 221337 Pa
Latitude : -7106,77 m
I believe the 3Vo pin on the Adafruit BMP280 is an output pin. I'm not sure that you should power the device through that pin.
According to the documentation you power the board with the same voltage as your microprocessor, via the VIN pin.
Don
Hi. Thank You for your Help.
My sensor don't have this pin (3Vo)
My Sensor is diferent, it have a purple color, which pins is:
1 - VCC (3,3V)
2 - GND
3 - SCL
4 - SDA
5 - CSB
6 - SDO
I tried test with the two communicate modes: I2C e SPI, and they have the same result. However, if I remove the Vcc pin, the Reading dont't change, but if I put again, the values change, wrong yet, but change.
I'm thinking the Problem is on the sensor. It's Possible? It's possible comunicate the store to devolution or to swap it.
Have you specified a compatible I2C address?
The default address for the Adafruit sensor modules (and library) is 0x77 while the default address for many of the other modules is 0x76.
If you really want meaningful help you might consider posting a copy of your program and a photograph of your setup.
Don
Here is an I2C scanner if you need to confirm the I2C address and see if the BMP is communicating on the bus.
// I2C scanner by Nick Gammon. Thanks Nick.
#include <Wire.h>
void setup() {
Serial.begin (115200); //***** make sure serial monitor baud matches *****
// Leonardo: wait for serial port to connect
while (!Serial)
{
}
Serial.println ();
Serial.println ("I2C scanner. Scanning ...");
byte count = 0;
Wire.begin();
for (byte i = 1; i < 120; i++)
{
Wire.beginTransmission (i);
if (Wire.endTransmission () == 0)
{
Serial.print ("Found address: ");
Serial.print (i, DEC);
Serial.print (" (0x");
Serial.print (i, HEX);
Serial.println (")");
count++;
delay (1); // maybe unneeded?
} // end of good response
} // end of for loop
Serial.println ("Done.");
Serial.print ("Found ");
Serial.print (count, DEC);
Serial.println (" device(s).");
} // end of setup
void loop() {}
Please provide us the page you bought the sensor. I need to see exactly what BMP280 board you are using.
If the sensor is without board:
For the I2C communication with BMP280:
-
CSB pin should be pulled high (VDDIO - CSB already has an integrated pull-up resistor) all the time, even during power-on-reset. Warning: "If CSB is pulled down, the SPI interface is activated. After CSB has been pulled down once (regardless of whether any clock cycle occurred), the I²C interface is disabled until the next power-on-reset". Do not connect with VDD Bed 3.3V - explained below.
-
SDI must be externally connected to VDDIO high via a pull-up resistor. I would suggest you to connect directly to VDD 3.3V, to avoid noise and to avoid setting it low(important for the CSB pin, which controls the interfaces I2C/SPI). But in this case, page 11 of the datasheet, says "Warning. Holding any interface pin (SDI, SDO, SCK or CSB) at a logical high level when VDDIO is switched off can permanently damage the device due caused by excessive current flow through the ESD protection diodes. ". So, keep with VDDIO.
-
Check if the board has two capacitors of 100nF. Attached some important information.
It might be that the board you have is not doing those necessary connections.
Please, try the approaches cited above and give me feedback. I will be waiting 
Thanks & Regards
Did you use level shifters on the I2C lines? If not, the sensor may by now very well be broken.
Hi. I make a video and send to the market that I had bought. The technican said that it was a manufacturing defect of the sensor. So, the market send me a new sensor, which read correctly.
I don't know what is wrong in that sensor, but it was the resolution.
Thank You for everyone who try help me.
In the next Topic I will expose my question with images and best descriptions.