#include <Wire.h>
#include <Adafruit_ADS1X15.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP280.h>
// Crear objetos para los sensores
Adafruit_ADS1115 ads;
Adafruit_BMP280 bmp;
void setup() {
Serial.begin(9600);
Serial.println("Iniciando sensores...");
// Inicializar ADS1115
if (!ads.begin()) {
Serial.println("¡Error al inicializar ADS1115!");
while (1); // Detener si falla
}
Serial.println("ADS1115 inicializado.");
// Inicializar BMP280
if (!bmp.begin(0x76)) { // Dirección I2C típica: 0x76 o 0x77
Serial.println("¡Error al inicializar BMP280!");
while (1); // Detener si falla
}
Serial.println("BMP280 inicializado.");
// Configuración del BMP280
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,
Adafruit_BMP280::SAMPLING_X2, // Oversampling de temperatura
Adafruit_BMP280::SAMPLING_X16, // Oversampling de presión
Adafruit_BMP280::FILTER_X16,
Adafruit_BMP280::STANDBY_MS_500);
}
void loop() {
// Leer valor del potenciómetro en el canal 0 del ADS1115
int16_t adc0 = ads.readADC_SingleEnded(0);
float voltage = adc0 * 0.125; // 0.125 mV/bit para rango ±4.096V
// Leer temperatura y presión del BMP280
float temperature = bmp.readTemperature(); // En grados Celsius
float pressure = bmp.readPressure() / 100.0F; // En hPa
// Mostrar resultados
Serial.println("------ Lecturas ------");
Serial.print("Potenciómetro: ");
Serial.print(adc0);
Serial.print(" (");
Serial.print(voltage);
Serial.println(" mV)");
Serial.print("Temperatura: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Presión: ");
Serial.print(pressure);
Serial.println(" hPa");
Serial.println("----------------------");
delay(1000); // Esperar 1 segundo entre lecturas
}