capteur Hum+Temp Am2315

Bonjour,

Je veux tester mon capteur Am2315 (Aosong) avec le programme :
exemple: am2315 test
Mais le capteur n'est pas reconnu. par le programme test.
J'ai fait:
Installé Library manager Adafruit Am2315 vers. 1.0.1
arduino uno :
pins comme indiqués SDA=A4 SDL=A5

Y-a-t-il quelque chose de travers?
Merci de voe réponses.
Cdt
Georges

hello :slight_smile:
if (! am2315.begin()) {
Serial.println("Sensor not found, check wiring & pullups!");
while (1);

edit:
Le raccordement de cette sonde sur une carte à microcontrôleur Arduino ou compatible nécessite deux résistances de 10 kohms à raccorder sur les sorties SDA et SCL.
http://www.gotronic.fr/art-sonde-de-t-et-d-humidite-i2c-am2315-20691.htm

Merci de ta réponse dfgh, mais après toutes les vérifications je reçois le message:
sensor not found, check wire...
Ce que j'ai fait:
-Vérification du cablage.
-Mis les 2 x10k en pullup - +5V et SDA(jaune) et +5V et SCL(blanc)
-Branché sur pin 4 et 5

J'ai fait la manip sur win 7 et win 10 avec IDE 1.6.5
Mais rien n'y fait.
Ma librarie est: Adafruit_AM2315-master.zip.
J'ai acheté le capteur am2315 en Chine (aliexpress- aosong)

Je ne vois que 2 possibilitées:
L'erreur, exceptée moi,

  • du produit lui-même
  • ou de la librarie
  • de win10

Mystère.....!!

// Connect RED of the AM2315 sensor to 5.0V
// Connect BLACK to Ground
// Connect WHITE to i2c clock - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 5
// Connect YELLOW to i2c data - on '168/'328 Arduino Uno/Duemilanove/etc thats Analog 4

tu as bien réglé ton moniteur en 9600bauds? oui puisque tu reçois le message d'erreur

tu alimentes bien le capteur en 5V ?

peux tu charger ce prg et regarder sur ton moniteur s'il voit le périphérique i2c et à quelle adresse?
0xB8? ou 0x5C?
moniteur en 9600bauds

(merci à FDN pour ce prg)

// Wire Scanner
//
//
// Demonstrates the use of the Wire library
// Ping all valid adresses on the I²C bus
// and get the answer to see if there is a slave
// Print an 8 x 16 array with the results

// Created by fdufnews 2012 december 14th

// This example code is in the public domain.


#include <Wire.h>

void setup()
{
 Wire.begin();         // join i2c bus (address optional for master)
 Serial.begin(9600);   // start serial for output
 Serial.println();     // Print a banner
 Serial.println();
 Serial.println("I2C slave scanner");
 Serial.println("   reserved adress");
 Serial.println(".  no slave detected");
 Serial.println("X  slave detected");
 Serial.println();
 Serial.println();
 int result;
 Serial.println("   0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F");
 // Scan only valid addresses (8 to 0x7B)
 // 0-7 and 7C-7F are reserved ones
 unsigned char devices=0;                  // holds how many devices found
 for (unsigned char ad=0; ad<0x7C;ad++){
   if(ad%16==0){                           // If at start of a row
     Serial.print(ad>>4,HEX);              // Display high order bit address
     Serial.print(" ");
   }
   if (ad>7){                              // skip address from 0 to 7
     Wire.beginTransmission(ad);           // start transmission
     result = Wire.endTransmission();      // end transmission and store answer
     if (!result) devices++;               // add a device to the count if ACK
     Serial.print(" ");
     Serial.print(result==0?"X ":". ");    // If ACK there is a guy at this address
   }
   else{
     Serial.print("   ");                  // Sorry nobody here
   }
   if(ad%16==15) Serial.println();         // end of the row add a new line
 }
 Serial.println();
 Serial.println();
 Serial.println();
 Serial.print(devices, DEC);
 Serial.print(" device");
 Serial.print(devices>1?"s":"");
 Serial.println(" found on the bus");
}

void loop()
{

}

non, ça ne donnera rien du coté de l'adresse
en fouillant sur la data sheet j'ai vu que l'adresse du composant est 0xB8
en fouillant dans le .h (ou le .cpp) l'adresse est 0x5C

donc surprise.........

mais en approfondissant la lecture de la data sheet:
le maitre envoie le 1er octet à l'esclave. cet octet correspond:
à l'adresse de l'esclave pour les bits de 1 à 7
et à R/W pour le bit 0 ( lecture ou écriture)

ce qui revient à dire que l'adresse est codée sur 7 bits et non 8

et 0xB8 en 7bits devient 0x5C

fausse piste...................

Une raison de plus pour dire qu'un analyseur logique c'est vraiment utile.

Merci pour tes "recherches".
J'ai connecté tous les pins comme indiqué plus haut mais rien n'y fait.

J'ai remarqué tout autre chose.
J'ai installé IDE 1.6.5 sur Win 10 mais lorsque j'agrandis une fenêtre d'un sketch les bords deviennent alors noir et le la souris ne réponds plus.

Je vais donc d'abord désinstaller IDE1.6.5 et réinstaller 1.6.6
Quelles sont les précautions à prendre et quels sont tous les dossiers à supprimer (bon nettoyage!) ??
Sont-ce les bonnes adresses à supprimer ? Avant que je fasses l'idi.....!

c:\Program Files (x86)\Arduino
fichiers cachés dans: c:\users...\AppData\Roaming\Arduino15

Bonjour,

Quelles sont les précautions à prendre et quels sont tous les dossiers à supprimer (bon nettoyage!) ??

Les deux que tu cites :

c:\Program Files (x86)\Arduino\
fichiers cachés dans: c:\users\...\AppData\Roaming\Arduino15

Plus éventuellement :

C:\Users\ [USER] \Documents\Arduino\libraries

Seulement si tu as ajouté des librairies perso, mais tu peux les conserver tu les retrouveras dans 1.6.6...

Pour l'instant je n'en ai pas trouvé ailleurs :wink:

Sur Windows, comme d'hab, il y en a un peu partout dans le registre...
Même le désinstallateur Windows n'y fait pas le ménage... au moins en W7 !
Éventuellement de nouvelles entrées seront créées pour la 1.6.6. les autres ne seront pas utilisées, ce n'est pas la mort du petit cheval :slight_smile:

bonjour,

Merci les amis pour vos conseils.

J'ai réinstallé IDE 1.6.7
Je l'ai testé avec un sketch avec :
1x DHT 11
1x DHT 22
1x DHT 21

Et il fonctionne parfaitement!

J'ai testé le Am2315 (suivant exempe adafruit)comme décrit ,ça ne fonctionne pas !!
j'ai installé un autre capteur Am2315 (même ref) et ça ne fonctionne pas mieux.
Le capteur n'est pas reconnu!!!
C'est un capteur chinois, le produit d'adafruit serait-il différent?
La librarie d'adafruit ne fonctionnerait-elle seulement avec leur produit???

Je m'interroge!

Les dht 11, 21, 22 ne sont pas I2C.
Ils sont " 1fil propriétaire Aosong".
Attention ce protocole n'as rien à voir avec le bus Dallas.

Le produit que tu testes est I2C, la comparaison n'est pas possible.
As tu un autre module I2C comme une RTC à tester pour d'assurer que le câblage ou le programme est bon ?

Édit il existe un autre produit Aosong qui est bi-mode : dht22 et I2C.
La consultation des bibliothèques dispos peut être utile.

Je n'ai pas sa référence sous la main, si tu es pressé on le trouve sur EBay : boîtier noir et référence en 23xx

EDIT : c'est le AM2320 (ou AM2321 seul le connecteur change)

Merci 68tjs et les autres...

En cours de route ça fonctionne. et oui.
J'avais écris "excepté moi" et ben oui c'était moi.
Un contact "mal serti et enfoncé.." sur le connnecteur Am2315
Un faux contact d'une des pullups (mal nettoyé les bouts...) je n'avais plus de papier de verre.
Bref le débutant, mais je le sais...un peu paresseux.
Mais seul le résultat compte...

Merci encore de votre aide et bonne année.
Georges

J'ai toujours constaté que l'interface chaise/clavier est redoutable :grin:
Tant mieux pour toi si cela fonctionne.