[résolu] arduino simule mal un capteur...

Toujours dans mes histoires de vouloir comprendre et contrôler le moteur de ma voiture (maintenant, c'est une super5, j'adore les renault des 80's... Mais j'ai toujours la R21 injection)...

Son petit moteur (1L4, 60chx, ça fait rêver) possède un allumage électronique (AEI), et comme c'est un truc fait "sur mesure", impossible de trouver des infos sur la cartographie qu'il renferme.

J'ai décidé de construire un banc de mesure pour relever la carto interne du boîtier. je n'ai accès qu'à 3 signaux : GND, +12V et sortie allumage. en entrée, j'ai une entrée différentielle pour le capteur PMH (volant moteur) et un tuyau branché sur le collecteur d'admission. Tout le reste est noyé dans une gomme qui résiste à tous les acides du commerce.

J'ai programmé un MEGA qui reproduit le signal du capteur, dont la fréquence est réglable par un petit potard.

la tronche du signal du capteur d'origine :

la tronche du signal sorti du MEGA2560 :

le signal du méga correspond à 100% au signal du capteur, passé à travers un comparateur.

Et bien vous me croirez ou pas, au ralenti (et jusqu'à 2000tr/min), l'AEI répond bien et j'ai un signal d'allumage propre et net. mais passé 2000tr/min, l'AEI déraille et allume n'importequand, comme s'il se perdait dans le signal.

Le capteur est du type "à reluctance variable" : c'est une bobine devant un volant cranté métalique :

il faut comprendre par là que plus ça tourne vite, plus le signal est fort (100mv au ralenti, pas loin de 100V à 7000tr/min). J'ai donc tenté de modifier l'amplitude de mon signal carré pour faire mieux : ça n'a rien changé... l'inverser, augmenter ou diminuer le nombre de dents... rien n'y fait. Comme mon signal est généré sur une INT d'un timer, j'ai viré l'INT TOVF du timer 0 pour limiter les interférences, je n'ai presque rien gagné.

Quelqu'un aurait une idée de comment je pourrais générer un signal que mon calculateur d'allumage prendrait au sérieux? J'ai pensé à l'intégrateur qui sortirait un signal triangulaire, mais l'amplitude diminuerait avec la fréquence, je veux l'inverse.

J'ai tenté de mettre mon signal dans une bobine, bobine placée devant le capteur d'origine : plus rien du tout malgré un signal plus proche de la réalité...

ce topic ressemble à un autre : Interface à base de PIC pour gestion d'impulsions, mais là, je travaille dans l'autre sens : je veux remplacer le capteur (dans l'autre topic, je voulais simplement le lire...)

Merci à vous! :wink:

PS : je commence à désespérer : ça fait 3 ans 1/2 que je bloque sur ce problème de signal qui marche pas...

Huuuu ma première voiture! (Même moteur!)

La RTA t'apportes rien? De mémoire, elle donne pas mal d'info

La capsule mesurait la dépression pour déterminer la charge du moteur et jouer sur l'avance à l'allumage.

Le fil du milieu sur la broche sortait la fréquence de rotation du moulin

bonsoir S5
je lirais ça posément demain :grin:

Jambe:
Huuuu ma première voiture! (Même moteur!)

La RTA t'apportes rien? De mémoire, elle donne pas mal d'info

La capsule mesurait la dépression pour déterminer la charge du moteur et jouer sur l'avance à l'allumage.

Le fil du milieu sur la broche sortait la fréquence de rotation du moulin

je suis remonté bien plus loin, jusqu'au prospectus commercial qui vend le système à Renault, et il précise beaucoup de choses. la RTA n'y connaît rien du tout de ce côté. J'ai un pote qui s'amuse en ce moment à virer la résine, dissoudre les CI à l'acide et regarder la ROM au microscope :

mais il n'avance pas beaucoup plus vite que moi...

le fil du milieu, c'est la masse. l'info "compte-tour" est à gauche :wink:

Artouste:
bonsoir S5
je lirais ça posément demain :grin:

oui, vaut mieux!

tout ce que je sais, c'est que le signal du capteur arrive sur un carré (de chocolat?) à 4 pattes. sauf qu'en virant la résine, le bidule a arrêté de marcher, donc pas moyen de relever des signaux en interne.

Il faut m'expliquer pourquoi on passe d'un signal analogique a du numerique..

-Standby:
Il faut m'expliquer pourquoi on passe d'un signal analogique a du numerique..

C'est simple : sur la voiture, le boîtier reçoit un signal analogique et fonctionne à merveille. Je voudrais qu'il fonctionne tout seul sur mon établi, il faut donc que je recrée l'environnement du moteur, et pour l'instant, je n'arrive à produire qu'un signal carré et le boîtier n'a pas l'air de bien le prendre.

Bonjour S5,
Si tu fais suivre ta sortie signal carré par un intégrateur (resistance + capacité) tu va obtenir un signal pseudo-analogique.
Voir si ce signal peut convenir à tes essais.
L'autre solution consiste à utiliser des convertisseurs numériques / analogiques.
@+

Dans se cas la seule solution c'est d'utiliser un DAC rapide avec une assez bonne résolution. Un aop va être trop hasardeux.

salut les filles, :slight_smile:
tu peux trouver pas mal d'infos sur des prépa rallye de gt turbo.
le moteur est basé sur le même principe, mais avec un turbo en plus.
http://tbolliet.free.fr/deport_AEI/Deport_AEI.html
http://www.neo-tech.fr/AEI-RE000/presentation.html

bonjour
la sortie de ton oscillo represente quoi ?
le signal en sortie du CRV ?
comment tu reproduit en numerique les singularités detectables (indiqué en blanc sur la photo
l'ecart entre "trains" corrsepond à quoi, les "grandes dents" de calage du CRV ?
je penche comme mes petits camarades que la solution passe par un generateur de signal quasi sinusoidal 12V

apres voir la meilleur solution :
reseau RC, pseudo DAC faible resolution (reseau de R) , DAC+AOP , autres ?
en premier je tenterais la solution d'icare (reseau RC)
à defaut je tenterais bien un essai avec un DAC 4R c'est assez simple à realiser

peut être une solution : il me semble que l'arduino DUE peux utiliser un DAC en sortie analogique

Je rentre d'une journée de formation, mon voisin de table est un ancien de chez renault (30 ans de boutique)

Il a entre autres développé le moteur D de la twingo, j'essaierai de glaner des infos pour toi demain

Alors parmis les solutions que vous proposez :

1 - DAC (simple R/2R ou un vrai DAC) :

Ca va demander pas mal de ressources : le signal, pour être correctement représenté doit être fait en 8 échantillons / période, (6 suffiraient, mais en base 2, 8 sonne mieux). à 10000 tr/min (c'est une limite haute de marge que je me fixe), la fréquence du signal atteint 7,33KHz, donc il faut fournir un échantillon toute les 17µs, trop rapide à mon goût pour un nono.

De plus, il faut l'amplifier à plus de 100V crête, voilà la machine de guerre... (amplification dépendante de la fréquence en plus!)

2 - l'intégrateur ou RC :

Il donnerait une forme certainement très acceptable, mais je rappelle que plus la fréquence augmente, plus il faut amplifier le signal, donc c'est mort. je rappelle que d'origine, c'est un capteur à reluctance variable, donc le niveau de sortie croit avec la vitesse de passage des dents métaliques (même principe qu'un micro de guitare).

Dans les liens d'infobarquee, les mecs lisent le signal et je sais le faire aussi, moi, je veux le créer! Mais plus de nouvelles des gars en question...

Artouste:
bonjour
3 - la sortie de ton oscillo represente quoi ?
le signal en sortie du CRV ?
4 - comment tu reproduit en numerique les singularités detectables (indiqué en blanc sur la photo
l'ecart entre "trains" corrsepond à quoi, les "grandes dents" de calage du CRV ?

3 - sur l'oscillo, c'est le signal que génère mon nono. il y en a deux, en opposition de phase avec découplage pour laisser l'AEI faire sa polarisation à 2,5V. Il passe par un ampli (à transistors avec impédance de sortie à 200 ohms, comme le capteur) qui modifie l'amplitude via deux pins du nono (donc 4 nivaux possibles : 6V, 18V, 30V, 60V). le signal augmente donc (en escalier...) avec la fréquence. c'est ce que je rentre dans le calculateur.

4 - la def du volant moteur est claire : 44 dents, dont deux manquantes. en fait, c'est deux fronts qui disparaissent, allongeant la période du signal à ce moment là (3T).

Jusqu'à 2000tr/min, ça marche bien, mais après, le calculateur s'emmèle les pinceaux...

Je devrais peut-être essayer autre chose... Maintenant que tu m'y fais penser :

En rouge : le signal que je génère actuellement.

Générer un nouveau signal :
En bleu, le signal +
En violet, le signal -
En vert, la différence des deux vue par le calculateur qui utilise une entrée différentielle, donc il fait la différence entre les deux entrées.

Qui sait...

Jambe:
Je rentre d'une journée de formation, mon voisin de table est un ancien de chez renault (30 ans de boutique)

Il a entre autres développé le moteur D de la twingo, j'essaierai de glaner des infos pour toi demain

Pourquoi pas. mais le D est un injection, et c'est un calculateur FENIX développé par siemens qui n'utilise pas les mêmes composants. ceci dit, s'il veut bien rentrer en contact avec moi, donne-moi ses coordonnées par MP, ça serait cool!!! Je suis toujours à le recherche de portes d'entrées... (s'il connaît le boîtier RX3 et ou XR25, je suis preneur aussi!!!)

bonsoir S5
tu peux faire une acquisition à l'oscillo du CRV connecté sur le calculateur à par exemple 3600 tours
déjà pour regarder l'allure generale de la courbe ?

L'impedance d'entrée CRV sur le calculateur est de quel ordre ?

A chaud mais je me trompe peut etre , je ne pense pas que pour faire une injection de simulation , le niveau de sortie du simulateur soit important (chercher le 100V) , en revanche je pense que la propreté du "croisement" dents manquantes doit être "un point assez susceptible"

Super_Cinci:
Et bien vous me croirez ou pas, au ralenti (et jusqu'à 2000tr/min), l'AEI répond bien et j'ai un signal d'allumage propre et net. mais passé 2000tr/min, l'AEI déraille et allume n'importequand, comme s'il se perdait dans le signal.

Une idée a la volée, tu colles à l'AEI le signal du capteur, mais tu ne dis pas si tu lui colles de la dépression.

Je sais pas comment tu as fais ton banc pour tes mesures donc c'est une hypothèse mais si l'AEI attend justement de la dépression à partir de 2000 trs, peut être le "deraillage" vient de la?

Jambe:
Une idée a la volée, tu colles à l'AEI le signal du capteur, mais tu ne dis pas si tu lui colles de la dépression.

Je sais pas comment tu as fais ton banc pour tes mesures donc c'est une hypothèse mais si l'AEI attend justement de la dépression à partir de 2000 trs, peut être le "deraillage" vient de la?

on reconnait les ceusses qui connaissent le sujet :grin:
ce qui n'est pas là mon cas
le doute doit etre vite levé en "supprimant" en situation réelle la "dépression"
si le calculateur coince là aussi , alors le simulateur simulerait bien 8)

Artouste:
on reconnait les ceusses qui connaissent le sujet :grin:
ce qui n'est pas là mon cas
le doute doit etre vite levé en "supprimant" en situation réelle la "dépression"
si le calculateur coince là aussi , alors le simulateur simulerait bien 8)

l'AEI a 2 entrées: la charge moteur et le point mort haut.
et une sortie: l'avance à l'allumage.

la charge moteur se traduit en dépression, le point mort haut avec le "saut" des dents manquantes

Jambe:
l'AEI a 2 entrées: la charge moteur et le point mort haut.
et une sortie: l'avance à l'allumage.

la charge moteur se traduit en dépression, le point mort haut avec le "saut" des dents manquantes

Une bonne journée est aussi une journée où l'on apprend quelque chose 8)
et comme je n'ai jamais touché/ni approché un calculo auto ...

L'info "dépression" n'est pas primordiale. Même qu'avec les copains, on s'est amusé à débrancher le tuyau de prise dépression, et on roulait avec des accélérations plus franches! Le calculateur sait tourner sans cette info, d'ailleurs, de nombreux calculateurs ont leur membrane percée (le capteur dépression est intégré au calculateur) et personne ne s'en rend compte à part quelques trous à l'accélération, du à la prise d'air que ça crée.

J'ai repensé un peu à ce qu'il pourrait être envisageable en terme de signal plus réel. mon nono introduit un décalage (tr) entre les deux signaux rouge et vert qu'il pond :

tr = 120 ou 180ns.

si (pourquoi pas?) à l'entrée du calculateur, il y a un redresseur, forcément que le calculateur ne verra que de brefs passages à 0 de l'ordre de tr, et au final, ne verra rien.

Je vais donc penser à augmenter grossièrement ce tr, histoire de me rapprocher au mieux d'un signal analogique à trois états sans me prendre la tête.

côté électronique, l'entrée du calculateur est à haute impédance, mais il y a une capa (mes signaux sont adoucis quand je branche dessus). Je n'oublie pas que c'est prévu pour un signal pseudo sinus, donc la capa n'intervient pas sur le signal originel...

l'une des premières images montre (en jaune) la forme du signal du capteur.

bonjour s5
idée rapide
pourquoi ne testerais tu pas simplement avec une seule sortie pour la gestion des creneaux et un pont en H genre 1/2 de L293D pour injecter sur ton calculo ?
tu beneficierais aussi d'une relative large possibilité de V en sortie