Jump to content
En Direct de PGR
PGR lieu de partage et d’échanges animé par des passionnés bénévoles ! Notre Compte Premium un espace indispensable pour tout mécano en herbe ou professionnel pour tout type d'intervention sur votre Patrol.

Y61 Construire pas à pas un boitier de suppression du mode sécurité ECU


Recommended Posts

  • Replies 199
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Pour pas cher.   Leçon 1   Acheter de quoi faire un prototype et apprendre à l'utiliser. I vous faut - une carte Arduino Uno R3, ou un clone chinois, AVEC SON CABLE USB h

la bonne nouvelle, c’est que tu as un cerveau.  il faut travailler sous interruption. et dans cette routine, faire le minimum d’instructions. Si tu cherches bien, je l’avais donnée dans un post i

Pas de souci. Tu y arriveras, je n'ai aucun doute. J'ai du faire une pause ces derniers jours pour monter et installer 6 colonnes de 60 avec portes et étagères dans le garage pour madame. Et, pour la

Posted Images

Leçon 2 :

Comment convertir un signal pwm en sortie Arduino, en un signal analogique propre acceptable par l'ECU.

L'arduino a des entrées analogiques haute impédance 0-5V qui permettent de prélever des signaux analogiques, de capteurs par exemple, sans perturber ces derniers, et de les digitaliser (les mettre sous format numérique qu'on peut ensuite "traiter, filtrer, modifier, corriger comme on le souhaite).  Par contre, l'Arduino n'a pas de convertiseur numérique-analogique permettant de restituer ces signaux corrigés. L'arduino n'a que des sorties digitales ( 0 ou 5V ), dont certaines peuvent être modulées en pwm.

C'est quoi, un signal pwm ?  lire ci-dessous./

https://www.electronique-mixte.fr/pwm/

La bonne nouvelle, c'est que convertir un signal "carré", dont la tension moyenne dépend du "duty cycle" '  % de temps pendant lequel le signal est à "1" ou 5V, et celui où il est à "0" soit 0 V, n'est pas compliqué : il suffit de le filtrer avec un filtre passe-bas ou deux, ou encore trois, pour obtenir un beau signal analogique continu à la bonne tension.

En associant une résistance et un condensateur (capa), on crée facilement un filtre dit "d'ordre1". En en mettant deux en cascade, on lisse le résultat, et on obtient ce résultat avec un certain retard qui dépend du produit entre les valeurs R et C : RxC.  le RC s'appelle aussi la constante de temps. Un tel filtre se charge ( effet du condensateur ) en à peu près 3 fois cette constante de temps.

Voilà donc ce que j'ai utilisé :

268318772_Capturedecran2020-11-02a13_58_47.thumb.png.6b874e181f6ffcda1ed6738cb9f5b69d.png

et ce que ça donne en simulation :

566951453_Capturedecran2020-11-02a14_51_53.thumb.png.696ca9885a7874c40b57df31b29ceba5.png

 

On remarquera qu'un seul filtre (sortie bleue) est insuffisant (on s'en serait douté...), et qu'il faut en mettre un second pour obtenir un signal plus "lisse".

Ce montage est aussi appelé "intégrateur", en ce sens que, pour une tension d'entrée qui passe de zéro Volts à une tension V, fixe, la tension de sortie monte petit à petit pour atteindre "V" au bout d'un temps égal à environ 3 à 4 fois RC.

La constante de temps est choisie en fonction du "ripple' qu'on accepte ( variations résiduelles) et plus encore du traitement qu'on va effectuer par la suite sur le signal MAF.

Sans encore dévoiler les aspects "logiciels", traiter/corriger le signal MAF plus de 12 fois par seconde (toutes les 80ms), est largement suffisant, et le retard de 80ms que cela va engendrer, imperceptible pour le conducteur. La constante de temps choisie pour notre filtre du 2e ordre ( deux filtres du premier ordre en cascade) est choisie compatible de ces 80ms.

 

Edited by phdv61
Link to post
Share on other sites
Le 30/10/2020 à 09:18, phdv61 a dit :

Tu as regardé pour les amplis ?

Link to post
Share on other sites

