Différence entre TM7710 et TM7711

Merci d’avoir répondu
justement auparavant on m’a proposer sur ce forum d’utiliser le HX711 pour pouvoir lire les mesures d’un pyranomètre, mais le problème que j’ai rencontré avec le HX711 est que les valeurs qui m’affichent sur le moniteur série sont sous forme d’un code hexadécimal que je dois convertir en tension, mais je n’ai pas compris comment le faire.
Du coup j’ai chercher encore sur le net et j’ai trouvé quelqu’un qui a réaliser le même branchement, mais il a utilisé l’ADC TM7710.

les données extraites d’un HX711 ou d’un TM7711 sont vraisemblalement sous la même forme, avec un calcul identique pour obtenir une valeur de tension

justement j’ai déja branché le HX711 avec le pyranomètre pour lire les mesures en utilisant le code suivant:

#include "HX711.h"

// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;

HX711 scale;

void setup() {
  Serial.begin(57600);
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
}

void loop() {

  if (scale.is_ready()) {
    long reading = scale.read();
    Serial.print("HX711 reading: ");
    Serial.println(reading);
  } else {
    Serial.println("HX711 not found.");
  }

  delay(1000);
  
}

les valeurs qui m’affichent sur le moniteur série sont sous forme d’un code hexadécimal que je dois convertir en tension, pour ensuite diviser celle-ci sur la sensibilité du pyranomètre pour avoir la valeur du rayonnement solaire, mais je n’ai pas trouver de formule qui me permet de faire la conversion du code que j’ai obtenu en volte.

Bonjour
C’est quoi exactement le “pyranometre” ?
J’ai pas mal joué avec le HX711 hors jauge de contrainte

J’avais expérimenté avec les diodes en source de courant
au passage regardez çà

Bonjour Artouste

Trace d’un échange sur ce forum : https://forum.arduino.cc/t/branchement-dun-pyranometre-ms-802/640400/3

le pyranometre MS-802 est décrit içi : https://eko-eu.com/products/solar-energy/pyranometers/ms-802-pyranometer

le pyranométre se comporte , pour le HX711 , a peu près comme un thermocouple ( et pour un pyranometre on n’a pas à faire de compensation de soudure froide, cest plus simple)

Mes essais d’exploitation d’un thermocouple avec un HX711 donnaient un résultat acceptable.

L’essentiel est de faire en sorte que les tensions sur les deux entrées analogiques aient une valeur en mode commun proche de VSS/2

C’est quand même dommage qu’ @athcerr butte sur l’exploitation de la valeur fournie par le HX711 !

Oui , le HX711 (ou TM7711 dont je ne connaissais pas l’existence et que je vais commander qq ex)
est très versatile , je l’ai pas mal “torturé” dans différents domaines .

J’utilise (si c’est vraiment nécessaire) une méthode pas dés plus académique mis trés efficace pour drastiquement améliorer ses perfs au niveau bruit, je l’alimente avec une ref de tension MCP1541… 4.096V)

évoqué là

le pyranomètre c’est un capteur de rayonnement solaire, le type que j’utilise a une sensibilité de 7 microVOLT / watt

la trace de cet échange c’était toujours moi, je me suis procurer le HX711 que vous m’aviez proposé je l’ai brancher comme le montre les figures en fichiers attachées (le + et le - du pyranomètre sont branchés aux broches A+ et A- du HX711 respectivement) et j’ai utilisé le code arduino fournie sur la librairie HX711

#include "HX711.h"

// HX711 circuit wiring
const int LOADCELL_DOUT_PIN = 2;
const int LOADCELL_SCK_PIN = 3;

HX711 scale;

void setup() {
  Serial.begin(57600);
  scale.begin(LOADCELL_DOUT_PIN, LOADCELL_SCK_PIN);
}

void loop() {

  if (scale.is_ready()) {
    long reading = scale.read();
    Serial.print("HX711 reading: ");
    Serial.println(reading);
  } else {
    Serial.println("HX711 not found.");
  }

  delay(30000);
  
}

et j’ai aboutit a ce résultat :

