Yo estoy intentando conectar un sensor AHT10, lo he conectado al gpio 6 y 7 pero aún así no me funciona:
#include <Wire.h>
#include <Adafruit_AHTX0.h>
#include “HT_SSD1306Wire.h”
// Configuración de la pantalla OLED en el bus principal I²C
static SSD1306Wire display(0x3C, 500000, SDA_OLED, SCL_OLED, GEOMETRY_128_64, RST_OLED);
uint8_t sda_aht10 = 6; // SDA para AHT10
uint8_t scl_aht10 = 7; // SCL para AHT10
float decimal = 11.22;
// Instancia del sensor AHT10
Adafruit_AHTX0 aht10;
void VextON(void) {
pinMode(Vext, OUTPUT);
digitalWrite(Vext, LOW);
}
void VextOFF(void) {
pinMode(Vext, OUTPUT);
digitalWrite(Vext, HIGH);
}
void setup() {
Serial.begin(115200);
VextON();
delay(100);
// Inicializar el bus I²C principal para la OLED
Wire.begin();
// Inicializar el segundo bus I²C en GPIO6 (SDA) y GPIO7 (SCL) para AHT10 usando Wire1
Wire1.begin(sda_aht10, scl_aht10, 400000);
// Inicializar pantalla OLED
display.init();
display.clear();
display.setFont(ArialMT_Plain_10);
display.display();
// Inicializar el sensor AHT10 en el bus I²C secundario
if (!aht10.begin(&Wire1)) {
Serial.println(F("AHT10 not connected or failed to load calibration coefficient"));
while (1) { delay(5000); } // Bucle infinito si falla la conexión
}
Serial.println(F(“AHT10 OK”));
}
void loop() {
Serial.println(F(“Reading AHT10 sensor…”));
display.drawString(0, 0, “Decimal:”);
display.drawString(50, 0, String(decimal, 2));
sensors_event_t humidity, temp;
aht10.getEvent(&humidity, &temp);
Serial.print(F("Temperature: "));
Serial.print(temp.temperature);
Serial.println(F(" °C"));
Serial.print(F("Humidity…: "));
Serial.print(humidity.relative_humidity);
Serial.println(F(" %"));
display.clear();
display.setTextAlignment(TEXT_ALIGN_LEFT);
display.drawString(0, 0, “Temperature:”);
display.drawString(50, 0, String(temp.temperature, 2));
display.drawString(0, 10, “Humidity:”);
display.drawString(50, 10, String(humidity.relative_humidity, 2));
display.display();
delay(1000);
}
Biblioteca del AHT10 de adafruit: https://github.com/adafruit/Adafruit_AHTX0/tree/master