Oui, je vais te dire.

D'abord, j'explique ci-dessous pourquoi je viens insérer un ampli-op entre les deux filtres passe-bas , pour mieux "conditionner" le signal MAF que nous allons corriger dans l'Arduino avant de le restituer comme ceci :

838398178_Capturedecran2020-11-02a17_57_51.thumb.png.8a08ad3d887f5a1790e1e21bb1555d9e.png

Première raison :

la résistance de 10K n'est pas bien grande pour "prélever" le signal MAF en sortie du capteur. Les entrées des microcontrôleurs ont une très grande impédance pour ne pas "effondrer" les petits courants en provenance des dits capteurs.

L'ampli OP en mode suiveur a une très grande impédance d'entrée sur ses bornes ' la borne "+" ici au dessus. Cela règle donc le problème.

Deuxième raison :

L'impédance de sortie du dit ampli-op est très faible. Parfait pour attaquer l'entrée de l'ECU, qui n'aura donc aucun souci pour "l'avaler".

Et donc je trouve le coup de l'ampli op, qui est utilisé ici en mode "suiveur", a un gain de 1 et conserve donc la tension,  assez "élégant". Il sert juste à 'adapter' les "impédances".

1853021364_Capturedecran2020-11-02a17_57_30.thumb.png.8ec6682139f614e81114120df2728058.png

Par contre, il faut en choisir un en mode 'rail to rail', qui veut dire que les tension min et max peuvent aller jusque très près des tensions d'alimentation ( ici 0 et 5V ). Le LM 358 que j'ai utilisé ici car EasyEDA a le modèle "spice" permettant de faire des simulations de circuit, est limité en tension de sortie à Vcc ( tension d'alimentation) moins 1,5V. On ne pourrait donc pas avoir + de 3,5V en sortie, sauf à alimenter l'ampli Op en 9V par exemple. Et on n'a pas prévu cette alimentation ( mais on pourrait ). E le MAF va de 1V environ contact mis, jusque + de 4,5V.

Conclusion, dans mon montage j'ai pris un MCP6272-EP en boitier DIP8 ( soudage traversant ), qui contient deux ampli op, car c'est ce que j'avais trouvé il y a presque 2 ans. Il existe une multitude d'autres ampli-op équivalents. Il faut qu'ils soient "dual op amp", "single supply", DIP 8, et "rail to rail".  Le petit souci c'est qu'ils ne sont souvent plus en stock car de moins en moins utilisés., au profit de packaging de type  Je suggère de les monter sur support. car c'est un composant à 8 pattes qu'il sera difficile de dessouder le jour venu si on le "crame".

Un OPA340PA de chez Texas fait aussi l'affaire par exemple : https://www.mouser.fr/ProductDetail/Texas-Instruments/OPA340PA?qs=7nS3%2BbEUL6uGkqm3FBFIww%3D%3D&vip=1&gclid=EAIaIQobChMIquWx-7Dk7AIVw-FRCh1xHQnVEAQYASABEgIWpPD_BwE

Edited by phdv61
Link to post
Share on other sites

Leçon 3 :

Pour en finir avec les aspects matériels :

   Comme dit plus haut, je suis repassé dans le second ampli op disponible avec le signal RPM avant de l'envoyer à l'Arduino ( avec une impédance de sortie faible pour l'ampli op, et grande pour l'Arduino). On peut sans doute s'en passer, mais en cas de souci ou de court-circuit en amont, c'est l'ampli op sur support qui dégagera et sera facile à changer.

412733081_Capturedecran2020-11-02a18_33_39.png.2583735712d7a8d8db48ea3c14dcc2d1.png

 

Alimentation 5V de notre carte Arduino :

Et enfin, il faut ajouter, pour le jour où on aura mis notre logiciel dans l'Arduino, et que notre carte tourne de manière autonome, une alimentation 5V que l'on construit à partir du 12V "Ignition". J'ai pris en T sur le fll l'alim de mon autoradio, car on ne tire pas grand chose dessus ( quelques dizaines de mA ).

675289522_Capturedecran2020-11-02a18_41_42.thumb.png.47dc6fd3fbcbc8a1b36cd6489f885935.png

On remarquera un petit composant ( U3 ) qui est un filtre RF que j'ajoute car on joue avec un signal pwm de 500Hz, qu'on n'a pas forcément envie d'entendre sur la radio grandes ondes ou petites ondes au milieu du désert marocain ou ailleurs. ( à priori pas de souci en FM... ).

Et voilà YAPLUKA faire du soft maintenant.

Edited by phdv61
Link to post
Share on other sites

Bon, je vais m'offrir une petite bière maintenant.

Je vous laisse digérer, et commenter si j'ai écrit des conneries ( je pense les avoir toutes faites en apprenant ces deux dernières années ).

Link to post
Share on other sites
Il y a 7 heures, phdv61 a dit :

y'a pas de souci.

Tu peux aussi te créer un compte sur le site chinois EASYEDA. Tous les composants classiques y sont répertoriés. Tu peux y faire des schémas une fois que tu as compris comment marche l'outil, et même faire des simulations et voir comment évoluent les signaux dans le temps.

Ci-joint le fichier projet EasyEDA de l'acquisition RPM. En mode simulation, on peut faire varier les valeurs de résistance et de capa, ainsi que la tension du générateur uilisé pour cette simulation ( sachant que ce qui sort du capteur n'est pas un beau signal carré !).

