[Conseil] En finir avec les interférences d'un allumage de Solex!

Bonsoir,

tout nouveau tout frais sur le forum et dans le monde Arduino depuis peu, je viens quérir quelques conseils afin de pouvoir finaliser mon projet.

Passionné de Solex et autres cyclomoteurs à Galet, j'ai entrepris de construire l'équivalent d'un banc dynamique de puissance pour étalonner mes "monstres" ;D .

Le principe est tout simple: un capteur de proximité (TCRT5000), un repère sur un axe tournant et c'est parti pour obtenir la vitesse et l'accélération angulaires du brélon lancé sur un banc d'essai (cylindres en rotation). Ensuite, ce ne sont que quelques équations pour sortir ce genre de courbes en direct sur le PC relié à l'Arduino UNO (comparatif entre un Solex normal et celui que j'utilise pour les courses!) 8)

Alors me direz-vous... si ça fonctionne, pourquoi demander conseil :astonished: .

Tout simplement parce que la Haute Tension de l'allumage du Solex s'invite à la fête et brouille régulièrement le signal en créant sur les courbes des points qui, s'ils correspondaient à la réalité, feraient de mes Solex des Bugatti-Veron10 :grinning: .

Ayant un peu potassé le sujet avant de poster ici, j'ai déjà pris les mesures suivantes:

  • les entrées non utilisées du Trigger sont mises à 5V
  • les entrées numériques de l'Arduino non utilisées sont verrouillées avec un INPUT PULLUP qui va bien
  • et j'ai testé divers câbles entre Arduino et capteur, torsadés ou non, blindés ou pas...

Au final, impossible d'avoir un signal propre si je dépasse 11cm de fil entre capteur et Arduino :disappointed_relieved:

Ci-dessous mon schéma de câblage... je prends tous conseils avec plaisir 8)

  • S1: sert à lancer l'acquisition
  • LED1: indication de branchement
  • LED2: indication d'une acquisition en cours
  • les diodes Schottky sont là pour protéger l'Arduino en cas de problème (notamment en phase de test)
  • le Trigger sert à gommer les rebonds (pas trouvé de 74HC14, j'ai pris des 74LS...)
  • C1: gomme les éventuelles interférences d'alimentation... valeur au pif!

et la réalisation:

Bernique:
...
Passionné de Solex et autres cyclomoteurs à Galet, j'ai entrepris de construire l'équivalent d'un banc dynamique de puissance pour étalonner mes "monstres" ;D .

Le principe est tout simple: un capteur de proximité (TCRT5000), un repère sur un axe tournant et c'est parti pour obtenir la vitesse et l'accélération angulaires du breton lancé sur un banc d'essai ...
...
Ayant un peu potassé le sujet avant de poster ici, j'ai déjà pris les mesures suivantes:

  • les entrées non utilisées du Trigger sont mises à 5V
  • les entrées analogique de l'Arduino non utilisées sont verrouillées avec un INPUT PULLUP qui va bien
  • et j'ai testé divers câbles entre Arduino et capteur, torsadés ou non, blindés ou pas...

bonsoir
Du breton adepte et tripoteur des bancs d'essais et des moteurs , il en traine parfois ici :grin: (mais c'est pas moi :smiley: )

sur ta liste de cablage, il manque déjà tes reprises de "masse"
quel cablage "tes gnd" qui courent partout ? 8)
une reprise en etoile ?

  1. Je dirais mettre l'électronique dans un boîtier métallique relié à la terre.
    Faut-il relier le GND de la carte arduino au boîtier ?
    La théorie dit que non, la pratique est Normande --> faut voir ce qui fonctionne le mieux. En tout cas si le GND est relié au boîtier il faut le faire en un seul point, où ? Toujours la Normandie il faut essayer l'endroit qui marche le mieux.

Le condo 100 nF est bon pour les parasites de fréquence élevée mais pas pour les fréquences basses il vaudrait mieux ajouter un 22 ou 47 µF en parrallèle.

  1. Je dirais faire des liaisons différentielles.
    Une liaison différentielle fonctionne ainsi :
    A l'émission on envoie deux signaux l'un étant l'inverse de l'autre (qd le premier envoi un "1" le second envoi un "0").
    A la réception on fait la différence des deux signaux et comme "moins" par "moins" ça fait "plus" c'est comme si on doublait l'amplitude.
    Mais pour le bruit ce n'est pas l'amplitude qui nous interesse c'est la soustraction.
    En effet quand un parasite se manifeste il se manifeste avec le même signe sur les deux signaux et comme à l'arrivée on fait la différence le parasite est théoriquement éliminé , en pratique il est extrèmement affaibli.

