Digitalisation signaux ancien véhicule

Bonjour à tous, tout d’abord bonne année !

Je post ici aujourd’hui car j’ai besoin d’aide pour réaliser un projet que je pense assez simple et où j’ai pas trop les compétences en électronique et design de circuit pour. J’ai fouiller sur des forum FR et anglophone mais j’ai du mal a comprendre car c’est vite technique et ça me perds.

Contexte :

Je travail sur une moto des années début 2000 (pas d’ECU, CAN BUS, etc) et je souhaite récupérer des signaux de capteurs pour pouvoir les traiter avec un arduino. Ce véhicule thermique possède un allumage électronique classique. Je pense que c’est un projet assez documenté mais je n’ai pas trop les compétences et je suis un peu pris par le temps, j’ai deux mois pour réaliser le projet environ.

Les signaux que je souhaite récupérer sont ceux du régime moteur et de la vitesse ainsi que de la température.

Pour les signaux de vitesse et de régime , les signaux envoyés sont des signaux à pulsation modulées en fréquences (pas de PWM) issu d’un capteur à effet haul qui pointe sur un arbre tournant pour la vitesse, et les impulsions d’allumage pour le capteur du régime.
Dans les deux cas, les deux signaux sont quasi carré, en effet ils sont un peu distordus car pas complement carrée (il y a un effet de filtrage passe bas à un moment)

Globalement j’observe une relation (approximativement) de proportionnalité entre la période du signal et la vitesse de rotation de l’arbre ou régime moteur.

Voici les ordre de grandeurs du système :

Pour le régime : je pers 0.66 ms sur ma période par 1000 tours environ. Sur une plage de 0 à 15 000 tours. Sachant que à 6000 tours je suis à une période de 5 ms. Donc c’est du 200Hz. Je pense que l’ordre de grandeur pour les fréquence c’est du kilohertz. Le signal à une amplitude de 20 mV pour le régime.

Pour la vitesse : je pers 2ms par 50 kmh sur une base de 1 ms à 100kmh. L'amplitude est de 100mV. Le véhicule n’excède pas 250kmh , donc cela resulte en une plage raisonnable pour la fréquence aussi.

J’ai aussi mon signal de température qui est mesuré par une résistance variable (potentiomètre) , typiquement à 80°C entre 45 et 60 ohm et à 120°C -> 1à à 20 ohm.

J’ai obtenu ces valeurs avec un oscillscope et multimetre pour la température. Je n’ai pas mesuré le courant des signaux. Ce sont des ordres de grandeurs, la partie traitement de signal numérique/mathématiques/programmation c’est la partie que je sais faire.

Mon objectif :

J’aimerais récupérer ces signaux pour les brancher dans une pin GPIO de l’arduino afin de traiter numériquement et facilement avec un arduino MEGA. Typiquement idéalement j’aimerais, à partir de ces signaux, obtenir un signal évoluant sur 0 à 5V propice à l’utilisation sur arduino dont la tension évolue proportionnellement avec la fréquence ou résistance.

Mes besoins :

Comme indiqué j’y connais rien en electronique, j’ai besoin d’aide pour interfacer ces signaux avec l’arduino. J’ai donc besoin d’aide pour dimensionner le circuit d’amplification et de mise en forme des signaux pour avoir quelques chose d’exploitable et avec des valeurs réaliste par un arduino MEGA. Quelques chose de fonctionnel et fiable, je ne demande pas une précision de dingue. Il lecture de la vitesse à 250 tours/min près et 10kmh/près est acceptable. Je n’ai pas de trop de contrainte d’intégration (espace) , ni de budget, mais le moins chère est le mieux.

Aussi, les tensions/courant sur les véhicules de cet époque sont réputé instable avec des pics , j’aimerais protéger un minimum mon circuit d’éventuelle surcharges/irrégularité, que dois considérer comme solution? J’ai lu que sur des véhicules, le régulateur de tension de l’arduino peut ne pas etre suffisant, quels solution adopté ?

** j’ai vraiment besoin d’aide sur le choix de solution technique et sur le dimensionnement et le design du circuit pour l’acquisition et l’interfaçage des signaux !**