Une diode de redressement, pour supprimer l'alternance négative, un pont de résistance pour faire en sorte de diminuer la tension d'1/3, avec des valeurs de résistance assez élevée pour ne pas pertuber ni le capteur en tirant trop de courant, ni l'ECU. La tension sera ensuite toujours inférieure à 5V, et on l'utilise pour commander un transistor. J'en ai pris ici un très classique pour faire de la 'commutation' ou 'switching', en le faisant travailler en mode "saturé" ( interrupteur ). Pour ce faire il faut le "polariser", c'est à dire faire en sorte de respecter ses spécifications pour le mettre en condition de faire ce qu'on attend de lui.

Pour qu'il soit en mode "saturation", il faut que le courant sur la base soit au moins de deux fois le courant sur le collecteur multiplié par le gain ( ici 65 min d'après la notiice technique disponible sur le net ). J'ai fixé Ic en mettant une résistance de 5K entre le collecteur et le +5V, donc le courant Ic est de 1mA ( pas besoin de plus ...). Du coup il faut au moins 30 micro-ampères sur la base.

En mode "saturé" la tension VBE ( base émetteur) est pour ce transistor de 0.6V. La tension mini après la diode et le pont de résistance est de 4V ( sortie capteur ) - 0.5V diode donne  3.5V divisé par 3 (pont de résistances) soit environ 1,2V.  et pour la faire chuter un peu encore j'ajoute une résistance de 1K (car il faut garder en mémoire que pour plus haut dans les tr/mn ,la tension montera à plus de 12V ).

Du coup, la plage de fonctionnement de ce montage est d'environ 3.5V à au delà de 14,5V, en tirant le minimum de courant sur l'alim.

Enfin, j'ai ajouté une petite capa pour filtrer le bruit. ( et dans mon cas, je suis également repassé par un ampli OP en mode suiveur pour présenter une impédance la plus faible possible à l'entrée Arduino, pas présenté ici ).

1296604578_Capturedecran2020-11-02a10_26_29.thumb.png.9b69d7715d540091e0cd5d51f24f0c93.png

Les puristes remarqueront que nous sommes passés en "logique inversée", mais comme ce ne sont que les fronts qui nous intéressent et vont nous permettre de compter et de mesurer le temps écoulé dans l'Arduino, on s'en moque. Et les capas et résistances coûtent quelques centimes, donc...

 

Question sur ce montage.