HX711 reading: 12157
HX711 reading: 12243
HX711 reading: 12119
HX711 reading: 11857
HX711 reading: 11801
HX711 reading: 11840
HX711 reading: 11782
HX711 reading: 11768
HX711 reading: 11906
HX711 reading: 11576
HX711 reading: 12080
HX711 reading: 11905
HX711 reading: 8738
HX711 reading: 8618
HX711 reading: 8581
HX711 reading: 8672
HX711 reading: 8624
HX711 reading: 8529
HX711 reading: 8664
HX711 reading: 8643
HX711 reading: 8630
HX711 reading: 8464
HX711 reading: 8402
HX711 reading: 8476
HX711 reading: 8885
HX711 reading: 8949
HX711 reading: 8895
HX711 reading: 10585
HX711 reading: 10585
HX711 reading: 10544
HX711 reading: 10570
HX711 reading: 10780

les valeurs entre 8949 et 8402 sont apparus lorsque j’ai couvert le pyranomètre (pas de rayonnement)

Mais je vais être franc avec vous, c’est mon premier projet en arduino et en électronique je n’ai pas trouver comment convertir ces valeurs en tension (je divise cette dernière par la sensibilité du pyranomètre pour avoir mon rayonnement équivalent)

d’ailleurs je n’ai pas compris ce que c’est VSS/2 !!

j’ai utilisé aussi le TM7711 que j’ai acheté dernièrement et j’ai aboutit au même résultat.

j’ai utilisé toutes mes connaissances et tout ce que vous m’avez proposer.

177357591_457108778719723_6750192162921434772_n 177493714_503703790803811_3402329519255339930_n 179079494_913447289228434_3262493309893500436_n

Boinsoir

Mais je vais être franc avec vous, c’est mon premier projet en arduino et en électronique

conversion analogique/numérique, amplification différentielle… c’est un projet qui nécessite un peu d’autoformation !!

Ce qui te fait défaut c’est quelques bases de conversion analogique/numérique
Un moteur de recherche te donnera des bons cours et tu y découvrira le principe de calcul d’une tension à partir du nombre issu de la conversion , du nombre de bits de celle ci et de la tension de référence

Apercu très rapide dans le cas du HX711 (lire sa notice technique) composant qui associe une amplification (128 de base) et une conversion analogique numérique

Vss/2 ? Vss étant la dénomination générique de la tension d’alimentation , VSS/2 est en quelque sorte le ‘point milieu’ Bourde !! Vss est la Masse , la tension d’alimentation est notée VDD !!

Le HX711 concu pour des ponts de Wheatstone, sait traiter les faibles écarts de tension entre les entrées, toutes les deux au voisinage de ce ‘point milieu’

  1. Si Vss vaut 5V et si les entrées INA+ et INA- dont toutes les deux à 2,5V, la sortie de la conversion donnera le nombre zéro ( écart nul en entrée → nombre nul en sortie)

  2. Si INA+ est à (2,5V + 20mV) et INA- à 2,5v → écart de +20mV) l’amplification amènera en entrée du convertisseur la valeur (2,5V + 20mV *128) = 5V Valeur plafond.
    Le nombre issu de la conversion sera si mes calculs sont bons égal à +2^23 (24 bits dont 1 bit de signe)

  3. Si INA+ est à (2,5V - 20mV) et INA- à 2,5V → écart de -20mV) l’amplification 128 amènera en entrée du convertisseur la valeur 2,5V -(20mV * 128) = 0 Valeur plancher.
    Le nombre issu de la conversion sera -2^23.

Ensuite faire jouer la proportionalité entre tension et nombre issu de la conversion analogique numérique

Pour ce qui est du câblage j’ai un doute sur le tien qui ne fixe pas le potentiel des entrées INA+ et INA-
Je n’ai aucune idée du comportement du HX711 dans ce cas. Quand un pont de jauges est raccordé à un HX711 ses entrées INA+ et INA- sont toutes les deux proches de VSS/2 .

Merci beaucoup pour ces infirmations qui sont nouvelles pour moi, je vais chercher encore plus sur le net, en attendant d’éventuelles autres informations de la part de @Artouste qui dit qu’il maîtrise bien le HX711 :grin: :grin:

Selon la doc du pyranomètre:

  • Le capteur en question est-une thermopile donc la tension ne sera jamais négative.
  • La tension maximum ne devrait pas excéder 10mV

Under the assumption that the global broad-band solar irradiance does not exceed 1,400W/m2 (in both horizontal and tilted measurement positions) the signal level of the pyranometer output Voltage will remain below 10mV.

