Lire un signal à effet HALL

Bonjour / Bonsoir,

Je suis actuellement entrain de faire un boitier additionnel pour ma voiture (Civic EE9 pour les connaisseurs)

J'ai un écran sur lequel j'affiche la température Huile / Eau, Pression Huile / Eau, il ne me reste que le régime moteur.

Je compte utiliser ce régime afin de commander certaines options à certains régimes (Shift Light, Rev Limiter, launch control, etc..)

J'ai déjà les connaissances pour 99% du code, mais je bloque sur un point : Lire le régime moteur !

Après deux jours de recherches infructueuses, je décide donc de poser la question directement en français et exposant clairement mon problème.

J'aimerais transformer le signal HALL (0v-5v) du capteur de position du vilebrequin, sachant que 1 tour de vilebrequin correspond à un tour moteur.

Je bloque sur certains point, comment le brancher ? dois-je prendre la masse 12v de la voiture dans une pin, avoir une masse commune entre l'arduino et la voiture, juste le cable +5v signal dans une pin, etc..?

c'est assez simple avec un ventilateur de PC lorsqu'il est alimenté directement par l'arduino, mais là vu que l'arduino et le capteur ont deux alimentation indépendante, j'ai du mal à trouver comment câbler et lire ce fichu régime moteur ^^

Merci d'avance pour votre aide :slight_smile:

le "capteur de position du vilebrequin" est à effet hall et vous donne une pulsation de sortie en 0/5V ou vous avez bricolé un aimant sur le vilebrequin et mis un capteur Hall ?

à quoi ressemble ce capteur?

Je ne saurait vous dire à quoi ce capteur ressemble, chez Honda tout les capteurs sont dans le boitier d'allumage situé à l’extrémité de l'arbre à cames, de ce boitier sort le capteur de position Point mort haut, point mort bas et position vilebrequin (et le signal de la bobine dont j'ai parlé, qui va directement au compte-tour)

Nous l'avons passé dans un oscilloscope il y a quelques mois, le signal est bien carré avec soit 0v, soit 5v ^^

Edit : C'est bien le capteur d'origine, pas un bricolage

OK :slight_smile:

et quand vous l'aviez mis dans l'oscilloscope, où aviez vous pris le GND ? --> faudra faire pareil avec votre Arduino connecter le GND à cet endroit.

Il n’y a pas de prise diagnostic (genre ODB) sur cette voiture?

Le capteur a sa propre masse, deux câbles rentrent dans l'allumage pour le capteur

Là est mon soucis, dans un tuto que j'ai regardé, il utilisait le signal du tachymétre (sortant de la bobine, également 5v Hall mais ayant comme masse le chassis) et lorsque je le branchait à l'arduino (même éteint) mon compte-tour tombait à zéro et l'arduino ne lisait aucune donnée

Donc si je fais comme ça, je devrais avoir un résultat d'aprés-vous :

+5v Capteur - Pin 7 PulseIn
Masse Capteur - Pin 10 Input

Je devrait récupérer une donnée sortant du "PulseIn" ?

Ou aviez vous branché l’oscilloscope ?

Ps : non la voiture n'est pas équipée d'une prise diagnostique, c'est une civic de 1988 (obd1)

J'ai pris la mesure à l'oscilloscope entre le + et le - du capteur (deux câbles qui sortent du système d'allumage)

Bonjour,
vas voir ICI peut etre que...
Cdt.

aswidow:
J'ai pris la mesure à l'oscilloscope entre le + et le - du capteur (deux câbles qui sortent du système d'allumage)

et avec ça vous aviez un truc tout propre, soit 0, soit 5V ? c'est ça ?

dans ce cas je ne vois pas pourquoi on aurait un souci avec une pin en INPUT_PULLUP sur le + du capteur et le GND de la carte Arduino sur le -, ça devrait le faire.

J'avoue que le passage de l'electricité auto à l'arduino me laisse un peut perdu ^^

Oui oui, signal propre (il n'y a aucune connexion physique entre le vilebrequin et le boitier d'allumage d'où sort ces câbles, le soucis chez honda qui rend complexe la chose c'est que le distributeur, la bobine, et le capteur position AAC se trouvent tous dans un seule boitier, je suppose donc qu'une puce interne à l'allumage transforme les mouvements de l'arbre à cames en plusieurs données pour le boitier (Point mort haut, Point mort bas, Signal d'allumage, et Position Vilebrequin

Pour avoir 5v à une pin, il faut créer un circuit fermé je suppose, donc le GND de l'arduino doit aller sur le - du capteur, c'est bien ça ?

(Schéma histoire de confirmer ^^)

oui exactement comme vous aviez connecté votre oscilloscope, en vous assurant que la PIN arduino sur lequel la connexion se fait soit en INPUT (pour présenter une énorme résistance)

Super, je vais m'y attaquer et je reviens vers toi une fois fini pour te tenir au courant, un grand merci pour ton aide :stuck_out_tongue:

Bonjour,

Je revient vers vous après quelques essais infructueux ^^

Voici le résultat : sur le capteur vilo, une fois l'arduino branché la voiture ne démarre plus, et avec le signal RPM, une fois l'arduino branché le compte-tour de la voiture ne fonctionne plus :confused:

Je pense que l'arduino "court-circuite" les capteurs en lisant leurs données, ce qui fausses les données lues par l'ECU qui n'apprécie pas trop ^^

J'ai eu un boitier "OMEX" il y a un moment, celui-ci obtenait le régime moteur simplement en étant branché sur le + et le - de la bobine d'allumage, si je ne dis pas de bêtise, lorsque la bobine se décharge lors d'une étincelle, la tension chute à zéro pendant un court instant, et c'est cette fréquence qu'il utilise pour calculer le régime moteur.

la bobine est alimentée en 12v, l'intensité n'est pas énorme vu la taille des câbles (1mm d’épaisseur sans gaine)

est-ce que je peut lire ce signal directement dans l'arduino avec un pont diviseur de tension ou dois-je obligatoirement utiliser un transistor pour protéger le tout ? (je n'ai plus de transistor et malheureusement avec le confinement plus rien ne livre dans ma région)

Une étincelle peut générer d’énormes tensions même si l’intensité est faible donc grosse prudence nécessaire.

Je ne vois pas comment l’arduino ferait court circuit sauf si les masses sont vraiment séparées et qu’en les reliant ça mettrait le souk...

Avez vous essayé d’alimenter l’arduino par une batterie indépendante de celle du véhicule ?

Je ne vois pas comment l'arduino ferait court circuit

+1
Une entrée ARDUINO est tout le contraire d'un court-circuit. Le courant de fuite est de l'ordre du µA, sauf avec pullup activée (30 à 60KΩ).

Bon point sur le pull-up

Je suppose que pour lire l'info que le courant circule, le signal 5V est relié au GND de l'arduino, qui se trouve également être le GND de la voiture (alimentation de la batterie avec pont diviseur pour tomber autour des 9v)

Mon premier test était avec une alimentation à piles 9v, j'ai relié la masse de la voiture à la masse de l'arduino dans une pin "GND", même résultat :confused:

Voici le branchement effectué :

devrais-je couper le câble "signal" et utiliser la partie compteur comme masse dans une pin, et la partie bobine comme input ?

1 Like