*************Pour revenir à la page d’accueil http://a110a.free.fr/SPIP172/plan.php3****************
Pour ceux que l’Arduino intéresse :
http://a110a.free.fr/SPIP172/articl...
****************************************************
Le principe de fonctionnement cette jauge capacitive ou résistive (au choix) est décrite en détails dans http://a110a.free.fr/SPIP172/articl...
La même architecture est reprise ici mais avec un Arduino Nano au lieu d’un Pic ce qui simplifie le câblage. On peut donc se contenter d’une plaque perforée et de soudure point à point.
Version du 7-3-2016, corrige la précédente.
L’intérêt d’utiliser un Arduino est double :
— pas de nécessité d’un circuit imprimé
— coût très réduit, moins de 10€ pour l’ensemble des composants ( le Nano Arduino et son câble se trouvent pour moins de 4€ sur le Net)
De plus la programmation s’effectue depuis un PC via un câble USB (fourni avec le Nano en général, sinon c’est du mini USB standard).
Un peu plus propre avec un circuit imprimé
Le typon est en .jpg, échelle 1, donc imprimable ( imposer l’échelle 1 à l’imprimante au besoin) sur un transparent et directement utilisable.
Autre variante du typon en pdf . Sil réclame un mot de passe, c’est "typon".
La méthode d’attaque du cuivre au mélange acide chlorhydrique + eau oxygénée 130 volumes ( ou encore 35%, autre appellation ) , est hautement recommandée, voir les détails sur ce même site :
http://a110a.free.fr/SPIP172/articl...
L’intérêt d’utiliser un Arduino entre l’un de ces capteurs et le cadran est que tout capteur convient alors à tout cadran.
En prime, on gagne précision et stabilité dans la position de l’aiguille du cadran.
Elle est constituée de deux tubes en laiton ou cuivre ou tout métal conducteur, concentriques, collés à l’epoxy.
Par exemple, diamètre extérieur du petit tube 6 mm, diamètre intérieur du gros tube 8 mm.
Vers le milieu du tube extérieur, percer un trou et mettre un peu d’epoxy :ceci évite les contacts indésirables entre les tubes dus aux vibrations.
Pour bloquer l’entrée de débris entre les deux tubes, NE PAS percer plusieurs trous le long de la jauge mais seulement 1 en bas et 1 en haut. Protéger ces trous par du grillage style poulailler, collé à l’epoxy.
Voir aussi http://a110a.free.fr/SPIP172/articl...
Avec du fil de cuivre vernis de récupération (ici fil d’un compresseur d’avertisseur à trompe , diamètre 1 mm ) on réalise deux tresses d’environ 400 mm de long, dépendant du reversoir bien sur.
Le diamètre du fil n’est pas critique, 0.5 mm ou 1.5 mm iraient très bien aussi par exemple.
Utiliser deux morceaux de 500 mm ou une morceau de 1 m replié en deux dont on coupera l’extrémité : les deux fils de la tresse sont indépendants et constituent les deux armatures d’un condensateur d’une valeur de l’ordre de 75 pF pour 400 mm.
Pour la petite histoire, c’est sur ce principe que fonctionnent certaines sondes d’humidité implantées dans les murs de la grotte de Lascaux...
Le logiciel est ici
Aller chercher l’environnement logiciel officiel Arduino gratuit sur :
https://www.arduino.cc/en/Main/Software
Une fois installé cet environnement, renommer le logiciel JcapResduino de .txt en .ino et le placer dans le répertoire de l’environnement Arduino.
\Mes Documents\Arduino (pour Windows, pour Mac ?)
Connecter le câble USB entre PC et Arduino.
( Noter que pour les Nano à 3€, en général pas de puce USB FTDI mais une puce CH340G. Pour le driver aller sur :http://www.arduined.eu/ch340g-conve..., dezipper, ouvrir CH341 puis clic sur SetUP.exe.
Dans OUTIL, TYPE DE CARTE indiquer le type d’Arduino puis le port COM, ici Nano et COM 3 )
Concernant la bibliothèque TimerOne, l’installer dans le répertoire Arduino\libraries.
Pour cela localiser le répertoire Arduino sur le disque par un clic sur FICHIERS, clic sur PREFERENCES, et il apparaît le chemin du répertoire Arduino.On y trouve les librairies de base déjà installées, comme LiquidCrystal pour les LCD.
Aller sur https://code.google.com/archive/p/a..., choisir la première ligne puis extraire et placer le tout sous \Arduino\libraries .
Il suffit alors de "téléverser le sketch JcapResduino" ( jargon Arduino pour compiler puis programmer la puce automatiquement) avec le logiciel JcapResduino).
Déconnecter le câble USB, c’est terminé pour la programmation (me contacter si vous voulez que j’effectue cette programmation sur votre Arduino philippe.loutrel@laposte.net ).
Lors de la phase d’initialisation, ( décrite ci après ) le logiciel détectera le type de capteur connecté : soit une jauge capacitive soit un capteur classique résistif.
Ces derniers sont de deux types différents suivant que, capteur non connecté, le cadran affiche 0 ( par exemple Alpine A110 1600S ) ou au contraire, le maximum 4/4 ( par exemple Alpine A110 1300G ).
Mais l’on ne s’en souciera pas car le logiciel détecte et s’adapte à ces deux types de capteur.
Cette phase est à effectuer une seule fois, à la première connexion sur l’auto : CAPTEUR HORS DU RÉSERVOIR, c’est à dire à sec. Pour un capteur résistif, le flotteur doit être en position ’pendante’ au maximum.
— Appuyer sur le bouton poussoir RESET situé sur l’Arduino, et le maintenir appuyé
— Appuyer sur BP2 et le maintenir appuyé
— Relâcher RESET puis relâcher BP2 : les 4 leds flashent.
— Pour un capteur résistif bien s’assurer que le flotteur est en bas de sa course. Appuyer sur BP2 pour enregistrer cette valeur (dans la mémoire EEPROM de l’Arduino ).
Cette phase est terminée, le logiciel a détecté puis enregistré le type de capteur et sa valeur à sec.
De plus il a effectué un PRE-ETALONNAGE du cadran qui va être corrigé comme suit, une fois le capteur installé dans le réservoir.
L’étalonnage du cadran et du niveau d’essence sont indépendants.
A la mise du contact on constate que l’aiguille grimpe de 0 à 4/4 en 4 étapes, avec arrêt d’une seconde environ (les 4 leds suivent la même progression).
Une fois l’aiguille stabilisée :
— pousser BP1 (puis le relâcher, ce sera implicite dans la suite), la led L1 s’allume
— pour sélectionner L1 (c’est à dire afficher l’aiguille sur 1/4) pousser BP2 : L1 flash
— en maintenant BP1 enfoncé on déplacé progressivement l’aiguille depuis 0 jusqu’au maximum.
— quant l’aiguille est sur la graduation 1/4, relâcher BP1.
Si l’on a dépassé la position désirée, continuer à pousser BP1, une fois arrivée au maximum, l’aiguille reviendra à 0 puis recommencera son déplacement
— Finalement, enregistrer cette position 1/4 en poussant BP2.
— L2 s’allume, prête à étalonner la position 2/4 de l’aiguille si désiré.
En poussant BP1 plusieurs fois on circule dans les leds qui s’allument et s’éteignent : L1,2,3,4,1,2....
En poussant BP2, on sélectionne la led qui flash alors , puis une nouvelle pression sur BP2 enregistre la valeur dans l’Arduino.
Couper le contact
Vérification de l’étalonnage du CADRAN
Mettre le contact, on doit voir l’aiguille se déplacer vers 1/4, y rester une seconde puis 2/4 etc.
Après 4/4, l’aiguille revient indiquer le niveau d’essence.
1--Mettre 10 l dans le réservoir puis contact mis attendre la stabilisation de l’aiguille ( ignorer la valeur lue )
2--Pousser BP2 et le relâcher : L1 s’allume
3--Pousser BP2 pour sélectionner L1 qui flash
4--Vérifier que le niveau d’essence est bien stabilisé puis pousser BP2 pour enregistrer. L1 s’éteint L2 s’allume
5--Ajouter 10 l puis pousser BP2, L2 flash
6--Pousser BP2 pour enregistrer, L2 s’éteint L3 s’allume
7--recommencer 5 et 6 pour 30 l et 40 l
8--Couper le contact
Si nécessaire, en poussant BP1 plusieurs fois on circule dans les leds.
Note sur les étalonnages
Comme les étalonnages du cadran et du niveau sont indépendants, on peut si nécessaire modifier l’étalonnage soit d’un point du cadran, soit d’un niveau d’essence.
Exemple : On considère que le niveau actuel affiché entre 2/4 et 3/4 devrait correspondre plutôt à un affichage de 2/4.
On entre en mode étalonnage CADRAN en poussant BP1, L1 s’allume. On pousse BP1, L2 s’allume, on sélectionne par BP2, L2 flash.
En maintenant BP1, on amène l’aiguille exactement sur 1/2 et on enregistre avec BP2.
Et bien sur il existe une infinité de tutos gratuits sur le Net.
Bonjour Elberto
oui c’est tout à fait possible en reprenant le programme.
Avant de te lancer , compare avec JcapRes-duinoBluetooth, plus simple (pas de gestion de boutons poussoirs, toujours un peu merdique).
Cette version serait peut être preferable à modifier.
Quand ça fonctionnera tiens nous au courant, on mettra une photo et ton code sur le site...
Bonjour,
Très sympathique votre montage et correspond presque à ce que je voudrais. Au lieu de 4 niveaux de réglage, j’aurai besoin de 6 niveaux. D’après ce que j’ai compris, celà devrait être possible en rajoutant 2 LED, et en modifiant le code.
Est ce que vous pouvez me confirmer que c’est bien possible ?
Cordialement
Bonjour Philippe et à tous,
Ben voilà, j’ai la réponse à ma question. Une subtilité m’avait bien échappée !!!
J’avais considéré l’entrée A0 comme étant un voltmètre, hors cette broche n’est pas aussi "inerte" que ne l’est l’entrée à haute impédance d’un voltmètre. Si on se contente de décharger l’ensemble des condensateurs en passant A2 au niveau LOW, les capacité fixes (parasite + 220 pico F) ne se déchargent pas ... et on obtient à peu près n’importe quoi. Le système fonctionne une fois à la mise sous tension, et donne des valeurs cohérentes quand on augmente la "capacité jauge" mais plus du tout si on la diminue :-( Le fait de faire un RESET ne change rien, cela ne "remarche" qui si on coupe l’alimentation et qu’on remet sous tension ...
J’avais sorti la boite de l’oscilloscope et cette nuit, Bon sang mais c’est bien sûr : la deuxième décharge, c’est elle qui finit le job.
Et 4 lignes de code en plus plus tard, et CA MARCHE !!!!
Encore merci Philippe pour cette application aussi élégante que simple (cela va souvent ensemble) dans sa réalisation mais très subtile dans son principe.
Le schéma du diviseur capacitif a beaucoup éclairé le sujet. Une petite couche sur la nécessité de la deuxième décharge éviterait aux gars qui comme moi ne recopient (presque) jamais les codes publiés mais préfèrent partir de l’idée et faire leur propre sauce ... de se perdre en suppositions quelquefois hasardeuses :-)
Michel
OUPS, le code passe mal ...
Un autre essai :
cpt = 1 ;
v_tension = 0 ;
while (cpt < 51)
digitalWrite(pin_Charge_Decharge, HIGH) ;
delay(1) ; // largement suffisant pour avoir la charge maxi !
v_tension = v_tension + analogRead(pin_jauge) ;
digitalWrite(pin_Charge_Decharge, LOW) ;
delay(1) ; // largement suffisant pour avoir la décharge complète !
cpt = cpt + 1 ;
v_tension = v_tension / 50 ;
Pas terrible, mais compréhensible, il doit y avoir une meilleure méthode montrer le code ...
Michel
Bonjour Philippe et à tous,
Je ne change pas d’avis après une nuit où mon cerveau a travaillé à l’insu de mon plein gré ... Le principe du diviseur de tension capacitif est lumineusement simple .... dans le principe (Prudence est mère de sureté disait mon grand père !).
Juste avec ce principe et sans code ARDUINO d’un tiers sous les yeux, j’aurais fait la chose suivante :
cpt = 1 ; v_tension = 0 ; while (cpt < 51) digitalWrite(pin_Charge_Decharge, HIGH) ; delay(1) ; // largement suffisant pour avoir la charge maxi ! v_tension = v_tension + analogRead(pin_jauge) ; digitalWrite(pin_Charge_Decharge, LOW) ; delay(1) ; // largement suffisant pour avoir la décharge complète ! cpt = cpt + 1 ; v_tension = v_tension / 50 ;
Avec le montage de Philippe, la seule valeur qui m’intéresse c’est la tension A0, A1 est réputée valoir 1023 à la fin de la charge Ce sont les couples tension A0 / nb de litres qui constitueront ma table d’étalonnage.
Une subtilité m’aurait-elle encore échappée ???
Et merci encore à Philippe ... Michel
Fabuleusement élégant ... ce qui confirme donc que je n’avais pas saisi la subtilité de l’affaire :-(
Je complète ma réponse après approfondissement, mais je sens bien vers où vont s’orienter mes expérimentations !
Pour l’application "jauge", on se moque des valeurs réelles (ce qui n’est pas le cas pour un capacimètre) car on passe par une phase d’étalonnage. Ce qui compte, c’est la reproductibilité des mesures ....
Merci Philippe,
Michel
PS : Pour avoir de l’essence plombée, c’est pas difficile ... Il suffit d’aller rencontrer l’Aéroclub le plus proche en expliquant la bizarrerie de la demande et je serais étonné qu’on ne vous laisse pas remplir des bidons de 100 LL.
Une précision, il faut choisir un petit aérodrome, sans digicode et autres contrôles d’accès, à l’écart des préoccupations Vigipiratesques. Le plus proche est rarement à plus de 50 km ... à vol d’oiseau of course :-)
Bonjour Michel
très intéressantes tes explications sur la question des jauges à essence d’avion...Il y a donc encore de l’essence plombée si on sait la trouver !
Culpabilisé par tous ces détails, je me suis fendu d’un "Comment ça marche" en annexe de l’article montrant l’intérêt d’un diviseur de tension capacitif par rapport à la classique mesure du temps de charge/décharge d’une capa.
Ton integration sur 50 mesures, effectuées disons toutes les secondes, devrait donner une valeur précise du niveau restant.
Surtout tiens nous au courant de tes développements, on pourra les publier ici.
PS
Le maillon faible de ce montage n’est pas du tout électronique mais bien la qualité de la réalisation mécanique des tubes concentriques :
isolés à l’epoxy et surtout avec un tamis/grillage à chaque extrémité pour filtrer les impuretés et même l’eau éventuelle (par capillarité) si la maille est très fine.
Bonjour à tous,
Merci Philippe de partager tes trouvailles ...
Contrairement à la majorité de ceux qui fréquentent ce forum, je ne suis pas un fana de voitures mais plutôt d’engins volants.
Je vole en particulier avec un MCR 01 que j’ai construit et le régime administratif des avions de construction amateur permet un certain nombre de raffinements électroniques (instruments ou adaptation) impossibles à faire avec les avions "industriels" certifiés.
Les cartes ARDUINO font partie depuis quelques années de mes outils favoris et, Philippe, ils sont parfaitement à leur place dans une machine volante !!!
En lien avec le sujet JCAP-RESduino j’ai fait une fonction (entre autres que gère une carte MEGA 2560) qui lit une jauge capacitive avec un affichage numérique, d’une précision diabolique. La jauge est du genre de celle-ci : http://www.aircraftspruce.com/pages/in/fuelinstrumentation_skysports/skysportfuelsys.php La précision vient du fait que c’est un réservoir central aux formes non torturées. La façon la plus sûre de connaître la quantité d’essence dans ce réservoir est le bâton étalonné-gradué qui ne ment jamais .... au sol ! Le dispositif Arduinesque est toujours en accord avec le bâton au sol, et il n’y a pas de raison de ne pas lui faire confiance en vol ... De plus, j’ai un calculateur de carburant, qui "décompte" le carburant au fur et à mesure de sa consommation. Et quand la jauge et le calculateur sont d’accord (à un ou deux litres près) le pilote est content !
Pour cette réalisation, j’ai procédé "à la fainéante", c’est à dire que j’ai conservé l’instrument à aiguille (inexploitable) où j’ai "piqué" le signal (une tension). Ensuite remplissage des 80 litres 5 par 5, avec relevé des tensions "numérique" lues par l’ARDUINO pour l’étalonnage, et l’affaire est dans le sac.
Mais, pour la suite, je projette une réalisation un peu plus compliquée pour un avion qui a les réservoirs dans les ailes. Ce type de réservoirs présente des avantages, mais c’est le cauchemar du "jaugeur" ! Le bâton étalonné-gradué n’est pas exploitable du fait de la forme "à plat" du réservoir qui rend le jaugeage très sensible à l’inclinaison de l’avion au sol. Cet avion est équipé de deux jauges capacitives placées "en diagonale" dans les réservoirs avec des indicateurs à aiguille qui disent à peu près n’importe quoi. Cet avion est fort heureusement équipé d’un calculateur de carburant et la seule solution pour savoir assez précisément ce qui reste comme carburant et de partir avec les pleins et de tenir bien à jour les décomptes pour chaque réservoir ...
Ce que j’espère, c’est que du fait de la capacité d’intégration de la mesure ARDUInesque on puisse avoir en vol une mesure de meilleure qualité qu’au sol, car en vol, en moyenne, l’avion est à l’horizontale. Sur mon avion, où l’essence balotte pas mal en vol, chaque mesure vient au sommet d’une pile de 50 mesures en chassant celle qui avait été faite 50 cycles plus tôt. La valeur affichée est la moyenne des 50 valeurs collectées sur une quinzaine de secondes.
Voilà pour le contexte .... Allons un peu dans le "dur" :-)
Je ne veux pas procéder "à la fainéante" en laissant en place les indicateurs à aiguille, pour des raison d’élégance et aussi parce qu’il faut trouver la place pour l’afficheur de 2x16 caractères ..... Donc il faut trouver le moyen de traiter les jauges capacitives "brutes" ....
J’ai pensé en premier à la solution basique consistant en un oscillateur, ce cher 555 par exemple en montage astable attaquant un autre 555 monté en monostable, dont la sortie est basiquement intégrée par un circuit RC. Quand la capacité de la jauge varie, la fréquence varie et la tension résultant de l’intégration varie. L’ARDUINO peut lire cette tension dont il peut d’ailleurs améliorer le "lissage", en enchainant et moyennant une cinquantaine ou une centaine de mesures.
Mais, quand on prend les chiffres, l’ordre de grandeur de la capacité de la jauge conduit à des fréquences comprise entre 50 et 100 kz, si on ne veut pas prendre des valeurs de résistances éléphantesques ... Placé au milieu de divers dispositifs avioniques, radio, transpondeur, EFIS, sans parler du calculateur d’injection, cela pourrait poser des pb. J’emploie le conditionnel, car ce n’est qu’une crainte, je n’ai pas testé.
Et c’est là que je "tombe" (admirativement) sur le forum des Rois de la bidouille où est très précisément traité mon sujet de réflexion .... Et je comprends (ou crois comprendre) que la façon de mesurer la capacité de la jauge consiste, non pas à l’intégrer dans un circuit oscillant, mais à mesurer le temps de décharge du condensateur qu’elle représente. Et je me dis que pour avoir notre résultat il suffit de faire cela une dizaine de fois par seconde et qu’alors s’éloigne le spectre du générateur de parasite ... Une mesure pourrait consister en une charge de la capacité via une broche OUTPUT placée au niveau HIGH pendant le temps "nécessaire", puis en la plaçant au niveau LOW, on déclenche le compteur (avec la fonction micro) qu’on arrête lorsque le tension atteint une valeur proche de 0V choisi de façon arbitraire ....
Ai-je bien compris l’idée du concepteur du JCAP-RESduino ? je n’en suis pas sûr, car je n’ai pas clairement retrouvé dans le code ARDUINO (que je n’ai surement pas suffisamment analysé !) cette logique qui me paraît assez "basique".
Ce qui est certain c’est que je vais essayer :-)
Michel
PS : un détail relatif à la nature du carburant qui ne concerne que les utilisateurs d’engins volant ... Le comportement de la jauge capacitive est significativement différent entre la SP98 et la 100 LL, essence plombée indispensable aux moteurs d’avions légers massivement présents devant les pompes, et dont la conception remonte aux années 50. Le moteur ROTAX qui équipe mon avion a été conçu pour l’essence sans plomb, mais se voit contraint de temps à autre de consommer de la 100 LL ... Avec 2 étalonnages et un choix de carburant, le système ARDUINO se joue de cette difficulté !
SP98 100 LL
Je complète mon message ... Je viens de tomber sur un article passionnant relatif à la réalisation d’un capacimètre avec un ARDUINO.
C’est ICI : http://www.arduinoos.com/2011/11/capacitance-meter-part-1/ (il y a 4 parties)
Cela va très au delà du besoin si on veut se contenter de réaliser une jauge, mais cela fixe bien les idées.
On se moque de la valeur de capaicité de la jauge, seule compte l’association entre le nombre de micro-seconde du temps de décharge et le nombre de litres d’essence dans le réservoir, mais la lecture de la tension via l’AOP en mode suiveur est à retenir ...
Michel
Bonjour,
Article très intéressant. Malgré mes deux mains gauches, je vais essayer de fabriquer cette jauge capacitive pour "mieux" mesurer le fuel qui reste dans le réservoir de mon vieux bateau, un voilier fifty équipé d’un moteur de 62cv...
Un petit souci après avoir lu et relu...
Sur la page consacrée au montage de la jauge ( http://a110a.free.fr/SPIP172/article.php3 ?id_article=29 ) vous précisez : "(...) Percer le tube extérieur de plusieurs trous de diam 3 ou 4mm pour que l’essence ne stagne pas entre les tubes quand le niveau baissera. Ebavurer soigneusement l’intérieur du tube.(...)"
alors que sur la page actuelle, vous indiquez : "(...) Pour bloquer l’entrée de débris entre les deux tubes, NE PAS percer plusieurs trous le long de la jauge mais seulement 1 en bas et 1 en haut. Protéger ces trous par du grillage style poulailler, collé à l’epoxy. (...)"
Quelle est la meilleure façon de procéder ? Avec ou sans plusieurs trous ?
Merci d’avance.
AlainS
Bonjour AlainS
tu as bien raison, il faut que je corrige le premier article car les trous sont à éviter comme source d’entrées d’impuretés. En conclusion, filtrer le trou du haut et du bas ( ou alors utiliser du fil de cuivre vernis).
Bonjour David
oui les tubes peuvent être en alu car il est conducteur.Note que tu as aussi la possibilité du fil émaillé.
Désolé mais je suis 100% amateur et ne vends pas de matériel (ni logiciel, d’ailleurs, je le donne !!!)
Amitiés
Bonjour Philippe,
Désolé pour le message précédent, car raccordé à une imprimante, l’échelle fonctionne parfaitement !!!
Encore merci pour ce savoir et ces recherches.
Michel.
Michel,
trop tard, j’ai ajouté une variante en pdf...
Ça ne peut pas faire de mal...
Quand ton projet sera fini, soit sympa de me faire passer des photos, pour les ajouter ici.
Bon courage.
Bonsoir et bravo Philippe !!!
Je suis cet article depuis quelques mois et je suis ravi de voir que la solution capacitive avec des tortillons de câbles a bien été réalisée !!! Du coup je vais la tenter pour le mécaboîte de mon fils (un Derbi 50 de 2002) qui n’a qu’un niveau de réserve... qui ne marche pas !!! J’ai acheté et programmé le nano, et j’ai juste un souci concernant le typon que je n’arrive pas à mettre à l’échelle 1... A 100% il me faudrait une plaque format A2 !!!
J’ai sûrement loupé quelque chose... Peux-tu m’éclairer ?
Bien à toi.
Michel.
Oups !
Il a l’oeil le Ludo...et je ne serai pas assez faux-cul pour dire que je l’ai fait exprès pour voir ceux qui suivent.... :) :) :)
Schéma restitué bien sur :)
Merci Jean Marc de cette appréciation fort positive qui réjouit le destinataire...
J’ai déjà un propriétaire de gros TRIKE comme utilisateur futur en jauge capacitive ainsi que celui d’un Rumi 125 (lLA Ferrari du scooter entre 1955 et 1960).