Módulo bmp280 con fallos por culpa del software

Hola! Tengo conectado un modulo bmp280 a un arduino uno y con este codigo:

#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
#include <OneWire.h>
#include <DallasTemperature.h>
#include <SoftwareSerial.h> 

#define ONE_WIRE_BUS 2
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
Adafruit_BMP280 bmp;
#define LED_PIN 3

SoftwareSerial bluetooth(10, 11);  

void setup() {
  Serial.begin(9600);
  bluetooth.begin(9600);  
  pinMode(LED_PIN, OUTPUT);
  sensors.begin();
  if (!bmp.begin()) {
    Serial.println(F("BMP280 initialization failed. Please check your connections."));
    while (1);
  }
}

void loop() {
  sensors.requestTemperatures();
  float temperatura = sensors.getTempCByIndex(0);
  float presion = bmp.readPressure() / 100.0F;

  Serial.print(F("Temperatura:"));
  Serial.print(temperatura);
  Serial.print(F("ºC\tPresión:"));
  Serial.print(presion);
  Serial.println(F("hPa"));

 
  bluetooth.print(F("T:"));
  bluetooth.print(temperatura);
  bluetooth.print(F("C P:"));
  bluetooth.print(presion);
  bluetooth.println(F("hPa"));

  digitalWrite(LED_PIN, HIGH);
  delay(100);
  digitalWrite(LED_PIN, LOW);
  delay(1000);
}

pero en el serial monitor pone el mensaje de: BMP280 initialization failed. Please check your connections.
Tengo todo bien conectado, con un cable rojo tengo conectado el vcc del sensor al 3.3 V del arduino, con un cable negro el gnd del sensor al gnd del arduino, con uno blanco el scl del sensor al a5 del arduino y con un cable azul el sda al a4 del arduino.
Necesito ayuda, ¿qué falla? lo estoy editando en el editor web de arduino :o :o :o

Hola, el sensor BMP280 se comunica con arduino por un solo hilo ( one wire), acertadamente has incluído la librería para hacer esta tarea, pero luego según comentas ( y estaría muy bueno si pudieras incluir algún circuito hecho a mano de cómo lo has conectado al arduino ), leo que intentas usar la interfaz i2c ( A4 y A5 del arduino).
Esto según mi criterio, ocasiona que el sensor no pueda comunicarse con arduino y queda en el bucle while (!bmp.begin) y da el mensaje que ves en el serial.
Es más, nunca ingresa al loop ().
Saludos.

Aca tienes como se conecta.

Si esta bien conectado entonces tu sensor esta fallado o tal vez pero es raro, esté en una dirección I2C que requiera inicialización especial.
Usa el I2CScanner para asegurarte que responde.
En el IDE Ejemplos I2C esta el I2CScanner.

Moderador
Ahora modifica el título.
Coloca un titulo que explique lo que te ocurre pero esto "Proyecto que no me funciona AYUDA" no dice nada. Porque eslo que le ocurre a todos en este foro.
Además de que AYUDA es lo que se brinda en el foro.
Lee las normas en especial el punto 5 sobre títulos.

@jarillero El BMP280 tiene comunicación I2C y/o SPI de 3 ó 4 hilos, no es one wire.

@juliafdezmargusino ¿Usaste adaptadores de nivel lógico (level shifters) para conectar el BMP?
Si no lo hiciste es muy probable que ese sea el problema, incluso tal vez lo malograste.

Ese código es para usar el BMP280 junto con el DS18B20, por eso usa las librerías OneWire y DallasTemperature.

Tu descripción se quedó corta o el código no es correcto para tu hardware.

holaa si utilizo un level shifter debería funcionar?

Tienes razón Máximo, es que miré el código y me llevó al código que se usa para el DS18B20, y de ahí mi error. Pido disculpas.

Si ya no lo arruinaste, sí.

Moderador:
Te pedi algo en el post#3 y lo ignoraste
Te acabo de enviar un privado.
Presta atención y sigue las instrucciones que te hacen los moderadores.

Hola! cambié el sensor bmp280 por si acaso, y conecté el level shifter al arduino y al sensor de manera que quedan conectados :

  • el pin SDA (datos) del Arduino Uno al pin LV1 (lado bajo voltaje 1) del level shifter y el pin HV1 (lado alto voltaje 1) del level shifter al pin SDA del módulo BMP280.
  • el pin SCL (reloj) del Arduino Uno al pin LV2 (lado bajo voltaje 2) del level shifter y el pin HV2 (lado alto voltaje 2) del level shifter al pin SCL del módulo BMP280.
  • el pin GND (tierra) del Arduino Uno al pin GND del level shifter y al pin GND del módulo BMP280.
    pero aún así, con el mismo código que proporcioné anteriormente, me sigue saliendo el mensaje de: bmp280 initialization failed. Please check your conections

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.