Go Down

Topic: ISIS Proteus, Arduino et capteur d'humidité (Read 6448 times) previous topic - next topic

LesRhododendrons

Mar 16, 2017, 06:52 pm Last Edit: Mar 16, 2017, 07:04 pm by LesRhododendrons
Bonjour,
Je cherche à simuler le fonctionnement d'une carte Arduino et d'un capteur d'humidité sur le logiciel ISIS. Pour ce faire, j'ai branché un écran LCD en sortie de la carte Arduino pour voir les valeurs de SensorValue liées au capteur. Le problème c'est que, quelque soit l'humidité, SensorValue prend la valeur 0 ou 1023. Or, je souhaite restituer des degrés d'humidité, pas savoir si c'est sec ou dans l'eau. Je pense que le problème vient du branchement du capteur sur ISIS. Il s'agit d'un capteur d'humidité HCH-1000 et d'une carte Arduino Uno. Je ne maîtrise pas vraiment ISIS  :smiley-confuse: . Est-ce que quelqu'un peut m'aider ?
Voici des images du montage que j'ai réalisé et du programme (pour l'instant, je ne m'intéresse pas au relais).
Merci beaucoup d'avance !



al1fch

#1
Mar 16, 2017, 10:01 pm Last Edit: Mar 17, 2017, 10:00 am by al1fch
Bonsoir

le problème vient effectivement de ton utilisation de ce  capteur

1°) tu envoies 5V sur une de ses sorties et la masse sur l'autre.
L'entrée A0 (sensorpin) étant en permanence à 5V il est logique qu'analogReag retourne la valeur constante 1023.

2°) Trouves sur le net la notice technique du HCH-1000 pour comprendre son comportement.
un indice : le symbole ISIS de ce composant virtuel contient un condensateur.
S'il se comporte comme un condensateur variable (en fonction de l'humidité)  tu n'obtiendras jamais d'information sur l'humidité en le raccordant à une entrée analogique.

LesRhododendrons

Bonjour,

Merci pour votre réponse.
Effectivement je suis parti du principe que le fonctionnement de ce capteur est le même que celui que j'utilise en vrai avec la carte Arduino (le Capteur d'humidité Grove 101020008). Ça ne doit pas être le cas. Dans le système réel, ce capteur est branché sur un port analogique.
Toutefois, je ne comprends pas encore comment un composant branché sur des ports logiques peut donner ce type de résultat.
Connaissez-vous un capteur d'humidité présent sur ISIS qui correspondrait davantage au fonctionnement de celui que j'utilise en analogique ? Et y-a-t-il un programme particulier pour faire fonctionner un composant comprenant un condensateur ?

al1fch

#3
Mar 26, 2017, 03:30 pm Last Edit: Mar 26, 2017, 03:59 pm by al1fch
Bonjour

En faisant un tour sur la page Labcenter, à la page qui liste les composants virtuels, je ne trouve aux rubriques Temperature Control Models et Transducer Models plusieurs capteurs température+humidité fonctionnant en I2C, capteurs mesurant l'hygrométrie relative de l'air, mais aucun (si cela exsite !!!) donnant en sortie une tension image du %H

Le capteur HCH-1000 se comporte comme une petite capacité  variant  (faiblement, moins de 10%) autour de 330pF d'après la notice du fabricant Honeywell.   Cette petite variation de capacité est exploitable en insérant ce condensateur dans un oscillateur RC ou LC dont la fréquence change en fonction du % d'hygrométrie relative. ..... C'est peut être également en se bornant à observer la variation de constante de temps RC de charge ou décharge du condensateur.

Mais si votre capteur analogique Grove 101020008 (humidité du sol, pas de l'air) se comporte comme un simple pont diviseur pourquoi ne pas le remplacer par un  potentiomètre pour la simulation sous ISIS/VSM ?




LesRhododendrons

Bonsoir,

Merci beaucoup pour vos explications ! Effectivement, remplacer le capteur par un potentiomètre dans la simulation fonctionne beaucoup plus simplement.

Merci pour votre aide.

Beauclaire

Bonsoir
je rencontre des difficultés pour afficher l'humidité sur un afficheur LDC I2C grace au capteur d'humidité HCH1000 . en faite il s'agit d'un capteur capacitif etant donnée que sa sortie est une capacité j'ai jugé mieux de connecté ce capteur a un pont afin d'obtenir une tension a la sortie puis le connecté directement a la carte arduino.pour cela j'ai utilisé le NE555 mais helas rien de bon sur l'écran svp aidez moi je crois que le problème viens au niveau de la programmation 

Beauclaire

voici mon circuit

al1fch

#7
May 02, 2018, 07:56 am Last Edit: May 02, 2018, 09:03 am by al1fch
Bonjour
Quote
l s'agit d'un capteur capacitif etant donnée que sa sortie est une capacité j'ai jugé mieux de connecté ce capteur a un pont afin d'obtenir une tension a la sortie
Capteur capacitif ? OUI
Pont ? je ne le vois pas de pont, je vois un oscillateur RC à 555 dans lequel le condensateur fixe habituel a été remplacé par le HCH
-Revois tes cours/TP  sur le 555, tu verras qu'aux bornes de ce condensateur on a une tension triangulaire dont le point haut est à 2/3 de Vcc et le point bas à 1/3 de Vcc, rapport cyclique constant, fréquence définie par la formule classique du 555.  La fréquence dépend donc de la température.

Donc au mieux tu récupères l'information température par la fréquence de ce signal triangulaire.
-Au besoin pour t'en assurer mets en place un oscilloscope virtuel aux bornes du HCL

Ton code effectue-t-il la mesure de la fréquence de ce signal triangulaire ?
Non , il se contente de mesurer une tension continue, qui est içi constante :  révises les courbes  d'un 555 en mode astable, mets un votlmètre virtuel.....

Profites des instruments de mesure virtuels pour observer et comprendre le fonctionnement qui n'est sans doute pas le fonctionnement espéré.

al1fch

#8
May 02, 2018, 08:58 am Last Edit: May 02, 2018, 09:11 am by al1fch
Trouvé (moteur de recherche !!) une notice du fabricant du HCH-1000 (Honeywell) ou il montre une solution pour obtenir la température sous forme d'une tension continue . (Le montage décrit utilise 2 TLC555 : le premier en astable, le second avec le HCH en monostable, et  2 AOP)



----> Lien vers le document Honeywell

aligote

#9
May 02, 2018, 12:37 pm Last Edit: May 02, 2018, 12:41 pm by aligote
Bonjour,

Effectivement, pour moi, si on analyse le montage :
- le premier 555 monté en astable produit un signal rectangulaire de fréquence fixe (définie par R1,R2,C2)
- Le deuxième monté en monostable produit un signal rectangulaire de valeur moyenne variable  fonction de la capacité du capteur.
Il suffit alors de mesurer la valeur moyenne extraite après intégration par le circuit R5-C5 et dont la composante continue résiduelle est retirée par le réglage de VR1. (amplificateur-soustracteur bâtit autour du deuxième AOP LM2904)

Serge .D

al1fch

#10
May 02, 2018, 12:45 pm Last Edit: May 02, 2018, 12:45 pm by al1fch
La doc Honeywell propose aussi une variante avec étalonnage 2 points (obtenu en jouant sur la constante de temps de charge du capteur d'humidité)

Go Up