Mes recherches :

En me renseignant , j’ai vu qu’il y avait plusieurs techniques pour résoudre mon problème :

Il a la possibilité de faire un convertisseur fréquence - voltage avec un module type LM2907 mais je suis pas très à l’aise avec les circuits imprimés. Je suppose aussi qu’il faut amplifier le signal en amont car là c’est limite du bruit .. j’ai entendu parler de MOSFET , est ce pertinent ? Quels specs ? Je connais a peine la loi d’Ohm et des mailles/noeuds quand j’étais au lycée et ça date ..

Je suppose que à courant fixé , en ce qui concerne le capteur de température, une simple loi d’omh et donc mesure de tension devrait suffire. La aussi, qu’elle module pour faire ça ?

Merci beaucoup d’avoir lu en entier en tout cas !! (et désolé pour les fautes de frappes)

Bonjour,

Bienvenu sur ce forum et bonne année.

A la premiére lecture, (pour moi) les données que tu nous présente sont peu exploitables

Toi tu a ta machine sous tes yeux et à ta portée de mains, nous nous n'avons que tes mots.

Il faut que tu nous en dise plus, et plus précisément.

Quels sont les capteurs que tu utilise (marque référence).

Présente nous tes relevés à l'oscilloscopes (photos, conditions de mesures...).

Etc, ça nous facilitera la tâche

Je ne suis pas chiant d’ordinaire pour les fautes de frappe et d’orthographe (ce qui serait malvenu de ma part, surtout si je n’ai pas Grammalecte sous la main comme béquille) mais là il y en a quelques-unes qui sont un peu bloquantes pour la compréhension de ton post :

« pers » il s’agit de quel verbe ? Je ne vois pas ce que tu veux dire :thinking: (sans chercher à t’offenser, je précise)

Sinon, sur le fond… je n'ai pas de solution simple à ta demande, mais elle me semble mal orientée :

Dommage de faire ça (et de perdre en qualité de mesure au passage) alors qu’un arduino ou ESP32 peut très bien faire les mesures de fréquences directement ou presque.

Un potentiomètre ne mesure pas une température… ne s’agirait-il pas plutôt d’une CTN (aka thermistance) ?
Pour les motos, le style vintage est peut-être très bien, mais en matière de mesure de température, on fait beaucoup mieux et directement numérique avec les arduineries modernes. Est-ce que l’utilisation de la CTN est imposée par une contrainte que tu n’as pas évoquée ?

edit : un complément ...

le « approximativement » est surprenant ici, la période du signal devrait être exactement la vitesse de rotation. Cette approximation cache un artefact dans ton analyse du problème.

Bonjour,

Pour moi, dans le contexte global de la demande, il s’agit du verbe « Persser » (faire un trou )
:rofl::rofl::rofl:

L'amplitude des signaux me parait bien faible.
Comment as-tu réalisé cette mesure?

Bonjour darinigo6789

Ce n'est pas nécessaire, l'Arduino sait très bien mesurer des fréquences.

Oui, le mieux serait que ton signal aie 5V à pleine déviation.

Pour rendre la cogitation plus aisée, quelle est le modèle et l'année de ta moto?

A+
Cordialement
jpbbricole

Bonjour,
Merci pour ta réponse.

Concernant les capteurs, je ne connais pas les références. Il s'agit d'une moto de 1998. C'est un Honda CBR 600 PC31 de 1998. Modèle a carburateurs.

Le capteur de vitesse est le capteur d'origine qui est un capteur a effet hall qui point sur l'arbre secondaire de la boite de vitesse (sur le crabot de 6ème). D'où une augmentation de la fréquence du signal émis avec l'augmentation de la vitesse de rotation de l'arbre (i.e de la moto). Il a un cable qui va de la boite de vitesse au compteur de la moto. C'est sur ce cable que je fais ma lecture de signal.