Vite fait je verrais bien utiliser une transmission en RS 485 avec les CI adapté qui font la conversion non différentiel vers différentiel.
Coté Solex (sauf à les conduire en grand père quel casse gueule ce truc, souvenirs parfois douloureux !) les entrées non différentielles ("single ended" en grand breton) devront être cablés au plus court car elles ne sont pas protégées par les parasites. Comme câbles de liaison je verrais bien une quarte téléphonique (impédance 600 ohms) ou du câble ethernet (impédance 100 ohms).

Précision (ou pinaillage):
Cela n'a rien à voir avec les parasites mais les entrées dite analogiques sont en fait des entrée digitales qu'il est possible de re diriger vers un mulpliplexeur analogique.
Par défaut elles sont configurée en Digital ce n'est que quand tu appelles analogRead() que cette fonction les passe en analogique.

68tjs:
...
La théorie dit que non, la pratique est Normande -->

:grin:
Pour bien (con)naitre la pratique locale évoquée, il faut savoir, connaitre et apprécier l'importance des "lois locales" pour rester evidemment parfaitement pragmatique.

Une tres importante sur les relations "temporelle au temps" 8) :

"Si de Honfleur, tu ne vois pas le Havre, c'est qu'il pleut déjà !
Si tu le vois , c'est qu'il va pleuvoir ! "
---->[] ;D

Bonsoir à tous,

Ce n'est pas dit par Bernique, mais il semble qu'il utilise l'interruption 0 (Pin digital 2) et je trouve que cela ressemble bigrement à mon problème ...

Michel

Mes remerciements du petit matin pour vos réponses que j'ai lues avec attention 8)

Mais il me faut commencer par un méa culpa: point de Breton dans mon précédent propos, mais des "brélons" que ce bourrin de correcteur orthographique automatique a modifié en douce, l'heure tardive de relecture ayant fait le reste!

Mais revenons à nos brélons (décidemment!)...

Côté masse et blindage, j'ai essayé différentes configurations sans noter d'améliorations franches:

  • il n'y a qu'un seul point de masse: celle de l'Arduino (le capteur y est directement relié)
  • l'Arduino est relié au PC qui fonctionne sur batterie (donc pas relié à la masse du secteur)
  • j'ai tenté le blindage dans une boite métallique, reliée ou non à la masse de l'Arduino, relié ou non à la masse du banc... et ben non!
  • oui, c'est bien la fonction Interrupt sur la D2 qui est utilisée... vais aller voir ce post Michel :wink:

Pour le condo supplémentaire en parallèle, je dois avoir ce qu'il faut dans mon bordel atelier... voire même plus petit encore!

Si je suis la logique de 68tjs (à priori pas Breton ;D ), faut-il mettre également les PIN analogiques en PULLUP?

Enfin les "liaisons différentielles"... j'ai cru comprendre la théorie, mais je m'auto-suggère de garder cette cartouche en dernier recours car elles m'ont l'air dangereuses ces liaisons, j'entends par là que je ne suis pas sûr de maîtriser au point de mettre celà en oeuvre facilement :wink:

Bon, je file au boulot... bonne journée à vous aussi :wink:

pas trouvé de 74HC14, j'ai pris des 74LS...

Bonjour,

le LS a un seuil de déclenchement plus bas et consomme un peu de courant en entrée : c'est vraisemblablement un meilleur choix !

tu peux faire le petit test suivant et voir si cela améliore les choses :
pour augmenter l'hystérésis du LS14 :

  • séparer 2A du +5v
  • raccorder 2A sur 1Y
  • souder une 10k entre 1A et 2Y

impressionnante la courbe
comment obtiens t'on un tel résultat.
autrefois, on rabotait la culasse, on polissait les transferts, on changeait le carburateur

tu joues sur l'allumage ? le carburant ?

(donc pas relié à la masse du secteur)

Le secteur n'a pas de masse !
L'entrée du dernier poste de transformation est en triphasé mode triangle
La sortie de ce poste de transformation est en 230V triphasé mode étoile, le centre de l'étoile est le Neutre qui est mis à la masse Terre au niveau du dernier transformateur.

Mais dans un réseau ERDF au bout de plusieurs centaines de mètres de câble qui véhicule des centaines d'ampères le neutre peut se trouver à plus de 100V par rapport à la Terre (j'ai vu 125 V dans une installation industrielle !).