Comme la tension max est assez faible on peut utiliser le gain maximum du HX711. A noter que l’on sera limité à la moitié de la dynamique environ.

La datasheet du HX711 n’impose pas un mode commun de AVDD/2 (en reprenant la dénomination de la datasheet du HX7111). Il faut que celui-ci reste entre 1,2V et AVVD - 1,3V.
Le plus simple serait donc de fixer le potentiel de l’entrée INA- à AVDD/2 ou inférieur. On fait une calibration en masquant le capteur pour faire le zéro. La conversion se fait ensuite en prenant précisément en compte la tension de référence, le gain du HX711 et le coefficient de conversion du pyranomètre.

Si la dynamique de mesure devait dépasser les 1400w/m² il suffirait de réduire la tension de polarisation sur INA-.

Bonjour

Bourde corrigée !! Vss vs Vdd … :roll_eyes:

Pour polariser INA- vers le bas du mode commun toléré ( >1,2V) une DEL fait l’affaire , j’a fait comme ça pour un thermocouple.

Bonjour
Je ne suis pas le seul à jouer avec le HX711
voir par exemple la reponse de @fdufnews qui synthetise parfaitement le probleme

Reprend tes essais avec simplement un programme HX711 qui sors l’AD en RAW et permet l’affichage avec le traceur serie de l’IDE , çà permet déjà de faire une bonne approche.

// programme basique pour hx711 formatage serie pour faire du log timestamp et/ou sortie traceur IDE ARDUINO


#include "HX711.h"


uint8_t dataPin = 6;
uint8_t clockPin = 7;
HX711 scale;  //gain par defaut 128


void setup() {
  Serial.begin(115200);
  Serial.println("LOG HX711 RAW");
  // scale.power_up(); // pas d'excitation de pont
}

void loop() {

  Serial.print(millis());
  Serial.print(",");
  Serial.println(scale.read()); // valeur brute AD

}


Bonjour Al1
Une DEL c’est aussi un photo-recepteur , çà n’ajoute pas trop de bruit si elle n’est pas optiquement isolée ?

Donc, si j’ai bien compris, je dois ajouter une DEL au branchement entre le (-) du pyranomètre et le INA- du HX711 pour avoir un potentiel <= AVDD/2.

Ensuite, je vais reprendre le programme proposé par @Artouste.
Je vais essayer ca, on verra le résultat.

Merci à vous

J’ai fais qq essais pour dériver çà avec un pont diviseur (potard 470K) de la ref de tension (4.096V MCP1541) qui me sert d’alim et je me suis rendu compte avec le DS que je cherchais à réinventer la poudre :boom:
Le plus simple est simplement de connecter INA- à VBG (sortie bandgap 1.25V )

:+1:

As tu essayé , Artouste , cette solution dans un cas où il faut injecter un petit courant dans le capteur (genre PT100) courant qui doit alors pouvoir entrer dans VBG ?

Pour cette manip avantage au HX711 sur le TM7711 qui est dépourvu de VBG et des autres bornes servant à câbler une petite alimentation régulée pour produire AVDD !!

C’est la première chose que je suis aller voir :eye:
J’ai juste fait un rapide test en injectant qq µ/m Volts sur INA+

Je ferais un test plus plus poussé dans la semaine avec un capteur de pression et une BPW34 en inverse (détection de particules)

Au début j’ai pensé que la différence de pententiel entre INA+ et INA- qui doit être compris entre 1.2V et AVVD-1.3V, finalment, après d’autres recherche sur le net, c’est le pententiel au niveau de chaque entrée qui doit être compris dans cette plage. (Vous me le confirmez ??)

@al1fch Juste par curiosoté, pourquoi vous avez proposé la DEL pour polarisé l’entrée INA- a AVDD/2 (quel est le calcul que vous avez fait, est-il: AVDD-la tension de la DEL ?? )

merci

Le mode commun c’est le potentiel auquel se trouvent les entrée en l’absence de signal.

OUI chacune des deux entrées doit être dans la plage [1,2 V , AVDD-1,3V]

la tension aux bornes d’une diode rouge dans laquelles circule un courant, est de l’ordre de 1,5V, j’ai parfois utilisé cela pour fixer la tension entre INA- et masse, patrfois aussi un pont diviseur de tension mais la solution proposée par Artouste (relier INA- et VBG ) est très intéressante !!