Le capteur de régime est le capteur d'origine qui est issu du boitier CDI de la moto, c'est le boitier electronique qui gère l'allumage des bougies. J'ai une bobine pour deux cylindres, et c'est un moteur 4 temps. Donc il faut faire un calcul pour avoir le régime exacte et pas simplement faire une lecture de la fréquence du signal , mais le principe est le même que pour le capteur de vitesse : la fréquence augmente avec le régime. Il y a un fil qui sort du boitier CDI et qui va au compteur analogique de la moto. C'est sur ce cable que je fais ma lecture de signal.

C'est une moto assez ancienne vu l'age, dans les revues technique il y a les schéma electrique de connexions des différents cables qui compose le faisceau de la moto mais ça ne va pas plus loin. Il faut ensuite effectuer des mesures et faire de la retro ingéniérie pour comprendre comment ces capteurs fonctionnent, c'est là où mes compétences sont limitées et où j'ai besoin d'aide. J'ai cherché sur des forums anglais/américains j'ai pas eu d'informations pertinentes plus que ça.
Aussi , lorsque je regarde sur d'autre forum pour le meme problème que moi sur d'autres motos, les principes de fonctionnement des signaux et leurs capteurs semblent être analogue à la mienne.

Pour le protocole de mesure : je démarre la moto , je la fixe (sur béquille naturellement) sur un régime et j'observe le signal en mettant la sonde sur le fil d'intéret et en faisant la mise à l'échelle avec le mode auto de l'oscillo (Keysight, 4 voies, 70Mhz). Puis je mesure plusieurs périodes et je moyenne pour obtenir la valeur d'une période (et donc fréquence du signal) que j'associe à la valeur de régime/vitesse que je lis sur le compteur. Je fais ça pour plusieurs régime/vitesses et c'est comme ça que j'ai obtenu mes mesures.

J'ai pas les photos sous la main hélas , j'espère que c'est plus clair.

Bonjour, merci de ta réponse.

Il s'agit du verbe "perdre", à la première personne du présent. Pas de soucis :slightly_smiling_face:

Oui l'arduino peut faire ça probablement, la question est plus de rendre le signal de sortie (si les mesures sont bonnes ..) compatible avec les pins de l'arduino (i.e dans l'intervalle 0 à 5V).

Oui il s'agit d'une thermistance, c'est le terme utilisé dans la revue technique. Oui je suis contraint d'utiliser ce type de capteurs, c'est issu de la conception de la moto.

Oui il doit y avoir du bruit.

Est ce que c'est plus claire ? :slight_smile:

Pour le protocole de mesure : je démarre la moto , je la fixe (sur béquille naturellement) sur un régime et j'observe le signal en mettant la sonde sur le fil d'intéret et en faisant la mise à l'échelle avec le mode auto de l'oscillo (Keysight, 4 voies, 70Mhz). Puis je mesure plusieurs périodes et je moyenne pour obtenir la valeur d'une période (et donc fréquence du signal) que j'associe à la valeur de régime/vitesse que je lis sur le compteur. Je fais ça pour plusieurs régime/vitesses et c'est comme ça que j'ai obtenu mes mesures. Et j'essaye de déterminer le modèle mathématiques qui relie la fréquence du signal au regime/vitesse de la moto.

AInsi derrière je réutilise ces valeurs pour faire un affichage digital.

Est ce que c'est plus clair ?

Bonjour, merci de ta réponse :slight_smile:

En effet, il faudrait le signal dans l'intervalle 0-5V, comment faire ?
Il s'agit d'une Honda CBR 600 PC31 de 1998.

Est ce que ça peut t'aider ?

Bien cordialement

Bonsoir darinigo6789

Tu pourrais faire des photo, en gros plan, de ton oscillo.
C'est important pour les tensions, pour faire un diviseur, si nécessaire.
La fréquence n'a, pour le moment, que peu d'importance, pourvu que le signal soit à 5V max.

A+
Cordialement
jpbbricole

J'ai pensé a une autre façon de faire. Si je prends juste le compteur que je lui injecte un signal en 0-5V ? Je peux faire une lecture plus précise des valeurs sur les aiguilles et controler via un arduino la fréquence du signal et ainsi faire mes mesures plus précisément.

A voir si mon compteur a vraiment besoin de 20mV ou 100mV .. en effet quand je regarde d'autre topic similaire , il semblerait que les signaux soit plutot sur 10V que 10mV ..
Il ne faudrait pas cramer mon compteur non plus mais je pense que m'a moto n'a rien d'exceptionnel dans sa conception, donc je pense que mes mesures ne sont pas juste plutôt que mon compteur a réellement besoin de si faibles signaux.

Ca me parait peu logique aussi d'avoir de si faible signaux car il faudrait une grande sensibilité sur le circuit des aiguilles des compteurs de vitesse et régime, et ça couterait probablement trop chère alors qu'il existe des solutions plus simple (un signal en 0-10V) , c'est une moto grande série, bref..

Oui je n'ai pas l'oscillo sous la main, mais je vais les faire et poster les photos

Aussi, a savoir que cette moto partage beaucoup de pièces avec les CBF600/Hornet 600 de l'époque qui ont été les "motos du peuple" de l'époque, c'est donc une moto très répandues et donc qui doit répondre à des principes basiques d’électroniques car très grande série

Bonsoir darinigo6789

Avant, il faut voir, à l'oscillo, quel est la tension du signal carré qui commande le compteur.

+1, On a besoin de voir ce signal pour envisager une solution.

Ok , je post les screen le week end prochain , merci à vous

Bonjour à tous,

J'ai effectué les mesures. La sonde à été calibré avant la mesure et j'ai fais les mesures en x10 et l'oscillo est en x1, donc il faut multiplier par 10 les valeurs de tension mesurées par l'oscillo.

Voici l'évolution du signal de régime moteur :

  • à 1200tr/min , environ un signal à 40Hz et tension crete à crete de 1.7Volt

  • à 3000 tr/min environ 90Hz et tension crete à crete de 1.7Volt

Globalement , la fréquence évolue linéairement avec le régime moteur , et ces deux quantités sont reliés par la relation suivante (obtenu par simple régression linéaire)

freq (Hz) = regime (tr moteur/min) * 0.031254 - 2.4884

Une fois multiplié par 10 , ce signal a donc une tension crete à crete d'environ [0-15 à 17] Volts. Comment réduire cela dans un intervalle gérable par un arduino ([0 à 5V]) ?

Pour la vitesse :
Même condition de mesure vis à vis de la sonde.

  • à 20 kmh on observe une fréquence de 173Hz pour une tension crete à crete de 760 mV

  • à 50 kmh on observe une fréquence de 500Hz pour une tension crete à crete de 710 mV

  • à 100 kmh on observe une fréquence de 927Hz pour une tension crete à crete de 720 mV
    (oublié de prendre la photo)

  • à 120 kmh on observe une fréquence de 1110Hz pour une tension crete à crete de 730 mV

Globalement , la fréquence évolue linéairement avec le vitesse , et ces deux quantités sont reliés par la relation suivante (obtenu par simple régression linéaire)

freq (Hz) = vitesse (km/h) * 9.0842 + 22.941

Une fois multiplié par 10 , ce signal a donc une tension crete à crete d'environ [0-7] Volts. Même question, comment réduire cela dans un intervalle gérable par un arduino ([0 à 5V]) ?

Aussi, est ce que la fréquence d'échantillonnage d'un arduino est assez suffisante pour échantillonner ce signal correctement ?

Je compte utiliser ces relations pour faire mon modèle de compteur digital

J'ai aussi quelques photos du circuit qui recupère ce signal et qui fais bouger l'aiguille du compte tours (système analogue sur celui de la vitesse)

Peut etre que ça peut aiguiller , les voicis







Merci d'avance pour votre aide !

Bonsoir, j'ai mis les photos sur le topic !

Bonsoir darinigo6789

En fait, du côté de l'Arduino, le problème est assez simple, il suffit de faire 2 fréquencemètres.
La condition est d'adapter les signaux des capteurs au standard de l'Arduino, c'est à dire en 5V. As tu les capacités de la faire?
Pour le programme, je peux t'aider :wink:

Une fois les fréquences calculées, que faut il commander depuis ton Mega?

A+
Cordialement
jpbbricole