Il y a obligatoirement non pas une Masse mais une Terre qui doit être construite à chaque de livraison.
La Masse c'est un point arbitraire (mais intelligement choisi) qui sert de référence pour les tensions pour un montage donné.
La Terre c'est le potentiel de la terre et qui sert pour la protection des êtres vivants.

Bonjour,

vais essayé la rsistance de 10k ce week-end, merci pour l'astuce.

Et merci aussi pour ces précisions importantes entre Terre et masse... je vais me coucher moins bête ce soir, ce qui n'est pas rien :smiley:

Pour les perfs de la machine, tout dépends de la catégorie dans laquelle on veut jouer. Dans le cas ci-dessus, c'est l'Origine... donc carbu et allumage d'origines retravaillés dans les limites du règlement, essence du commerce, et un peu beaucoup de travail sur les transferts et autres bricoles (je ne joue pas trop avec la culasse, ça finit par fatiguer les manetons de vilebrequin qui n'aiment pas cela sur une course comme les 24h de Nouziers)

C'est l'heure du taf pour pouvoir se payer plein d'Arduino rigolos :wink:

bonjour
petite question ...
pourquoi ne pas éliminer ou deja travailler le problème a la source?
le générateur de "parasites" , c est l allumage du solex . est il correctement "déparasité" ? fil/capuchon AP blindé / condo d allumage etc.. tout cela a t il été verifié ?
pour les masses / terre , mettre tout en équipotentiel , en étoile ( pas de boucles ) , ça devrait déjà aller mieux.
sinon faire un petit tour sur abc électronique pour avoir des conseils plus pointus
qu a tu comme capteurs pour instrumenter le moteur? avec seulement un capteur de vitesse de rotation moteur , je pige pas comment tu fait !
bonne bidouille
homer

Hello,

et merci pour ce retour plein de bon sens.
Le moteur est à priori correctement protégé, j'entends comme d'habitude et sans écart versus le standard: anti-parasite, condo, fil homologué...

Pour les masses, je n'arrive pas à identifié de boucle dans ce que j'ai fait... vais regarder de plus près au cas où :wink:

Le capteur est un simple TCRT5000 (capteur proximité, voir shéma en tête de post), signal nettoyé par un Trigger de Schmitt. A priori, je choppe des parasites de façon hératique lorsque le photo-transistor est non passant...

Pour les calculs, à partir de la vitesse angulaire puis de l'accélération, on obtient le couple C via le moment d'inertie J (C=J.dw/dt) et la puissance P (=C.w)

vais essayé la résistance de 10k ce week-end

Bonjour,
alors un petit schéma :

merci, le schéma est très clair... bien que je n'ai pas encore pigé comment ça va fonctionner tout ça :wink:

comment ça va fonctionner

l'idée est d'augmenter les seuils d'hystérésis pour raboter quelques parasites
le niveau logique en 2Y est non inverseur par rapport à l'entrée 1A
cela permet de faire une contre-réaction positive

explication empirique :
si le niveau en 1A passe au dessus du seuil, la sortie 2Y passe au niveau logique 1 c'est à dire +5V
=> le +5V est appliqué à l'entrée 1A, atténué par la résistance 10k
=> le seuil en dessous duquel la sortie du transistor doit passer pour forcer l'entrée 1A au niveau logique 0 est donc abaissé (il faut une tension plus basse pour contrer l'action du +5v la résistance 10k)

si la sortie bascule, un fonctionnement similaire augmentera le seuil haut, etc