Pourquoi ne pas utiliser un ampli-op suiveur pour prélever la tension capteur ? Si j'ai pas compris de travers ce que j'ai lu, c'est une des fonctions de base de ce montage, ne pas perturber le circuit amont. Donc il serait adapté pour nous. De plus, comme la tension de sortie est forcément plus faible que la tension d'alim, si on l'alimente en 5V, la tension max en sortie sera ~3V. Et avec le gain de l'ampli, dès que le signal du capteur atteindra quelques mV, on sera déjà en saturation. Du coup (en gardant une diode de redressement en sortie d'ampli), on aura sur la base du transistor un signal déjà quasi carré de 0-3V quelle que soit la tension du capteur (4 ou 14V). 

Le pont diviseur que tu emploie, avec une tension (et des courants) variables en fonction du régime moteur me paraît plus "tendu" pour gérer la prise de signal. 

Il y a très probablement une faille dans mon raisonnement, mais comme j'ai pas encore réussi à prendre en main EasyDA pour tester mes théories fumeuses, je les soumet à ton jugement :Avocat05:

Link to post
Share on other sites

heuuuuu  tu pourrais, mais il faudrait alimenter ton ampli op avec une tension stabilisée > 14V pour pouvoir en sortir toujours la tension du capteur RPM.

Et comment fais-tu pour trouver, puis alimenter un régulateur qui te sortirait du 14,5 V ? Il te faudrait au moins du 16V  (du 24V ) tu vois où ça te mène ?

ici, j'ai calculé tous les éléments pour que le montage marche quelle que soit la tension en sortie capteur, de 4V à 14,5V. No souci. Je n'ai pas trouvé mieux.

EDIT : pardon, en fait tu parles plutôt d'utiliser l'ampli op en saturation ou comparateur, et non pas en suiveur. il faut en trouver un qui accepte de prendre du 14,5V dans les dents en étant alimenté en 5V. pas sûr qu'il aime... de mémoire on est limité en tension d'entrée par la tension d'alim sur ces bestioles, non ? A voir.

Edited by phdv61
Link to post
Share on other sites

Ben justement, le but c'est de ne pas avoir 14V puisqu'on en a pas besoin pour l'Arduino.

Puisqu'avec une alim 5V il peut sortir que environ 3V, on se passe des humeurs du capteur et on utilise ce "bridage" pour fournir une tension (et donc une intensité) constante à la base de notre transistor. L'ampli servant ici à écrêter le signal récupéré sur le capteur.

 

Edited by nono des montagnes
Link to post
Share on other sites

c'est pas idiot.

Amp op en comparateur avec une tension de référence de 2.5 V par exemple, tout ce qui est en dessous devient 0V, et tout ce qui est au dessus devient 5V. Radical.

et un bête LM358 conviendrait, mais comme pour le MAF j'utilise un rail to rail, on peut aussi l'uiliser, au besoin après un pont diviseur le cas échéant, car la tension (et/ou le courant) sont limités sur les pinoches d'entrée des Amp Op.

Il faudra donc probablement deux ponts de résistances.

Edited by phdv61
Link to post
Share on other sites

Monté en comparateur comme ça, ça marche :

Référence à 0.5V. Pont 1/3 sur l'entrée RPM, donc la tension max sur l'entrée ne dépassera pas la tension d'alim de 5V.

Et les 150k que voit le capteur ne vont pas le perturber.

619761696_Capturedecran2020-11-02a19_32_56.thumb.png.95c56eaf242a8092960da7097226bf06.png

Et la simulation fonctionne  :

18454504_Capturedecran2020-11-02a19_33_54.thumb.png.b2d5d35e58269314b42df0bad3c14291.png

Edited by phdv61
Link to post
Share on other sites

Quand tu sais pas trop ce que tu recherche, c'est pas évident de s'y retrouver dans la jungle de composants sur easyEDA 😅

EDIT : Ah en filtrant uniquement les spice symbols ça écrème déjà pas mal vers les trucs essentiels

Edited by nono des montagnes
Link to post
Share on other sites

Pour résumer la partie 'acquisition du signal RPM (tr/mn)' à partir du signal PMH (point mort haut), à récupérer à l'entrée ECU, on dispose de deux solutions

Une à base de transistor :

22015798_Capturedecran2020-11-03a11_58_10.thumb.png.e663d1cdefa2304f1a52aad7bb45daff.png

Une à base d'ampli-op :

682935004_Capturedecran2020-11-03a11_57_26.thumb.png.0ca2b2dcc3ec85a60b323f420fcc84a7.png

L'ampli OP est élégant, mais il y aura un peu plus de soudures à faire, et il faut approvisionner l'ampli-OP. c'est vrai que je l'ai utilisé pour la restitution du signal MAF, mais on doit pouvoir probablement s'en passer aussi. Cela simplifie le montage d'un proto de test sur plaque à trou du coup.  Par la suite, comme je vais recevoir 10 Circuits imprimés de chine sur la base de mon schéma initial (mais il fait bien d'autres choses), vous pourrez l'utiliser tel quel puisqu'il fonctionne, ou couper une piste, et tirer quelques fils pour supprimer soit le transistor, soit l'ampli-OP. Ce CI comprend des borniers à vis, et se fixe par 6 vis dans un boitier plastique du commerce.

Ou sinon, on refera un petit CI spécifique, avec des composants CMS qu'on fera fabriquer et câbler en chine. On verra. Un truc à la fois.

Link to post
Share on other sites

Bon je ne sais plus où j'en suis, mais je continue les explications.

On va dire 'leçon 4'.

Maintenant qu'on a simulé nos différents sous-ensembles, et qu'on a (pense avoir?) trouvé de bonnes solutions, on va essayer de voir comment on va câbler tout cela et faire rentrer les composants sur notre 'shield' prototype. C'est quoi un 'shield' Arduino, c'est tout simplement un petit circuit imprimé avec des connecteurs, qui établit les contacts avec les connecteurs de l'Arduino, et qui nous permet de relier nos composants à cette carte.

Je me suis aidé de l'atelier chinois EasyEDA, qui comprend des 'empreintes' de ces fameux shield, qu'on peut insérer sur la feuille avec nos composants, et établir les connexions nécessaires entre eux. Easy EDA nous dessine aussi les contours de ce shield. pratique.

 

Link to post
Share on other sites

Donc j'ai commencé, pour simplifier la compréhension, par créer un nouveau projet, et j'y ai copié tous mes,sous-ensembles en renommant automatiquement les composants, pour qu'ils aient des numéros distincts, afin qu'on puisse les identifier correctement par la suite : Vous reconnaitrez (ou pas) l'empreinte de l'Arduino UNO R3.

261728282_Capturedecran2020-11-03a16_02_39.thumb.png.286b58f408d1f211237e07088be109cb.png

j'ai ajouté les deux connecteurs à vis qui permettront de relier le 12V, la masse, le signal MAF et le signal RPM, et de ressortir le signal MAF traité.

J'ai aussi enlevé tout ce qui avait permis de faire nos petites simulations. J'ai mis n'imorte quel transistor (pour le moment), car celui que j'avais utilisé n'avait pas d'empreinte physique dans la bibliothèque. Ce n'est pas grave, car c'est moi qui vais cabler/souder, du moment que l'empreinte est bonne.

Link to post
Share on other sites

Ensuite, je passe à l'étape de placement des composants. elle est manuelle. Cela veut dire que le système nous met l'empreinte de la carte et tous les composants reliés par les fils qui vont bien, et il faut les disposer le mieux possible, pour éviter d'avoir des fils dans tous les sens, et surtout trop de fils qui se chevauchent. Sinon, cela devient in-démerdable.

Au bout d'une dizaines de minutes ( il y a peu de composants ), j'arrive à ça, après avoir lancé un 'routage' automatique. C'est l'ordi qui relie proprement avec du fil bleu (verso) et du fil rouge (recto), les deux couches que va comporter ultimement mon circuit imprimé.

Pour le proto à la maison, il faudra câbler/souder A LA MAIN. Il y a déjà pas mal de fils ... En passant + de temps, on doit pouvoir améliorer.

 

630582024_Capturedecran2020-11-03a16_02_59.thumb.png.8cf2f309b46edddce93af6e1da04ef6c.png

Edited by phdv61
Link to post
Share on other sites

et même 3D si on a pris le soin de prendre des composants dont le modèle 3D existe, ou de télécharger sur les sites des fabricants les modèles 3D de leurs composants.

ça permet de voir que ça rentre correctement et que ça ne touche pas.

Pas de bol, je n'ai pas fait ce qu'il fallait, et donc la vue est très incomplète. Mais bon, je m'en fiche pour ce qu'on fait pour le moment ici ensemble.

2130042802_Capturedecran2020-11-03a16_03_30.thumb.png.41c7a25b256c6bf3d8c657705770adfc.png

Ainsi s'achève la partie ' je conçois une petite électronique pour supprimer les 'limp modes de mon patrol' ou 'mises en sécurité ECU liées à la tension du débitmètre'.

Mais ça vous donne idée du process à suivre. Il n'y a aucune 'magie'. juste du boulot. Et c'est aussi logique que la mécanique, @jacktrol. Cela fait beaucoup en quelques jours, mais tu as 15 J pour "potasser".

 

Link to post
Share on other sites

Dernière chose, si on fait les choses proprement, qu'on choisit bien les composants de la BOM ( Bill Of Materials ) ou "liste des composants", on peut ensuite commander la carte toute câblée et terminée en quantités multiples de 5.  Et comme le soudage est automatisé, c'est rapide et ne coûte que quelques Euros de plus. Pourquoi s'emmerder ?

1319970470_Capturedecran2020-11-03a16_34_48.thumb.png.946d0174163122ce66640d1731c5b2ce.png

 

prix pour la petite carte ci-dessus sans le port, ni composants, ni le câblage et test pour 10 circuits imprimés ROHS sans plomb. Soit 2E le CI. pas mal...

Il faut par contre être sûr de son coup, car si on a oublié un fil, une connexion, ou qu'on s'est trompé, il faudra couper des pistes sur la carte et:ou ajouter des composants. Pour ce faire on laisse toujours un peu de place et quelques trous supplémentaires, au cas où... Mais les interventions après coup sont toujours longues et couteuses en temps. et ce n'est ni propre, ni 'industriel'.

Bon, c'est l'heure du thé.

Edited by phdv61
Link to post
Share on other sites

regarde les specs de l'ampli op que tu utilises. il n'est pas rail to rail. et donc Vmin et VMax sont supérieur et inférieur aux Tensions d'alim, ici 0 et 5V.

0 +2 V donne 2V    5V - 2V donne ?  3V

Si tu savais les we et les nuits que j'ai passées à apprendre et comprendre ... !  et à m'arracher les cheveux.

Comme dis plus haut, je pense qu'on peut faire l'impasse de cet aop, y compris pour la restitution du MAF.

Edited by phdv61
  • Thanks 1
Link to post
Share on other sites

Merci pour l'explication ! ça m'aurait occupé pour au moins une semaine de plus sans toi.

A noter pour les autres qui essaient de se mettre à easyEDA, il faut se mettre directement en mode simulation pour créer le circuit. En mode standard, le choix des composants n'est pas tout à fait le même et le LM358N qui fonctionne bien pour l'application est posé, dans le mode standard, en tant que LM358N_US et n'est pas supporté par Spice. J'avais fait le tri en prenant dans la library du mode standard "spice symbols" mais ce n'est en fait pas un gage de compatibilité avec Spice... (D'où mon choix du UA741 qui ne va pas, au moins lui je pouvais l'utiliser pour simuler mon circuit sans un retour de "fatal error".) 

En mode simulation on accède directement à la "Spice library" qui j'imagine, doit être 100% compatible pour faire des essais de montage.

Link to post
Share on other sites

@phdv61 Petite remarque sur le circuit avec l'ampli, dans le cas de la simu, on sort un signal carré à +3.7V en crête.

Les gens ont pas l'air très d'accord sur les forums, mais à priori la valeur mini reconnue comme une entrée 1 sur les ports digitaux de la R3 serait soit de 0.6 soit 0.7xVcc (Donc 3 ou 3.5V avec notre alim à 5V) Du coup je me faisais la réflexion qu'on serait un peu limite avec notre 3.7V, si l'alim a un coup de peps en plus ou si l'ampli ne crache pas autant que son équivalent théorique de Spice, on risque de ne plus recevoir l'info PMH. Ton montage a l'air beaucoup plus fiable de ce point de vue là.

Edited by nono des montagnes
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

Ce site web utilise les cookies pour améliorer votre expérience de navigation.