Conexión PC-Arduino por USB

Conectando el sensor BMP280 con Arduino Nano

Este sensor proporciona mediciones de temperatura, presión y humedad. La placa del sensor tiene unas medidas de 15mm x 10mm. El modelo utilizado trabaja con señales y alimentación de 3.3V (existen modelos similares que incorporan regulador y admitirían alimentarles con 5V).

Se utiliza la conexión con protocolo I2C. Se utiliza un "Level Converter MH" de 4 conexiones para convertir el voltaje de las señales de 5V del Arduino Nano a las señales de 3.3V del BMP280.

Cableado entre el Arduino Nano, el conversor de nivéles lógicos y el sensor BMP280

Arduino NanoConversor voltajesSensor BMP280
GND GND GND
5V HV -
3V LV VCC
A5 HV1 -
A4 HV2 -
- LV1 SCL
- LV2 SDA

Ejemplo de código para probar el sensor BMP280 conectado a un Arduino Nano y a un "Level Converter MH" de 4 señales...

/*
	Capitulo 36 de Arduino desde cero en Español.
	Programa que muestra en monitor serie los valores de temperatura, presion
	atmosferica y altitud relativa del sensor BMP280 conectado mediante bus I2C.

	Autor: bitwiseAr  

*/

#include <Wire.h>		// incluye libreria de bus I2C
#include <Adafruit_Sensor.h>	// incluye librerias para sensor BMP280
#include <Adafruit_BMP280.h>

Adafruit_BMP280 bmp;		// crea objeto con nombre bmp

float TEMPERATURA;		// variable para almacenar valor de temperatura
float PRESION, P0;		// variables para almacenar valor de presion atmosferica
				// y presion actual como referencia para altitud

void setup() {
  Serial.begin(9600);				// inicializa comunicacion serie a 9600 bps
  Serial.println("Iniciando:");			// texto de inicio
  if ( !bmp.begin() ) {				// si falla la comunicacion con el sensor mostrar
    Serial.println("BMP280 no encontrado !");	// texto y detener flujo del programa
    while (1);					// mediante bucle infinito
  }
  P0 = bmp.readPressure()/100;			// almacena en P0 el valor actual de presion
}						// en hectopascales para calculo de altitud relativa

void loop() {
  TEMPERATURA = bmp.readTemperature();		// almacena en variable el valor de temperatura
  PRESION = bmp.readPressure()/100;		// almacena en variable el valor de presion divido
						// por 100 para covertirlo a hectopascales
  Serial.print("Temperatura: ");		// muestra texto
  Serial.print(TEMPERATURA);			// muestra valor de la variable
  Serial.print(" C ");				// muestra letra C indicando grados centigrados
    
  Serial.print("Presion: ");			// muestra texto
  Serial.print(PRESION);			// muestra valor de la variable
  Serial.println(" hPa");			// muestra texto hPa indicando hectopascales

  Serial.print("Altitud aprox: ");		// muestra texto
  Serial.print(bmp.readAltitude(P0));		// muestra valor de altitud con referencia a P0
  Serial.println(" m");				// muestra letra m indicando metros

  delay(5000);					// demora de 5 segundos entre lecturas
}

Pulsa aquí para descargar el código "arduino-bmp280.ino"

Este código se ha descargado de la página web https://github.com/bitwiseAr/Curso-Arduino-desde-cero/tree/master/Capitulo36 en el que también se ofrecen vídeos mostrando su funcionamiento: https://www.youtube.com/watch?v=LtZ_b2WVMrU y de otros temas que forman el curso "Arduino desde cero en Español".

En el "Monitor Serie" del Arduino IDE se pueden ver los valores otenidos de temperatura, presión atmosférica, altitud y humedad...

Ver información del sensor BMP280