la valeur de 10k est toute aussi empirique (j'ai pris ce que tu as sous la main), et je n'ai pas calculé les nouvelles valeurs de seuil
le test étant facile à faire, on pourra optimiser le cas échéant

merci pour les explications, vais regarder cela ce soir tranquillement après la scéance de colle à placo qui s'annonce pour cet aprem :wink:

Pour la 10k, je vais commencer par ça... mais vu que je dois avoir presque toute la panoplie en 0,25W, je suis preneur de toute suggestion qui s'avererait plus pertinente!

Bon aprem' à toutes et tous :wink:

Hello,

je sors à l'instant de l'atelier après avoir ajouté un condensateur de 47µF comme suggéré par 68tjs et essayé la solution de Trimarco232.
En résumé, c'est pas mieux :roll_eyes:

Pour info, j'ai relevé à l'entrée du Trigger (sur la patte 1A) les tensions suivantes lorsqu'il n'y a rien devant le capteur:

  • 4,95V avec mon montage avant modification avec la résistance de 10k
  • 2,20V avec le montage modifié (voir schéma ci-dessous)

La tension "capteur passant" est invariable dans les deux montages, i.e. 0,20V.

Pour info, j'ai même testé aujourd'hui un câble d'antenne télé en espérant avoir un blindage aux p'tits oignons... et ben non!

Bref, je cherche toujours des pistes d'améliorations.
J'en suis à me demander si les TCRT5000 ne sont pas incompatibles avec un environnement perturbé comme le miens malgré leur forte implantation dans le monde Arduino... si vous avez des suggestions d'autres capteurs similaires pour faire des essais, je suis preneur ;D

:confused:
Bonjour

A priori, je choppe des parasites de façon hératique lorsque le photo-transistor est non passant...

Actuellement le repère est-il 'réfléchissant sur un moyeu sombre' ou 'sombre sur un moyeu réfléchisant' ? Il est logique que l'interférence soit moindre quand le transistor est passant (état bas actif) contrairement à la situation ou le transistor est bloqué (état haut passif)
Il vaut donc mieux avoir un repère sombre sur un axe réfléchissant pour réduire la 'fenêtre' de sensibilité maximale. Voire passer à un capteur en fourche avec une brêve occultation à chaque tour.

  • que donne une réduction progressive de la résistance R2 ?

+Dans tous les cas ne serait-il pas préférable de câbler le trigger au ras du capteur et de faire la liason avec l'Arduino en basse impédance, états hauts et bas actifs ?

Bonjour,

et merci pour ces inputs.
Actuellement, le repère est réfléchissant sur un axe sombre (issu d'un stock de papier collant réfléchissant, rescapé d'une valise de mesure d'un tachy ancien!)... vais réfléchir à faire en sens inverse :wink:
Pour info, un copain a fait un montage similaire au miens, mais sur la base d'un capteur OMRON 1041 à fourche (sorti d'une vieille imprimante)... et il n'a aucun problème de parasite avec mon programme, même avec un mètre de câble (téléphonique 6 brins non blindé) entre capteur et Arduino! Il est pourtant en occultation quasi permanente, juste deux fenêtres sur le disque pour générer les impulsions!

Je n'ai pas essayé de réduire R2... piste à explorer, merci. J'avais pris cette valeur car on la trouve communément sur les exemples de câblage de ce capteur, y compris en entrée Arduino :kissing:

Pour le trigger "au cul" du capteur, j'y ai bien songé, mais j'étais incapable d'en intuiter les effets potentiellement positifs. Ceci étant, l'encombrement étant un soucis, je vais voir à acheter une platine pré-câblée comme on en trouve sur eBay avec un TCRT5000 et un 74HC en CMS directement dessus (voir ci-dessous). Au pire, ça servira pour un autre projet :wink:

et me revoilà :smiley:

Bien, j'ai fais quelques tests supplémentaires afin d'avancer un peu 8) .

Tout d'abord, j'ai placé un papier blanc devant mon capteur, de manière à ce que la tension restituée côté signal soit la plus faible possible (0,2V, mesuré au Fluke), afin de simuler un support blanc avec une zone de détection sombre.
Résultat: j'ai nettement moins de parasites qu'avec un capteur "non passant" comme avant (tension de signal proche de 5V). Ca semble confirmer l'expérience de al1fch :wink: . On avance!

Du coup, quite à jouer avec des tensions bases en lieu et place des 5V, j'ai tenté une autre expérience en utilisant deux étages successifs du Trigger: faire entrer 1Y dans 2A, puis utiliser 2Y comme signal vers l'Arduino (j'ai pour cela dé-câblé la résistance 10k de Trimarco232).
Assez curieusement, lorsque j'ai lancé mon moteur, ça a commencer par filter parfaitement les parasites, puis d'un seul coup ces derniers sont revenus à la fête :astonished: :astonished: :astonished:
Si ça peut mettre les spécialistes sur une piste...

Je vais peut être réfléchir à me passer du 74LS et faire un montage sur la base de deux transistors pour simuler un Trigger différent, voir si ça aide un peu aussi... et ce sera peut-être plus logeable proche du capteur...

Voilà où j'en suis. Pas facile d'aller plus loin comme jouer avec R2 (car soudée en dur au raz du capteur)... je garde cette option pour plus tard.