Auslesen von zwei AHT10 Sensoren

Der AHT10 Sensor kann zwei I2C Adressen verwenden 0x38 und 0x39.
Einzeln funktionieren sie prima. Wie muß ich den Test-Code umgestalten das ich beide
eAHT10Address_Low
eAHT10Address_High
angezeigt bekomme.

[code]
#include <Wire.h>
#include <Thinary_AHT10.h>

AHT10Class AHT10;

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Wire.begin();
  if(AHT10.begin(eAHT10Address_Low))
    Serial.println("Init AHT10 Sucess.");
  else
    Serial.println("Init AHT10 Failure.");
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.println("//Thinary Eletronic AHT10 Module//");
  Serial.println("https://thinaryelectronic.aliexpress.com");
  Serial.println(String("")+"Humidity(%RH):\t\t"+AHT10.GetHumidity()+"%");
  Serial.println(String("")+"Temperature(℃):\t"+AHT10.GetTemperature()+"℃");
  Serial.println(String("")+"Dewpoint(℃):\t\t"+AHT10.GetDewPoint()+"℃");
  delay(500);
}
[/code]

Grüße

Hallo,

Vielleicht habe ich deine Frage nicht richtig verstanden. Möchtest Du herausfinden ob der AHT10 an 0x38 oder an 0x39 hängt?
Normalerweise legt der Entwickler der Hardware die entsprechende I2C Adresse fix ab. Die Möglichkeit die Adresse auf 0x38 bzw 0x39 zu ändern hat den Hintergrund zwei AHT10 an deinem Arduino anzuschließen.

Gruß Mascho11

Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden.
Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.

Die praktisch auf jeden Sensor anwendbare Strategie so etwas herauszufinden ist:

mit der Sensortyp-Bezeichung und dem Wort "datasheet" googeln.

Wird in den meisten Fällen direkt zum Datenblatt führen.
In diesem Fall habe ich es nicht auf Anhieb gefunden aber wqenigstens diese Seite da

Die hat ein Bild auf dem man sieht es gibt auf der Platine eine Lötstelle mit der die Adresse eingestellt wird.

Jetzt müsstest du mal von deinem AHT-Sensor ein Foto posten wie die Platine bei dir aussieht.

Andere Möglichkeit ist ein 8-Kanal I2C-Multiplexer dann kann man die Adresse bei beiden auf der gleichen stehen haben. Die Anwahl findet ja dann durch den I2C-Multiplexer statt.
https://www.komputer.de/zen/index.php?main_page=product_info&cPath=56_72&products_id=545&zenid=3fa029hnra6bcg4ua25phb7qf0
vgs

Hallo,

ich gehe mal davon aus das die beide Adressen eAHT10Address_High, und eAHT10Address_Low irgendwo in der Lib definiert sind. Du benötigst zwei Objekte von dem Sensor. Die bekommen je einen Namen. Anschließend startest Du beide mit .begin(Adresse). Ab dann kannst Du auf beide über ihren Objektnamen zugreifen.

AHT10Class AHT1;  // erstes Objekt
AHT10Class AHT2; // zweites Objekt

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  Wire.begin();
  if(AHT1.begin(eAHT10Address_Low))
    Serial.println("Init AHT1 Sucess.");
  else
    Serial.println("Init AHT1 Failure.");
}
if(AHT2.begin(eAHT10Address_High))
    Serial.println("Init AHT2 Sucess.");
  else
    Serial.println("Init AHT2 Failure.");
}


Bei mir ginge es nicht, habe auch so gemacht. In der Lib sind beide definiert außer dem habe die nicht. Schau mal in die ,h jedoch habe mit Adsfruit AHTxx probiert

Ich habe zwar selbst keine Erfahrung mit diesem Sensor, bin aber über folgende Problematik bei der Suche nach Infos zu diesem Sensor gestolpert:

Scheint eine Eigenart von diesem Sensor zu sein, daß ein einzelner davon seinen eigenen I2C-Bus benötigt und kein weiteres Gerät daran zulässt...

Evtl. wäre dafür Software-i2C oder ein i2C Multiplexer eine Lösung ?

Edit: Anscheinend ist diese Info wohl falsch! :see_no_evil:

Ganz lieben Dank an Alle,
hallo Rentner post#5 hat mein Problem behoben :+1:, beide Sensoren werden erkannt und liefern die entsprechenden Werte aus.

Grüße Ralf

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