Prototype Codeur magnétique absolu multi tours

1 Principe de tetearticle_codeurmagnbase

2 Mécanique réalisée

2.1  Circuits et roulements
2.2  Précision CI
2.3  Ajustements de composants
2.4  Immobilisation des UGN
2.5  Axe de l'aimant

3 Sinusoïde et principes

3.1  Miroirs des courbes descendantes
3.2  Aspect statique

4 Magnétisme et forme

5 Électronique

5.1  Circuit imprimé
5.2  UGN3503
5.3  Température
5.4  Point de repos des UGN
5.5  Amplification
5.6  Commutations Vcc
5.7  RS232
5.8  Courbes descendantes
5.9  Réglages

   5.9.1 Disque étalon
   5.9.2 Calages des zéros AOP
   5.9.3 Ajustement largeurs zones et gain
   5.9.4 Démontages et fixations

6 Programmation PIC

6.1  Programme de mise au point
6.2  Traitement des cas
6.3  Principe de sélection des courbes

7 Précision

8 Les errements

9 Conclusions

Si vous arrivez directement sur cette page par un moteur de recherche, vous pouvez avoir accès à la table des matières et à chaque article, en page d'accueil.    L'accès se fait par l'un des deux liens en tête de colonne de droite ----->

ATTENTION à compter du 15/09/2019 les commentaires ne seront plus possibles à causes de quelques imbéciles qui font du spam pour le plaisir de nuire ! désolé  !



Avant propos

Lors de la conception de l'éolienne, et d'un écart temporaire du projet vers girouette et anémomètre, je m'étais posé la question au niveau de la girouette pour avoir une meilleure précision de direction car les 8 directions principales étaient très approximatives mais cependant suffisantes pour l'utilisation….Mais si cela avait pu être plus précis…ça aurait été tout de même mieux !
Alors pourquoi pas un codeur absolu suivant un principe similaire…?

Projet plus qu'ambitieux et dont le résultat est très incertain à cause du nombre important de réglages nécessaires lors de la mise au point. C'est un projet un peu fou, mais soyons fous et voyons ce qu'il est possible de faire, et d'en faire la critique.

Cet article ne relatera que l'un des prototypes réalisé, mais sera riche d'enseignements je pense, pour ceux qui ont en charge de tels sujets notamment lors des stages pour les étudiants.

Naturellement après l'échec en optique, j'étais revenu vers le magnétisme, et la précision était très aléatoire pour les 8 directions à l'aide de 4 SWITCHS HALL et d'un aimant.

Alors comment faire ? J'avais exploré la solution d'un encodeur magnétique ANALOGIQUE en quadrature avec 2 capteurs, qui fonctionnent pour donner une position, mais la précision est extrêmement variable suivant l'angle dans lequel on se trouve, et particulièrement mauvaise vers les calottes de sinusoïdes (90° et 270°). Elle est aussi  très impactée par le jeu de la mécanique, car 1 degré angulaire c'est vraiment peu et cela donne de grandes variations.

