Après une présentation sur le matériel Arduino, suivie d’une activité pratique, voici le temps de connecter notre petit matériel vers l’extérieur et de commencer à faire des mesures dans le monde analogique: ce n’est pas toujours facile ! Table des matières 1) 2) 3) 4) 5) 6) Le convertisseur analogique / digital (A/D) Les recommandations de câblage Les différents amplificateurs isolés galvaniquement La mesure de courant Les jauges de contraintes Les capteurs reliés directement à un bus de données 1) Le convertisseur analogique digital (A/D) Quelques paramètres: a. La plage de mesures. Il y a des convertisseurs qui fonctionnent dans une plage de: 0-5V -> Adapté à l’alimentation du microcontrôleur 0-10V -> Un meilleur rapport signal / bruit -10V / + 10V -> Bipolaire. Ratio métrique -> On fournit au convertisseur la mesure de la tension de référence aux bornes du capteur, cette tension peut varier légèrement (compensation des chutes de tension dans les câbles, etc.) b. La vitesse de conversion Il existe des convertisseurs très rapides, d’autres très précis, c’est toujours un compromis entre vitesse, résolution et …. prix ! c. Le « sample and hold » Quelques fois, on doit mesurer un signal à un instant très précis. Le convertisseur est incapable de convertir la tension à cet instant précis. De plus, la commande software ne connaît pas forcément cet instant. On va donc prendre un échantillon à cet instant précis, mémoriser de manière analogique la valeur. On aura ainsi le temps d’effectuer une conversion précise “off line” Cas particulier le « peak and hold »: c’est la mémorisation de la valeur maximum. Du point de vue électronique, c’est tout un art ! d. La résolution. Supposons que je veuille construire un pèse-personne. Échelle de mesure 0-> 100 Kg, résolution 0,1 Kg. On prendra une résolution 20 fois meilleure que la précision que l’on veut afficher soit 100/20 = 5 grammes ! Nombre d’échantillons: 100 Kg / 0,005 = 20000 échantillons -> 15 bits minimum, on est loin de l’Arduino de base… Quelques technologies utilisées: A. Le convertisseur à double rampe en 3 étapes Ce fut la première technologie vraiment efficace. Aujourd’hui, cette technologie est remplacée par le delta sigma. 1) On charge une capacité avec un courant proportionnel au signal à convertir pendant un temps fixe (le temps du comptage complet du compteur) ; 2) On décharge ensuite la capacité, avec un courant constant issu de la tension de référence, jusqu'à annulation de la tension à ses bornes. Lorsque la tension devient nulle, la valeur du compteur est le résultat de la conversion ; 3) On annule enfin la tension aux bornes de la capacité par une série convergente de charges et de décharges (l'objectif étant de décharger totalement la capacité pour ne pas fausser la mesure suivante). On parle en général de phase de relaxation. B. Le convertisseur flash Cette technologie est utilisée dans le cas où l’on a besoin de rapidité, par exemple vidéo, oscilloscope numérique, etc.. C’est diablement rapide, mais… onéreux. C. Le convertisseur delta sigma C’est aujourd’hui une des technologies les plus utilisées pour des conversions précises dans le cas où le besoin en bande passante est faible. On trouve couramment des convertisseurs avec une résolution de 24 bits pour quelques dollars. Attention, un convertisseur de 24 bits de résolution ne signifie pas 24 bits de précision. Rappel: pour un convertisseur de 24 bits avec une échelle de 5 V, le LSB vaut: 0.0000003 V soit 0,3 micro volt ! En effet, il y a plusieurs facteurs qui entachent la précision, notamment: ● Le bruit du signal analogique ● Le bruit de quantification ● Le convertisseur n’est pas forcément monotone. ● La référence de tension n’est pas parfaite (bruit, etc) ● La ronflette… . D. Le convertisseur utilisé dans l’Arduino. Le microcontrôleur de l’Arduino contient déjà un convertisseur analogique digital. Ce convertisseur est bien pratique pour des petits montages. Dans d’autres cas, il devra être remplacé par un composant plus performant. C’est un convertisseur basé sur l'approximation successive. La notice technique nous apprend que le temps de conversion est de 13 à 260 us pour une précision de 10 bits. Comme dans la majorité des convertisseurs analogiques digitaux, la fin de la conversion peut générer une interruption sur le microcontrôleur. Remarque: l’utilisation de nombres flottants impose le chargement d’une librairie supplémentaire, consomme beaucoup de mémoire et de CPU ! 2) Les recommandations de câblage La plus belle femme au monde ne peut donner que ce qu’elle a….. Ici, c’est pareil. On a beau avoir de supers beaux capteurs et de bons composants, le câblage a souvent une importance capitale. Par principe, le monde analogique n’aime pas trop la proximité du monde digital, car il y a des inductions parasites et des pointes de courant d’alimentation qui se retrouvent dans la mesure analogique, etc. ● Il convient donc de séparer le plus possible les circuits, notamment la masse «analogique» de la masse «digitale». On essayera également de blinder le circuit analogique. ● Pour des raisons de rapport signal / bruit, on travaillera avec des tensions les plus élevées possibles. On préfèrera donc travailler si possible avec une référence de 10 V plutôt que 3,3 V, etc. ● Pour lutter encore contre le bruit, on travaillera avec la bande passante la plus faible possible. On peut également mettre en place un filtre qui atténue le 50 Hz. 3) Les différents amplificateurs isolés galvaniquement Aujourd’hui, plusieurs technologies existent pour mesurer un signal dont le point de référence ne correspond pas au point de référence du convertisseur analogique digital. Tout d’abord, il faudra choisir si on effectue l’isolation du côté analogique: … Ou du côté digital: Bien sûr, c’est plus facile d’effectuer l’isolation du côté digital, mais on ne peut pas toujours le faire. Cela suppose de pouvoir alimenter de l’électronique du côté isolé, ce qui n’est pas toujours évident. Comme nous allons le voir, les méthodes de transmissions ne manquent pas, chacune a ses avantages et ses inconvénients. A. Utilisation d’un ampli différentiel. Bien que cela ne constitue pas à proprement parlé un isolement, mais, avec la très grande amélioration des amplificateurs opérationnels, il est possible de mesurer un signal dont le potentiel de référence est très loin de la masse du circuit analogique. Attention ! le comportement en dynamique, par exemple, sur un hacheur de puissance n’est pas forcément très bon. B. Transmission capacitif. Le principe est d’avoir un étage d’entrée comportant un amplificateur opérationnel, celui-ci est suivi d’un convertisseur analogique digital avec une sortie série. On passe l’information de manière capacitive de l’autre côté de la barrière d’isolement et on reconstitue le signal analogique. Cette technique fonctionne bien pour des fréquences élevées (typiquement 20 kHz) et 2,5KV d’isolement). Il faut alimenter les 2 côtés de l’amplificateur d’isolement, quelques fois il y a un petit convertisseur dans le composant… De plus, il ne faut pas oublier qu’à 10 MHz, une impédance de couplage de 10 pF représente une impédance de seulement 1,6 K Ohm…. Lorsqu’il y a des fronts très raides entre les 2 sources comme par exemple dans les hacheurs d’alimentation à découpages, cela provoque des transmissions parasites qui produisent des erreurs en sortie. Cette technologie est, par contre, indépendante des champs magnétiques. C. Transmission magnétique Ici, on module le signal analogique pour obtenir un signal alternatif que l’on peut appliquer à un transformateur. Un autre transformateur est en général utilisé pour fournir l’alimentation du côté à isoler. Les performances de bandes passantes sont meilleures que l’isolement capacitif. La consommation est relativement faible, mais il y a une sensibilité aux champs magnétiques externes. Cette technologie présente une immunité face aux champs électriques. D. Transmission optique On utilise dans cette technologie un optocoupleur constitué d’une led et de 2 photos diodes. On suppose que les 2 photos diodes sont identiques. On utilise une photo diode pour la contre-réaction de l’étage d’entrée. Cette technologie, un peu ancienne, est toujours délicate à mettre en œuvre, car il est difficile de compenser l’offset. De plus cet offset bouge un peu dans le temps. La bande passante est faible, la consommation est élevée, mais il y a une immunité face aux champs électriques et magnétiques. En résumé, il est très difficile de réaliser un amplificateur d’isolement de qualité. J’ai eu à en développer un pour un analyseur de spectre du réseau 220 V. Eh bien ! C’était très chaud pour obtenir les performances désirées. Si je me souviens bien la bande passante allait du continu à 200 KHz avec -0,1 dB d'atténuation….. 4) Les mesures de courant Depuis que l’électronique existe, il faut mesurer des tensions et des courants. Ces derniers temps, principalement dû aux besoins de miniaturisation, les techniques mises à disposition ont explosé. A. La mesure directe (par un shunt) Même si la masse de la mesure est la même que la masse du shunt, on utilisera dans la plupart des cas une mesure par amplificateur différentiel. Ainsi, on évitera les boucles de masses et tous les problèmes inhérents. Si la tension sur le shunt est faible, il faudra prendre garde à l’offset de l’amplificateur opérationnel L’alimentation de l’amplificateur devra être bipolaire. B. Utilisation d’un amplificateur différentiel supportant un très grand mode commun. Les fondeurs de circuits intégrés ont développé des techniques pour mesurer des courants à des tensions jusqu'à 80 V. Les tensions d’offset sont très faibles. En interne, il y a des commutateurs pour mesurer et annuler cet offset. La bande passante n’est pas très élevée. Voici un exemple de chez Adafruit: sortie en I2C directe, librairie fournie, mesure jusqu’à 3,2 A tension max 26 V, 12 bits environ 600 us pour l’acquisition. On voit à peine le circuit intégré…. Un autre avec 80 V d’isolation et 200 KHz de bande passante sortie analogique. C. Mesure de courant indirecte utilisant la mesure du flux magnétique Selon notre vieille règle des trois doigts, un courant produit un champ électrique et électromagnétique. Ces 3 champs sont perpendiculaires entre eux. Le principe est basé sur un capteur à effet Hall qui, avec un courant constant, produit une tension proportionnelle au champ magnétique (crée par le courant a mesuré) appelée tension de Hall. Il existe 2 différentes techniques: 1) La mesure de flux On mesure le flux et on en déduit le courant. C’est la mesure la plus simple, la bande passante est d’environ 25 KHz, mais elle est un peu moins précise pour les faibles courants. Il existe plusieurs gammes de produits utilisant cette technologie. Plusieurs astuces existent pour diminuer la tension d’offset, dû entre autres à la rémanence du matériel magnétique. Quelques composants sur le marché: Attention ! Il existe 2 modèles de circuit imprimé: le premier qui est fait pour les faibles courants et le second pour le 5 A. Celui pour les faibles courants est très mal fait, il a un amplificateur pratiquement inutilisable, beaucoup trop de bruit et de dérive. On peut changer le circuit intégré et monter jusqu’à 30 A. Isolation 2,1 KV bande passante: 80 KHz résistance 1,2 milli ohm. J’ai une bonne expérience avec ces circuits. Lem produit également un capteur avec la même technologie: Courant mesuré de 100 A, 45 KHz de bande passante, alimentation 0-5V, isolation 2 KV 2) La compensation de flux Ici on cherche à annuler le flux créé par le courant à mesurer avec une bobine alimenté par un amplificateur. L’amplificateur commande la bobine en opposition avec le flux mesuré par un capteur à effet Hall. On cherche à n’avoir aucun flux dans le circuit magnétique. C’est ce que l’on appelle un transfo shunt ou capteur Lem. La sortie est un courant proportionnel au courant d’entrée comme dans un transformateur d’intensité. Depuis quelques années, Lem a des concurrents. Comme on l’a vu, Lem produit également des capteurs style “boucle ouverte” 5) Les jauges de contraintes a. Principe et ordres de grandeurs Voici un bref aperçu sur l’utilisation des jauges de contraintes (en anglais “load cell”). Les jauges de contraintes sont des résistances qui varient avec l’effort appliqué dessus. En effet, la résistance d’un conducteur est proportionnelle à sa longueur et inversement proportionnelle à sa section: Si on applique une force sur une jauge de contrainte, la longueur du fil va augmenter, sa section, en conséquence, va diminuer. Le résultat est que la résistance va augmenter. Oui, mais de combien va varier la résistance ? La pièce mécanique sur laquelle le capteur est fixée doit être utilisée dans sa plage linéaire… Sans entrer dans des calculs compliqués, on se rend vite compte que l’augmentation de longueur de la jauge de contrainte est très faible et donc que la variation de résistance sera malheureusement elle aussi très faible. b. Influence de la température Tout conducteur soumis à une variation de température verra sa résistance varier. En choisissant correctement le conducteur, on pourra minimiser l’influence de celle-ci mais comme la variation de la résistance est faible, l’influence de la température risque de ne pas être négligeable… Pour contrer ce phénomène, on peut intégrer une compensation de température dans notre code sur notre Arduino préféré… On préfèrera utiliser les jauges par couple. On utilise à chaque fois 2 jauges: une jauge soumise aux contraintes mécaniques et l’autre uniquement pour la compensation thermique. c. Le montage en pont de Wheatstone Remarque R4 pourrait très bien être une jauge de compensation thermique. d. La sensibilité du montage Ici, on n’a pas beaucoup de chance… La variation de résistance étant faible, la variation de tension récoltée aux bornes du montage sera faible également. On parle usuellement d’une sensibilité de 2 mV par V d’excitation pour une charge maximum, soit une dizaine de mV de déviation (avec un offset de plusieurs volts). C’est donc vraiment très faible !!! d. Étage d’entrée Avec une variation de tension aussi faible, il conviendra de soigner tout particulièrement l’étage d’entrée afin de minimiser les erreurs de mesures. On utilisera donc un ampli différentiel en choisissant avec soin l’amplificateur d’instrumentation. On contrôlera notamment: . ● La réjection en mode commun ● Le bruit ● Le gain ● L’offset ● La dérive de l’offset avec la température. e. La conversion analogique digitale Particulièrement dans ce type de mesure, il conviendra de bien choisir le convertisseur. Sur le marché, il existe des bons circuits pas cher. Ce circuit présente les avantages suivants: ● Alimentation en 5 V. ● Consommation très faible. ● Entrées différentielles. ● On peut imposer le point chaud et le point froid de la référence. Ainsi, il est possible de compenser les pertes dans les câbles d’alimentation des sondes. ● Il est possible d’amplifier l’entrée. ● Très faible bruit. ● Filtre programmable 50 / 60 hz. ● Convertisseur 24 bits dont 19,5 utilisables. ● Sortie sur le port SPI. Analogue Device a même une carte d’évaluation sous forme de “shield” Arduino: La carte d’évaluation est très bien faite sur le plan de la réalisation électronique. Par contre, du point de vue logiciel, les standards actuels ne sont pas respectés, en particulier, les accès au bus SPI n’utilisent pas le mode transactionnel et, par conséquent, rendent difficile la présence d’autres périphériques SPI sur ce bus. J’ai réécrit une librairie qui permet entre autres d’avoir plusieurs balances... 6) Les capteurs reliés directement a un bus de données Aujourd’hui, les microcontrôleurs tels que l’arduino, mais aussi la plupart de ceux-ci comme le Raspberry et autres, supportent en natif des bus de données dont principalement le bus SPI, I2c et OneWire. Ce ne sont pas les seuls bus, il en existe d’autres ! Il appartient au technicien de vérifier la fidélité du capteur, la compatibilité avec le bus de données sans oublier de contrôler si l’alimentation est en 3,3 V ou 5 V. Les développements électroniques pour les smart phones ont permis, par exemple, d’obtenir des boussoles, inclinomètres et autres accéléromètres pour des sommes de 10 $ alors qu’il y a quelques années leurs prix variaient entre quelques centaines à quelques dizaines de milliers $! Rappelons les caractéristiques principales de ces 3 bus: Le bus SPI: ● Une ligne d'horloge, ● une ligne de data pour le master (MOSI) ● une ligne de data pour les esclaves (MISO) ● une ligne pour chaque périphérique (chip select) ● Bus très rapide mais courte distance ● Pas d'acquittement ● Librairie pour Arduino On voit que le bus est assez simple d’utilisation, il existe des librairies qui intègrent ce protocole. Malheureusement, la synchronisation avec l'horloge peut être soit sur l’état haut soit sur l’état bas. Pour cette raison, Arduino a développé une librairie transactionnelle pour faciliter l’adressage de plusieurs périphériques de différents types sur le même bus. Il existe, malheureusement, d’autres bus “maisons” dont le protocole est plus ou moins décrit, avec différentes versions. C’est le cas pour les stations météo par exemple. L’effort de « retro engineering » peut être très important pour utiliser un capteur bon marché... On trouve principalement les capteurs suivants: ● Pression (Honeywell) ● température ● Sonde à effet Hall Bus I2C ou IIC: ● Seulement 2 lignes de contrôles ! ● Bus normalisé: pas besoin de transaction ● Il faut ajouter des résistances de pullup ● Configuration à plusieurs maîtres possibles ● 128 périphériques possibles ● Librairie pour Arduino On trouve principalement les capteurs suivants: ● Température ● Température de la couleur ● Pression barométrique ● Capteur de distances à ultrasons ● Inclinomètre ● Accéléromètre ● Boussole Le bus « OneWire » ● Une seule ligne de données ● Mode parasite possible: le périphérique est alimenté par la ligne de data…. ● Utilisé principalement pour des capteurs de température ou des interrupteurs. ● Chaque périphérique a une adresse unique gravée dans le « chip ». Le DS18B20: Voilà, pour cette présentation ! Les techniques de mesures sont toujours très intéressantes à étudier et à mettre en pratique. Aujourd’hui, il existe des capteurs spécialisés de toutes sortes, comme pression atmosphérique, humidité, etc. sans compter les capteurs biométriques. Il faut toujours faire très attention de ne pas perturber les mesures. Des circuits ultra performants sont disponibles chez les fournisseurs, encore faut-il les utiliser à bon escient !