(Ce qui intervient aussi est la précision de réalisation tant au niveau CI (Circuit Imprimé) que des caractéristiques éventuelles des composants magnétiques, mais au dessus des jeux mécaniques et de tout le reste, c'est surtout le principe même qui est à évaluer !).

Ainsi quand on est au sommet d'une sinusoïde, un déplacement angulaire donné donne très peu de variation de niveau (ou de sinus ce qui est équivalent) contrairement vers 0° ou 180° pour ce même déplacement angulaire. Tout repose sur cette constatation simple et purement mathématique.

     Rappel:

Le sinus (voir lien sur cet article) d'un angle est une valeur numérique sans unité, qui varie en fonction de l'angle entre -1 à +1, et par dérision je ne parlerai le plus souvent que des valeurs positives. Aussi sauf explicitement indiqué, cela s'appliquera également aux valeurs négatives de sinus.

     NOTA 1 :

Avec les conventions utilisées lorsque l'on parle des valeurs négatives de TENSION, ce sont les valeurs sous la limite de +2.5V qui sont le point milieu des UGN pour un champ magnétique nul. Ce point à 2.5V ou plus exactement à Vcc/2 correspond au zéro du sinus et à un angle de 0° ou 180°.
On associera par dérision sinus et tension de sortie, car c'est en rapport direct.

     NOTA 2 :

Les circuit HALL UGN3503 seront  le plus souvent indiqués "UGN" Ce sont des modèles analogiques multipolaires référencés à Vcc/2 pour 0 gauss. (Un champ magnétique est orienté)

 1 Principe deP1000446 base

Le principe de base est toujours très simple, mais le rendre opérationnel est un peu plus compliqué…

J'ai donc commencé par regarder cette courbe issue de l'un des détecteurs analogiques en quadrature, et je me suis vite dit que la rotation d'un aimant devant des UGN était très proche d'une sinusoïde, ce qui est assez exact, si l'on compare la première courbe issue de d'un UGN et la courbe théorique du sinus.
Dans ce principe du sinus, on constate que la partie centrale de la sinusoïde est relativement droite si l'on s'en tient à des sinus inférieurs à 0.7.

YSINUSXPlus on se rapproche du point d'inflexion, (point situé à 0° ou 180°), meilleure est la linéarité. Le principe est donc d'assimiler à une petite portion de droite ce qui est entre deux valeurs positives et négatives du sinus, mais dans une plage de sinus restreinte, soit par exemple ±0.7 comme déjà cité. Mais rester à des valeurs plus petites  n'en serait que mieux.

De la simple quadrature, je vous passe les différents essais et erreurs, j'étais passé à 3 fois 60°, puis 3 fois 45° et enfin 4 fois 45°…puis, enfin 2 fois 90°.......

Je passe sous silence ces cas particuliers qui ont été réalisés, qui ont apporté de nombreuses idées et solutions, ainsi que la mise en évidence des pièges.

Il faut au moins être égal ou dépasser 90° angulaires pour assurer la couverture totale du nombre de capteurs et pouvoir déterminer la position dans le cercle trigonométrique et pouvoir couvrir effectivement les mesures sur les 360° angulaires.

Plus il y a de capteurs, meilleure serait la précision (En pure théorie générale seulement).
Sur les deux images ci-dessus, on  peut remarquer qu'une sinusoïde pure est un peu différente de la courbe réelle, et bien que l'on ne s'intéresse pas aux parties extrêmes, il faut espérer que les parties "linéaires" soient suffisamment identiques.

Cette règle du nombre de capteurs n'est pas toujours vraie, car SI l'on veut un codeur absolu sur 360°, certains nombres de capteurs et angles n'apportent pas toujours une précision supplémentaire.

Il serait un peu long d'expliquer les différents cas et leurs limites, aussi je resterai sur les angles de 90° qui portent bien le nom de quadrature.

Dire un mot sur 4x45° (=135°) est cependant nécessaire, car c'est bien cette solution que j'avais finalisée dans le montage final, mais je suis revenu à 90° par peur des difficiles réglages et en n’ayant pas tout parfaitement compris de ces phénomènes de recouvrement… On y reviendra par la suite.

En fait il faut éviter le plus possible les sommets de sinusoïdes qui donnent pour une même variation angulaire des écarts très faibles de niveau (Assimilable à la valeur du sinus à l'amplification près).

Ainsi il est nécessaire d'amplifier la partie utile de la sinusoïde, et pour cela de ne pas dépasser 0.7 de sinus si toutes fois la courbe était proche d'une sinusoïde, ce qui n'est pas rigoureusement vrai, mais on considérera que c'est le cas.

J'avais, après maints essais, décidé de partir sur un équipement avec 4 capteurs ANA distants de 45° angulaires, qui donnaient théoriquement un sinus maxi entre ± 0.38 pour un codeur absolu sur 360°, ce qui aurait été "merveilleux"…!

Une parenthèse à cette dernière phrase est de dire qu'il est possible et assez facile d'avoir des codeurs absolus sur des mouvements angulaires plus restreints. Dans ces cas, la précision peut être très fine, car il n'y a pas de recoupements à effectuer.

Après bien des réglages dont je n'ai pas toujours bien maîtrisé l'ordre au départ, j'ai pu évaluer la multitude des réglages, leurs interactions, et de considérer que j'avais eu les yeux plus grands que le ventre, mais j’en étais tout de même conscient au départ !

Alors j'ai modifié ce dernier montage de 4 capteurs à 45° soit un espace angulaire de détection de 135° (Problème de poteaux et espaces entre les poteaux…!!!) en seulement 2 capteurs à 90° avec quelques croisements de fils pour ne garder qu'un seul DIP amplificateur avec ses 2 AOP .

PRÉCISION : Je ne parle que de capteurs absolus sur 360°, et il ne faut pas confondre l'espace angulaire de détection de 135° 4 capteurs à 45°=135° de couverture angulaire (on en reparlera)   (Dans ce cas, mais au final ce sera seulement 90°), avec les 360° de la résolution.

Un autre règle de base absolument à respecter, est d'éliminer tous les jeux, car tout jeu important induit quelques 1/100 de mm d'écarts qui se traduisent par de fortes variations de niveau en sortie des UGN car la faible variation de champ magnétique induite est alors amplifiée par le gain des AOP.

2 Mécanique réalisée

 2.1 Circuits et roulements

J'étais parti initialement sur des petits roulements de 3x8x4 made in China, mais il y avait un jeu pas possible et si cela avait suffit pour l'anémomètre, pour le codeur absolu, ce n'était plus acceptable, et j'ai dû évoluer vers des roulements de récupération en parfait état 4x11x4, certes un peu plus gros, mais très précis. (Roulement de chariots de têtes magnétiques)

Ces roulements ont été simplement collés à l'Araldite sur le circuit imprimé principal. Un circuit époxy auxiliaire comporte le deuxième roulement de guidage. Des entretoises précises séparent ces deux circuits (Pour éviter des désalignements axiaux).

Ces deux circuits ont été percés ensembles et le positionnement des roulement a été fait avec un axe réel constitué d'une tige filetée dont le diamètre insuffisant de 3.9 mm a été augmenté avec un cerclage en feuille de cuivre pour un ajustement "serré doux" sur les bagues intérieures de 4mm.

Le collage des Roulements a ainsi été réalisé.

 2.2 Précision CI

Le CI des composants (L'autre CI en époxy seule sans cuivre est seulement un guidage sans aucune électronique) doit être très précis au niveau de la position des capteurs, mais aussi lors du soudage des circuits UGN3503, dont les positions angulaires, verticales et hauteurs doivent être très précises. Cette partie est essentielle si l'on ne veut pas récupérer des impossibilités de réglagesP1000394 ultérieurement.

Il ne faut pas hésiter lors du soudage de ces composants UGN à faire de petits gabarits angulaires en papier, de hauteur et de perpendicularité au CI pour éviter tout problème ultérieur. (Visée optique, photo ci-contre)) Le travail à la loupe ou à la binoculaire est largement recommandé.

La soudure des UGN laissera dépasser les pins de sorties pour permettre d'accrocher la sonde d'un scope ou la pointe de touche d'un voltmètre.

Les queues sont très proches des roulements et elles seront (Malheureusement) noyées dans la colle, et je recommande de laisser dépasser la pin de sortie des UGN, les autres étant la masse et le Vcc qui offrent peu d’intérêt à être conservés puisque ces potentiels sont disponibles beaucoup plus facilement ailleurs sur le CI.

(Mais dans le cas d'un repositionnement nécessaire, ce serait peut être plus prudent pour l’accès de ne pas les couper  provisoirement mais de les isoler par un petit bout de gaine pour éviter tout court-circuit).

Concernant les trous de perçage des UGN, là aussi la précision est la règle et il faut utiliser la gamme de forêts carbure adaptée pour que le coulissement des pattes soit "JUSTE" ce qui permettra un positionnement final beaucoup plus facile. (Il faut aussi percer, bien perpendiculaire au CI pour limiter les décalages)

Je dois dire que j'ai été obligé de revenir légèrement sur cette position que je pensais bonne mais qui était en réalité trop limite.

Le circuit double face sans trous métallisés permet cependant de légers ajustement des UGN, même avec la colle en place sur l'autre face par capillarité thermique des queues de composants, tout en maintenant les contacts électriques désormais inaccessibles à cause de la colle. (On regrettera le 0V (masse) des UGN du côté opposé aux UGN, mais avec ces roulements, ce n’était pas facile de tout loger dans un espace réduit !)

Enfin dans cette ultime réalisation, il aurait été dommage de ne pas faire un seul oubli et j'ai donc dû souder directement une résistance de 10K (0603 ou 0402) sur la sortie signal des UGN et vers la masse, car c'est une sortie générateur de courant, et il faut impérativement cette résistance à la masse.
C'est mon seul véritable oubli !

2.3 Ajustements de composants

Les ajustements nécessaires se feront par soudure de résistances l'une sur l'autre. Les faibles valeurs ont été volontairement scindées en 2 parties pour pourvoir recevoir des résistances de valeur acceptables en //. Cette méthode n'est peut-être pas très professionnelle mais elle fonctionne correctement dans les conditions normales d'utilisation ! Elle a le démérite de demander un peu plus de place, mais est beaucoup plus stable que le traditionnel potentiomètre !.

Ce point concerne principalement les résistances de point zéro des AOP, (Point Zéro = Vcc/2) mais vous pourriez aussi avoir besoin de modifier le gain des AOP, dans une moindre mesure car on le verra, le niveau de sortie sera en principe ajusté par la distance aimant / UGN. Si vous avez été suffisamment précis, seule la légère modification de position des UGN suffira à régler pour obtenir les largeurs de plages souhaitées.

2.4 Immobilisation des UGN

J'avais tenté d'immobiliser les UGN avec un papier "imbibé" d'Araldite, mais cela a modifié légèrement le positionnement lors du séchage. Après on ne peut plus agir sur un seul UGN, et je n'ai donc pas de réelle solution pour résoudre au niveau amateur ce problème. Il faut particulièrement faire attention de ne pas toucher ces composants, une fois réglés. J'ai donc retiré cette colle et refait les réglages.

(À cette époque le montage était câblé pour 4 UGN à 45°, et c'était les 4 UGN bloqués ensemble, mais ce n'était pas une bonne solution et de plus j'ai dû repasser à 2 UGN à 90° avec l'obligation de tout décoller).

Je n'ai pas de solution toute prête pour ce prototype à seulement 2 UGN, hormis de faire très attention après les réglages ou de voir avec des spécialistes de l'immobilisation par enrobage.

L'immobilisation définitive de chaque UGN indépendamment les uns des autres ne me semble pas opportune surtout à ce stade du prototypage. Elle sera à envisager un peu plus tard lorsque le sujet sera réellement mûr, et on verra que ce n'est pas encore le cas….

 2.5 Axe de l'aimant

Ce sujet est réellement très délicat pour les possibilités réelles du bricoleur, car souder (A l’étain) avec précision des bouts d'axes de chaque côté d'un aimant est très difficile. Les aimants sont de toutes formes et sont presque toujours nickelés, ce qui permet de les souder à l'étain. Cependant ce nickelage est peut-être issu d'un procédé de dépôts sous vide ? Ou autre, mais de toutes façons la solidité mécanique reste assez "timide". (Tiges filetées servant d'axe en laiton de préférence)

Aussi souder de chaque côté un axe laiton fileté est une opération TRÉS délicate en précision mais également en solidité mécanique. Il est nécessaire de procéder par du calage sur table, et de souder ensuite, en ayant eu la précaution d'étamer chacune des pièces P1000451préalablement.
J'ai corrigé in fine de légers désalignements en chauffant, à peine, pour seulement ramollir cette soudure. Cette méthode fonctionne pour de légers décalages.

De la bonne mise en place de l'aimant dans l'axe des tiges filetées dépendra en premier lieu la rotation sans durs, de la symétrie des courbes pour un pôle NORD comme pour un pôle SUD et en conséquence directe, de la difficulté plus ou moins importante d'obtenir des plages à recouvrement "suffisant", (10° total environ)

Cette double tige avec l'aimant au centre doit maintenant pouvoir tourner librement sans coincer une fois insérée dans les deux roulements sur les deux CI.
Si ce n'est pas le cas, il faudra revoir ces soudures en ayant en tête que chauffer longtemps et souvent, nuit à la tenue mécanique du revêtement nickelé des aimants. (J'ai décollé le nickelage de plusieurs aimants pour d’assez faibles contraintes !!! Ces aimants sont perdus pour l'utilisation prévue)

Une fois la bonne rotation sans coincement acquise, vous pourrez augmenter la solidité par de la colle type Araldite qui augmentera la tenue mécanique de l'ensemble.
(L'aspect  irrégulier de l'aimant est dû à l'Araldite. La couleur rouge faite au feutre marque le pôle SUD)

3 Sinusoïde et principes

SCAN100Un petit dessin vaut mieux qu'une longue explication et je vous propose ce scan de ma feuille de travail issue d'un fichier CALC dans lequel j'avais évalué toutes les combinaisons angulaires.
Le nom de fichier "120degrés…" n'est plus d'actualité, mais c'est bien des sinusoïdes en quadrature (à 90°).

Si vous le souhaitez, je peux mettre à disposition ce fichier qui n'a rien d'extraordinaire cependant, mais qui contient bon nombre des autres possibilités angulaires avec des nombres différents d’UGN.

Le grand principe est de considérer que les parties de courbes qui sont dans la zone centrale claire sont acceptables comme étant des " lignes droites " ! Les sommets sont trop courbes et ne permettent pas une   approche linéaire des angles.
On comprend désormais fort bien pourquoi une limitation de   sinus à la plus faible valeur est intéressante. Dans cette réalisation, tout ce qui est en zone grisée est hors mesures et sera dans les zones de saturation des AOP.

La partie centrale une fois amplifiée correspondra de zéro volts à Vcc,  aux tensions de déchets près soit en haut à 1014 pas du convertisseur du PIC et en  bas à 8 pas. Il y a donc 8 et 10 pas de perdus, mais ce n'est pas le plus important. (J'ai considéré cette très légère dissymétrie comme inexistante et c'est vrai).

Dans un environnement instable en température et mécaniquement sensible, il n'est pas possible de placer les changements de courbes exactement sur les limites hautes ou basses (croisement des courbes), aussi on réglera (On verra comment) pour que les croisements de courbes ou leurs équivalents (Miroirs) soient situés dans la zone blanche, faute de quoi, il pourrait y avoir des valeurs d'angles impossibles à déterminer.

Sinusoïde or not ? NOT ! Le signal issu des UGN3503 n'est pas une sinusoïde pure et les calottes sont plus des arcs de cercle que des sommets de sinusoïde. La raison que j'avance est la proximité trop importante  de l'aimant des UGN, car l'aimant n'est pas une surface mais bien un solide parallélépipédique, ayant une certaine épaisseur, qui relativement à la distance assez faible entre UGN et aimant tend à déformer la calotte sinusoïdale.
Ce fait est vérifié mais je ne maîtrise pas avec certitude les raisons physiques hormis cette épaisseur de l'aimant. Dans cette éventualité, je recommanderais d'utiliser des aimants les plus fins possibles, mais pas trop non plus pour ne pas affecter la solidité des soudures et éloigner au mieux aimant et UGN pour avoir encore un peu moins de 300mV de signal, que l'on compenserait par un gain complémentaire.

J'ai utilisés des petits aimants made in China de 9.5x4.6x2.5 dont les faces actives sont 9.5x4.6 et donc d'épaisseur 2.5. Si vous pouvez prendre un peu moins d'épaisseur ce serait mieux pour la forme d'onde. (Surface des pôles =9.5x4.6)

3.1 Miroirs des courbes descendantes

Suivant les angles à déterminer, les courbes sont différenciées montantes ou descendantes, mais il faut que l'on ajoute toujours une valeur correspondante POSITIVE à l'offset d’une zone (ou type). Il est donc nécessaire d'effectuer par programme un miroir pour les courbes descendantes.

J'ai donné l’offset de zone  relativement à un point zéro degrés arbitraire, ce qui m'a semblé plus correct pour éviter le cumul des erreurs.

Ce miroir des courbes a pour but de transformer une courbe descendante en son symétrique ascendant en appliquant bien entendu la pente inverse suivant l'axe de symétrie situé à Vcc/2. Ce miroir peut être réalisé par le programme comme je l'ai   fait en appliquant les deux algorithmes suivants :

- Pour un point P de la courbe situé au dessus de :Vcc/2, on calcule la longueur en pas de ce point par rapport à 512, ( Vcc/2), puis ou soustrait cette valeur de 512 pour avoir la position en pas du symétrique. On peut aussi faire directement 1024-position, sous réserve que les zones grisées soient d'égales valeur ce qui est " limite " aussi j'ai préféré faire la double opération.

- Pour un point P de la courbe situé en dessous de Vcc/2 on calcule la longueur relativement à 512  en faisant la soustraction 512-valeur de P, puis on ajoute 512 à cette valeur pour avoir la position symétrique. On peut aussi procéder avec 1024 avec les mêmes restrictions déjà mentionnées.

On comprend aisément que les valeurs sur une courbe décroissante associée à la valeur de l'autre courbe permettent de discriminer les symétries angulaires dans le cercle trigonométrique, mais ces parties sont donc à l'inverse de ce que l'on attend. Il faudra donc assurer le miroir des valeurs relativement à Vcc/2 en faisant l'impasse sur la légère différence de 2 pas entre haut et bas des valeurs de saturation à 1014 et 8 pas.

Une fois les courbes "réordonnées" en ordre croissant, il suffira d'ajouter la valeur miroir du convertisseur à l'offset  correspondant à la position initiale dans la période du signal. Ce miroir de courbe pourrait aussi être fait par symétrie par rapport à la ligne Vcc/2 et un système hardware analogique inverseur référencé à Vcc/2 peut aussi effectuer ce travail. Bien que n'ayant pas opté pour cette solution pour raison de matériel supplémentaire, je pense que ce serait aussi une solution, mais nécessiterait 2 entrées supplémentaires au niveau du PIC (Dans le cas de la quadrature) ainsi que des AOP.

Pour 4 capteurs à 45° ce serait 4 entrées et AOP …! C'est là où la "solution programme" est utile pour réduire les coûts induits par des entrées ANA supplémentaires. Cette solution hardware a aussi ses inconvénients notamment dans la valeur et la stabilité du gain, ainsi que dans les tensions de déchets . En cas de nécessité de rapidité, cette solution serait la plus rapide.

 3.2 Aspect statique

Le but premier d'un tel codeur est de donner une position sans avoir à faire aucun mouvement, et ce sont les éléments mesurés en statique pure qui doivent permettre ce calcul. Toute référence à la pente d'une courbe ne peut donc pas être utilisée puisqu'elle ferait appel à un mouvement.

4 Magnétisme et forme

Sur ce chapitre, je serai beaucoup moins loquace car je ne maîtrise pas parfaitement cet aspect théorique. Ainsi que déjà évoqué, je suppose que la distance UGN à l'aimant produit cette déformation des calottes, mais je n'ai aucune preuve de ce que j'avance, hormis que j'ai vérifié que la trop grande proximité avec les UGN déforme les "sinusoïdes" notamment au niveau des calottes.

Je constate également en prenant quelques mesures que les aimants "maltraités" ont perdu significativement de leur aimantation. En serait-il de même de celui qui est en place ? Un point à surveiller et peut-être un étalonnage futur à prévoir ?

J'ai l'impression que tout nouveau contact avec un métal magnétique "pompe" de l'aimantation et réduit le champ magnétique. Impression ou réalité ?

5 Électronique

 Voici le schéma qui reste simple :

schema_90degres

L'électronique n'a donc rien de particulier. Cependant il faut comprendre que le schéma électronique présenté est bien celui pour le codeur absolu en quadrature, alors que le circuit imprimé a lui été prévu (et réalisé) pour 4 x UGN à 45°.

J'ai donc réutilisé le circuit initialement prévu pour 4 x UGN en enlevant 2 x UGN ainsi qu'un AOP avec ses circuits. (Les UGN à 45° et 135° ont donc été démontés associés à deux simples croisements).board_90degres

5.1 Circuit imprimé

Ce circuit est un des seuls que j'ai réalisé en double face avec seulement quelques traversées de couches hors composants, (Mais sans trous métallisés). Certains composants sont donc soudés des deux côtés.

Ce circuit est percé aux trois trous de fixations après la révélation de la première couche pour que les deux couches soient en parfait alignement notamment pour les centres.

Le cercle rouge indique la limite extérieure des roulements, et il ne faut donc aucune soudure côté intérieur de ce cercle et sur la face Verte.

Il y a des pseudo-composants Zxx qui sont de simples résistances 0 ohms et 15 à 20 traversées par fils.

Le circuit a été élaboré avec DIPTRACE qui permet des positionnements très précis, notamment celui des UGN. Le pré perçage des trous de fixation doit être réalisé pour le circuit imprimé réel, mais en simultané pour le 2ème CI sans cuivre servant de support au deuxième roulement, et cela avec un petit forêt de 0.5 à 0.7. Ces petits trous serviront de guide pour le perçage au diamètre de 3mm pour la fixation.

Le trou central sera réalisé de même que les trous de fixation en simultané des 2 circuits, mais cette fois au diamètre de 7mm pour bien échapper la bague interne des roulements.

Le perçage des trous pour les UGN doit être réalisé au plus juste pour que les pattes coulissent exactement dans les trous, mais aussi et surtout pour le plus de précision possible. (Ceci dans un cadre amateur seulement, car en industrie c'est automatiquement précis !)

Un connecteur "nez de carte" J1_ICSP provisoirement proéminent servira au codage ICSP du PIC. Ce connecteur est prévu d'être coupé après la mise au point finale lorsque le programme serait opérationnel à 100%. Une retouche restera toujours possible en soudant les quelques fils de traversée de couche (Seule la pin 5 du PIC devrait être soudée sur le run lui-même, car il est direct sans traversée.

Le collage des roulements peut se réaliser en faisant très attention de ne pas baver sur les roulements, mais aussi en évitant de coller (Provisoirement) les pattes des UGN. (Insérer peut-être un bout de gaine sur chaque patte ?!)

En ce qui concerne les éléments modifiés pour repasser en 2x 90°. On garde donc les UGN D et  B.

Cependant la sortie de l'UGN B ira sur l'UGN C par un strap. Tous les composants du C sont donc utilisés par l'UGN B. ! Clair ? En résumé, cela permet de supprimer un AOP et tout ce qui va avec. Au niveau programme on ne connaît plus que C et D ce qui est plus simple.

5.2 UGN3503

Cet ancien circuit HALL UGN3503 en TO92S est toujours disponible chez les petits revendeurs (De tout pays !). Il serait remplacé à ce jour par le A1302 d'ALLEGRO, peut être meilleur en performances, voire d’autres circuits que je ne connais pas.

La sortie de ce circuit étant un générateur de courant à la masse et il est nécessaire de mettre une résistance entre la sortie et la masse pour dériver ce courant qui ne pourrait s'établir correctement dans l'entrée AOP.

Ces résistances ont malheureusement échappé à ma vigilance lors de la conception du CI et j'ai été obligé de les souder directement sur les pattes UGN entre la sortie et la masse juste adjacente. Coup de chance car la place est comptée ! 

Comment repérer les pôles d'un aimant hormis avec une aiguille aimantée dont le côté couleur pointe le pôle NORD terrestre ? (Nota : Le côté "bleuté" de l'aiguille de la boussole indiquant le NORD, est en réalité un pôle SUD, ce qui me semble tout à fait "normal")

L'UGN3503 donne un signal "positif" >Vcc/2 si la face du marquage ("branded  face") fait face à un pôle SUD.

Vous pourrez pour vous repérer dans vos mesures en passant un coup de marqueur bleu pour le pôle NORD et rouge pour le pôle SUD de l'aimant. Cela vous aidera à vous repérer dans les sinusoïdes et les niveaux attendus.

Dans la partie magnétique du sujet, et de la précision requise ou espérée, il faudrait aussi évaluer la précision de position de la pastille HALL au sein du boîtier TO92S des UGN. Sur ce sujet, seule la position de la pastille HALL est indiquée, mais aucune tolérance, et au vu des distances en cause, cela aurait été de bon aloi… Mais très honnêtement  ce n'est pas la cause première de problèmes...!
Pour limiter les divergences et les réglages, je préconise de sélectionner des UGN ayant les caractéristiques les plus proches possibles. Ces UGN devront être alimentés en 5V car c'est le point où la linéarité est optimale.

5.3 Température

D'après les datasheet, le point zéro de l'UGN, ne parait pas, ou peu, sensible à la température, ce qui n'est pas le cas en présence d'un flux magnétique car dans ce cas il y a une sensibilité certaine et opposée suivant un flux NORD ou SUD

Le reste des composants doit également être sensible et j'ai pu constater une dérive que je n'ai cependant pas quantifiée par manque de temps…

5.4 Point de repos des UGN

En l’absence de champ magnétique, le point de repos des UGN est indiqué à Vcc/2 (Appelé également point zéro). Un pôle SUD présenté côté du marquage augmentera cette tension, alors qu'un pôle NORD fera passer sous la barre de Vcc/2.

On notera sur certaines documentations (datasheet), une sortie un peu au dessus de 2.5V (Output voltage as a function of temperature), alors que c'est rigoureusement 2.5V pour supply voltage de 5V (Output null Voltage as a function of supply Voltage)     Je ne sais trop quoi en penser !

Pour ma part j'ai constaté des petites divergences entre modèles  sur la tension de sortie pour une induction nulle (Point zéro). Cela a nécessité des particularités de schéma pour pouvoir facilement faire individuellement ce point zéro (A 2.5V en sortie d'AOP). Ces divergences restent faibles au niveau des UGN, mais elles deviennent gênantes après amplification….

5.5 Amplification

    Un AOP 2336 assure une amplification d'un facteur 15. Le niveau retenu comme acceptable en fonction de l'aimant présenté devant les UGN est d'environ ±300mV, ce qui signifie qu'en sortie on dépasserait les 5V  (0.6Vx15=9 !). C'est ce qui doit se passer puisque l'AOP va passer en saturation pour la partie des calottes des sinusoïdes. On ne gardera que les parties "linéaires" qui ne sont malheureusement que très imparfaites. On y reviendra…

5.6 Commutations Vcc

Tout ce qui concerne l'effet HALL est toujours un peu consommateur de courant pour obtenir la création perpendiculaire d'une tension de HALL. Il a donc été prévu de commuter la tension d'alimentation des circuits UGN en // avec l'alimentation des AOP (Ces derniers ne participant que très peu à "l'hémorragie" de courant), pour économie d'énergie.

Outre cette première commutation, une autre séparée a été prévue pour l'alimentation d'un petit émetteur radio 433 MHz en modulation AM à 2400 bps. Ce montage n'a jamais été mis en service puisque j'ai arrêté le projet avant.

Ces commutations sont faites très simplement par de petits MOSFET_P commandés (En inverse) par le PIC.

5.7 RS232

Il y a certainement eu un problème non identifié, mais mon codeur PICKIT 3 ne veut plus coder le 16F688 à cause de l’adresse 2000... !?

J'ai dû me rabattre sur le vieux codeur Velleman sous XP qui indique une erreur en 2000, mais il code tout de même ! Il a dû y avoir un "loup", mais je ne m’en suis pas aperçu et outre ce codage, le module RS232 ne fonctionne pas non plus !

Comme je ne veux absolument pas démonter pour abîmer le CI, j'ai choisi de générer par programme la sérialisation RS232 des données. C'est un peu ballot d'en arriver là, mais c'est ainsi  mais ça fonctionne tout aussi bien !

De toutes façons, le petit émetteur radio connecté à la sortie fonctionnera de la même manière à la condition de ne pas oublier de valider le MOSFET Q2 pour l'alimenter !

5.8 Courbes descendantes

Le traitement des 360° oblige à "redresser" les parties descendantes des courbes car elles contiennent les valeurs précises à ajouter à un offset correspondant à la zone traitée. Les parties descendantes permettent de déterminer avec certitude la position angulaire (offset), mais la valeur doit être redressée en faisant un miroir des courbes descendantes pour pouvoir ajouter les pas correspondants à l'offset de zone.

Il ne s'agit pas d'une simple inversion mais d'un véritable miroir par rapport au point zéro matérialisé par Vcc/2.

Ces parties descendantes concernent les zones marquées 2 et 4 (Appelées aussi code type) entourées d'un rond sur la feuille des courbes et réinscrites en gros caractères bleus.

5.9 Réglages

      5.9.1 Disque étalonPhoto002

Pour pouvoir mesurer des angles, il a fallu réaliser un disque gradué à partir de TURBOCAD ou AUTOCAD si vous l'avez. Ce disque de 7 cm de rayon permet avec une assez bonne précision de faire les mesures angulaires réelles et de comparer à ce que donne le calcul par le PIC.

(Une "dent de rateau" verticale avec une génératrice marquée au stylo bille sert d'index pour les mesures. Ici on voit parfaitement 140° face au trait).

Ceux qui veulent s'épargner ce travail peuvent télécharger le rapporteur DXF ou le rapporteur DWG, ou même rapporteur.JPG

Ce papier tiré à l'imprimante est alors collé sur un disque métallique.

(Petite précision concernant Turbocad  : J'avais acheté très légalement il y a plusieurs années en grande surface un logiciel TURBOCAD 7.1.
Ces dernières semaines, j'ai changé mon vieux "PC tour" sous XP, et surprise en voulant résinstaller le logiciel sur WINDOWS10, c'est refusé !.
J'ai écrit, mais le distributeur IMSI / AVANQUEST ne répond même pas ! J'en fait donc la contre publicité méritée ici, ainsi que celle des gens qui ne répondent jamais. C'est désolant !))

Pour toutes les courbes et les différentes mesures, il est également nécessaire de dire un mot sur le calage du disque lui-même sur l'axe. Pour cela j'avais choisi à l'origine, un point de basculement de la sortie D, juste au moment où elle commençait à monter ET que la sortie C était la plus haute possible.
Je crois que ce n'était pas la meilleure solution car on se trouve ainsi déporté de la zone de recouvrement et ce n'est pas très bon pour reprendre les offsets suivants, ni pour la précision (Partie très courbe).
Aussi j'ai gardé le principe mais cette fois j'ai ajusté le 0° du disque sur le milieu de la plage de recouvrement où la fin de C dépasse le début de D avec quelques pas de convertisseur en plus vers des valeurs plus positives de D. (Choisir une valeur par exemple et s'y tenir (978 pas pour C et 30 pas pour D pour ma part)).
Cette règle sera nécessaire en cas de démontage pour retrouver les mêmes valeurs.

5.9.2 Calages des zéros AOP

Par zéros il faut bien entendu comprendre par abus de langage Vcc/2. En effet les UGN délivrent Vcc/2 pour une induction nulle, mais si le rappel des entrées + des AOP est bien à Vcc/2, il y a tout de même des petites différences entre 2 UGN.

Il n'est donc pas possible de réunir toutes entrées + des AOP à un même potentiel Vcc/2 commun, car certaines sorties AOP peuvent ne pas être à cette valeur médiane et fausser ainsi toute mesure.

Ceci explique la raison de la présence des nombreuses résistances prévues pour permettre un ajustement précis à Vcc/2 en sortie d'AOP sans faire appel à des potentiomètres dont la stabilité est toujours un peu incertaine.

Vous devrez donc obtenir en sortie AOP RIGOUREUSEMENT Vcc/2. Suivant les limites de saturation, il pourrait y avoir intérêt à augmenter ou diminuer d'une fraction d'unité, mais à ce stade je pense que c'est superflu. J'ai réglé cette valeur hors programme du PIC directement au Voltmètre numérique, mais en ayant pris soin de court-circuiter Drain et Source sur le MOSFET Q1 (Pour que l'ensemble soit alimenté normalement à l’exacte tension Vcc !)

5.9.3 Ajustement largeurs zones et gain

Avec les valeurs indiquées notamment pour le gain des AOP, ainsi que les dimensions données pour l'implantation du CI, il y a très peu d'ajustement à faire, et en principe aucune modification des résistances de gain des AOP.

Le gain est réglé finement par très faible cambrage des UGN, en considérant que l'éloignement d'un UGN de l'aimant augmente la largeur de la fenêtre, (Mais ceci aussi bien pour un pôle NORD que SUD)

(Un manque de symétrie des valeurs NORD/SUD serait majoritairement à imputer à la position non parfaitement concentrique de l'aimant)SCAN100

Il faut donc ajuster chaque zone pour qu'il y ait recoupement des courbes d'un UGN à l'autre, car dans le cas contraire, certains angles pourraient ne pas être vus s'ils ne peuvent être raccrochés ni à la courbe D ni à la courbe C.

NOTA :

Ces zones (ou paliers) sont représentés par des traits horizontaux qui doivent se recouvrir partiellement sur cette feuille des courbes.
On comprend bien l'intérêt des recoupements de zones par rapport au croisement des 2 sinusoïdes. (Pour les zones 1 et 3, ce sera sur le croisement virtuel d'une des courbes en miroir)

Pour éviter ces problèmes, il est important que les courbes puissent se couper juste avant d'atteindre les zones de saturation (5V ou 0V), zones équivalentes au sinus 0.7.

Si toutes les précautions mécaniques et de réglages ont bien été prises, les valeurs de plages de mesure (zones) sont aux alentours de 100°.

Cependant la position physique des UGN en latéral intervient également pour que ces plages de recouvrement soient à peu près égales pour l'ensemble. On comprend d'emblée que c'est une double condition de largeur et de position, mais cette dernière dépend pour beaucoup du soin apporté à la soudure bien perpendiculaire au CI, des UGN.

Enfin la position suivant un axe Z (axe perpendiculaire au CI ou vertical) est à respecter aussi, mais avec une moindre conséquence puisque la hauteur de l'aimant (11mm) est suffisamment grande devant la surface ACTIVE HALL des UGN (Quelques 1/100 mm).

Il faudra donc bien centrer l'aimant au centre des UGN et ce réglage très simple devra être traité avant tous les autres, et ne devra jamais remis en question pour conserver les recouvrements de zones. Des écrous sur les tiges filetées assureront cette cote.

   5.9.4 Démontages et fixations

P1000449Toute modification de composant nécessite malheureusement un démontage de l'ensemble complet monté avec l'aimant. Aussi, il était essentiel de ne pas perdre à chaque fois le calage du disque gradué.
Pour ce faire les colonnettes filetées seront solidaires de l'époxy de guidage une fois pour toutes, et naturellement tout sera marqué pour que cette partie époxy de guidage soit toujours placée par exemple face au connecteur ICSP bien visible.

Cette disposition permet l'accès aux composants et permet de retrouver directement au remontage le bon calage et de reprendre les mesures pour les réglages.

Les trous de fixation dans l'époxy sont perçés à 3mm et les jeux restent faibles aussi ce sont les vis de 3 qui assurent le centrage (Style amateur !!!)
On distingue sur la photo la partie époxy de guidage avec l'axe et le disque gradué solidaires (disque retourné). De simples vis de 3 mm assurent la fixation du CI sur les colonnettes, ainsi que son centrage. Les roulements sont situés sur les autres faces (Voir photo de tête d'article pour le CI électronique)

6 Programmation PIC

Cette partie n'est pas terminée et ne le sera pas ultérieurement sauf cas d'imprévu… Le programme développé est essentiellement orienté vers la mise au point et utilise la RS232 comme organe de sortie des valeurs.
La RS232 comme déjà mentionné est traitée en mode programmé car ce PIC refuse de fonctionner avec le sérialisateur interne existant (TXREG). Tant pis ça fonctionne tout aussi bien par programme. Je ne creuserai pas plus loin la raison de ce problème purement "PIC", et certainement associée à la difficulté du codage.

 6.1 Programme de mise au point

Ce programme est celui qui est en cours actuellement, mais qui n'évoluera plus vraisemblablement. Il donne les informations suivantes : Valeurs en pas pour les conversion ANA_D et ANA_C, ainsi que la valeur de l'angle calculé par le PIC, suivant les recoupements.

En écrivant ce paragraphe, je m'aperçois qu'il aurait été judicieux d'ajouter le code "Type", propre à chaque zone, car il peut y avoir parfois des interrogations sur le cheminement dans le programme, aussi je vais peut-être l'ajouter après la rédaction de cet article.

Il est donc nécessaire d'avoir un PC avec le logiciel Terminal de BRAY++, (Mais l'ancienne version, V1.9b) car la nouvelle (V1.93b)  ne fait pas le rollup et c'est très gênant.

J'utilise maintenant un petit convertisseur USB RS232 TTL de chez FTDI qui permet l'affichage des données envoyées par le montage directement en 5V au lieu de repasser en ±12V comme en RS232 réglementaire.
(Avec Windows10, un convertisseur USB/RS232 ATEN ne fonctionne plus !)

SCAN100

 6.2 Traitement des cas

Photo des courbes  Pour l'ensemble des angles sur 360°, il n'y aura pas moins de 8 cas   particuliers (types ou zones numérotés 0 à 7 en bleu) dont 4 sont les plus simples, puisque l'algorithme est le suivant :

On recherche en premier lieu si l'un des UGN (sortie après AOP) est en saturation à >=1013 ou <=9 pas.

(Ces valeurs de déchets sont issues à la fois des UGN et des AOP dans une moindre mesure) Il y a donc 4 cas simples numérotés 0, 2, 4, 6 :

0- C en saturation haute correspond aux angles -3° (ou 357°) à 96° avec D actif en mesure
2- D en saturation haute  correspond aux angles 85.5° à 183° avec C actif en mesure
4- C en saturation basse  correspond aux angles 176° à 273° avec D actif en mesure
6- D en saturation basse   correspond aux angles 265° à +5° avec C actif en mesure

Actif en mesure signifie que la valeur en pas est ajoutée à l'offset correspondant à la plage (Code type) directement ou après miroir.

 6.3 Principe de sélection des courbes

Une fois les cas simples 0, 2, 4, 6 traités, il faut cette fois traiter les croisements de courbes. Ces cas sont répertoriés 1, 3, 5, 7. Dans ces cas il y a le choix entre une courbe ou l'autre et c'est là le problème.

     Voici comment j'ai réalisé cette sélection :

On traitera toujours le choix d'une courbe ou de l'autre, de telle façon que le choix se porte sur la valeur la plus proche du centre Vx/2, car de cette façon, c'est la meilleure linéarité qui sera toujours retenue, en étant toujours le plus possible éloigné des extrêmes 0V ou Vcc proches des calottes.

En effet la linéarité est la meilleure vers le centre Vcc/2 et la plus mauvaise dès que l'on grimpe vers les valeurs élevées de sinus.

Ce choix reste identique pour les cas où, il faut procéder avec miroir sur les courbes.

De cette manière, on a toujours le meilleur choix.

7 Précision

J'ai cru un instant que la précision allait être de "bonne facture", mais c'était sans compter sur les raccordements de zones et l'on reste surpris des ACCIDENTS à chaque changement de zone.

Aussi je pense que ça n’a pas été inutile d'avoir fait ces  essais...

Ces accidents sont pour beaucoup le reflet du manque de linéarité accusée en haut et en bas de la partie centrale des sinusoïdes.

Je pense que vu les différentes courbes, il n'y a pas à se leurrer, le programme traite de façon linéaire ces raccordements et choisit même, lorsqu'il y a possibilité de choix, le point d'une des courbes qui est le plus proche de Vcc/2, ce qui éloigne des calottes de sinusoïdes qui sont des zones de plus forte divergence.
Sans de savants calculs, il ne me semble pas possible d'échapper à ce problème de manque de linéarité. Certes, ce serait peut-être possible de faire mieux, mais dans cette optique, il faudrait également traiter le problème de la dérive en température  des UGN, et ce circuit ancien devrait également être remplacé par un nouveau, certainement plus performant, (Mais à un autre coût!) et tout recommencer...

Cependant, tout n'est pas négatif, et j'ai beaucoup appris sur ces délicats problèmes de raccordements de courbes.
On peut aussi remarquer que le principe d'amplification avec saturation des zones hors sujet, peut être extrêmement intéressant pour des excursions angulaires limitées, où la précision peut être particulièrement bonne, dans la mesure où un raccordement n'est pas nécessaire.
En effet il est particulièrement simple d’amplifier le signal et de passer en saturation pour ce qui n'intéresse pas directement. On peut donc assez facilement obtenir 90° à 100° de débattement angulaire, avec une précision l'ordre de 4%. Dans cette vision, plus on réduira l'excursion, (en augmentant le gain), meilleure sera la précision.

Il faudra alors traiter le problème de dérive en température, pour avoir alors quelque chose d'assez précis.

Résumé des causes d'erreurs réellement prévues et/ou rencontrées :

-alignement angulaire des capteurs HALL plus simple à 90° qu'à 60°
-alignement vertical sur le CI des Capteurs HALL
-verticalité réelle des capteurs HALL (dans le plan Z)
-position des capteurs HALL relativement à l'aimant tournant
-concentricité mal contrôlée de l'aimant sur l'axe
-jeux excessifs des roulements  et notamment déséquilibrage du point d'induction nulle à 2.5V
-distance trop faible entre l'aimant et les UGN
-conversion 10 bits un peu juste nécessitant des calculs avec perte de décimales en ce sens 360°x2.5=900 pas permettraient de moins perdre en nombre de pas de conversion et en précision.

-Distance de l'aimant au CI et donc aux capteurs HALLP1000307

Si j'appréhende toutes ces causes possibles, je me fais déjà un peu peur, mais il faut bien essayer, et il a fallu le faire.

8 Les errements

Toutes les erreurs citées ont été vérifiées sur un ancien montage d'essais équipé des 4 capteurs HALL à 90° modifié en conséquence, puis avec un deuxième montage à 3 capteurs à 60° (=120°) cette fois, mais les distances à l'aimant étaient trop faibles et donnaient des déformations non négligeables de la sinusoïde. 
Photo du premier montage à 4
P1000455capteurs et du 2ème à 60°.

Sur ce 2ème montage est apparu un point zéro légèrement différent d'un circuit à l'autre, qui a nécessité de faire le zéro de 2.5V séparément sur chaque amplificateur, ce qui n'avait pas été prévu à l'origine et nécessitait de reprendre le schéma des circuits correspondants. (Il ne faut pas oublier qu'un petit écart de point milieu amplifié par un gain important donne de grandes variations …)

Tous ces aléas ont fait que pour contourner tous ces problèmes et mettre un terme au prototypage, j'ai réalisé cette fois une version à 4 capteurs à 45°soit 135° total (Pb des poteaux et des intervalles !!!)recouvrement8_et_delta

J'ai alors eu à amplifier un peu plus les signaux pour que  l'étendue de mesure soit de 5V environ (A voir par la suite la définition du nombre de pas).
Au final j'ai pourtant modifié la version à 4 capteurs en 2 capteurs pour simplifier au vu des délicats  raccordements de courbes qui nécessitent une explication, car c’est en voyant les dernières courbes de relevés systématiques sur 360° que j’ai finalement bien compris tout l’enjeu et la difficultés des raccordements de courbes.
Je m’explique sur ce sujet :

Lorsque l’on atteint un sommet ou presque, la courbe a tendance à s’aplatir juste avant de changer de courbe.
Lorsque l’on change, (que ce soit pour changer de pente ou de garder la même), la courbure va se trouver inverse et donc, il va y avoir nécessairement un accident dû au manque de linéarité, puisque avant de changer on diminue le niveau réel, alors qu’après on va l’augmenter.

Cette courbe verte représente  la différence angulaire entre le relevé réel sur le disque et les valeurs calculées.

C'est à la vision de cette courbe que j'ai décidé d'abandonner la version à 4 capteurs à 45° pour repasser à 2 capteurs à 90°, car j'ai seulement compris que la courbe violette ne peut pas avoir une autre apparence, et que la seule solution est de réduire le parcours sur une sinusoïde, ou en d'autres termes à aller vers des sinus plus faibles que 0.7 comme c'était prévu à l'origine de ce dernier montage à 4 fois 45°.

Mais c'est trop tard je ne reviendrai pas en arrière, déjà pour les difficultés de réglages, mais aussi pour les éventuelles dérives en température qui ne sont pas traitées ici.

Le circuit pouvait ainsi être modifié très simplement et j'ai préféré remettre en ordre les différents capteurs pour ne pas me faire piéger, mais il aurait été possible de tout laisser ainsi et de tout corriger au niveau programme...

La courbe verte indique clairement que les inversions de pentes sont à l'origine de chaque changement et qu'il ne serait jamais possible de faire mieux dans ce contexte précis.

La courbe violette représente les degrés lus sur le disque gradué. On y voit face à la ligne droite noire, les accidents à chaque recouvrement. L'échelle n'est pas trop représentative, c'est pourquoi la courbe verte a été ajoutée. On voit également les points d'inflexion qui coupent la droite théorique (noire)

Quand à la courbe verte, ce sont des pas mesurés sur l'échelle Y auxiliaire (à droite du graphe).

On peut également voir, courbes rouge et bleue le niveau de sortie des 2 AOP mesuré en pas et que les saturations haute et basse sont parfaitement symétriques. Cependant on constate bien les courbures assez prononcées juste avant les saturations.
Ce sont ces fortes courbures qui causent les plus importantes divergences et accidents de mesures.

9 Conclusions

Je pense que la conclusion est évidente, il s'agit bien d'un PROTOTYPE qui n'a pas donné tout ce que j'en attendais, mais c'était prévu et ça a eu le mérite de me tenir au chaud durant les longues journées d'hiver, et d'apprendre toujours un peu plus sur des principes méconnus.

Pour être un peu plus précis, je dirai qu'un problème de stabilité se situe dans les capteurs eux-mêmes et la nécessité de bien les immobiliser pour que les niveaux de sortie soient stables.

L'autre problème important est dû au principe même de prendre la partie presque droite d'une sinusoïde, ce qui est faux en absolu, mais cette solution pourrait être abondée par un algorithme corrigeant les extrémités proches des calottes. C'est un autre sujet que je ne traiterai pas, car je préfère ne pas perdre mon temps sur des sujets qui ne sont pas à ma portée directe ou qui prendraient beaucoup trop de temps.

Associé au problème précédent est le délicat problème du raccordement de courbes dont les extrémités sont opposées en sens de variation, ce qui conduit à un saut de valeurs souvent inacceptable, lors du passage d'une valeur de courbe à l'autre courbe.

Concernant ce raccordement des courbes, avec les valeurs mesurées associées au type rencontré, il devrait être possible de créer une table de correspondance réelle pour les degrés, mais ce sujet est trop vaste et je préfère ne pas m'aventurer dans les méandres de la précision absolue, d'autant que la température risque de causer d'autres dérives....

Alors je livre simplement mes essais, mais à chacun d'en  tirer le meilleur de ce qui l'intéresse !

bricolsec