Sections > Vos projets et Montages d'Électronique

Tachymètre et Raspberry

(1/4) > >>

clement:
Bonjour à  tous,

Je souhaite partager avec vous la recherche et le développement d'un petit circuit éléctrique qui semblera sans doute simple à  certains, mais qui reste douteux à  mes yeux.

Le sujet: utiliser un Raspberry Pi pour "lire" les RPM d'un moteur.  (À partir de là  j'ai déjà  perdu une partie de l'auditoire "anti-raspberry" ;-) )

Concrètement, j'ai un moteur, équipé d'un "trigger coil" (c'est une pièce de l'alternateur qui donne une impulsion à  chaque tour moteur, par effet Hall), je souahite "lire" le signal émit par cette pièce afin de connaitre le RPM du moteur. Les courbes caractéristiques des impulsions sont les suivantes:



Ces courbes sont ce qu'elles sont et le but est de les traiter afin de les rendre lisible par un Raspberry. Le nombre de RPM maxi est de 8000RPM, ainsi un port GPIO du Raspberry fera parfaitement l'affaire en terme de rapidité. Le premier problème auquel je suis confronté c'est bien entendu la tension... un port GPIO de Raspberry accèpte 3.3V

Je mets donc immédiatement de côté la solution "100 ohms" qui donne des tensions à  l'impulsion autour de 80V à  6000RPM. Le circuit devra donc avoir une impédance de 100 Kohms.
J'ai donc créé ce circuit dont je vais expliquer mes choix:



La courbe "6000RPM à  100 Kohms" indique une tension "peak" d'environ 12V, la loi d'ohms me permet de connaitre l'intensité qui en résulte: U = R x I; U / R = I ; 12 / 100^3 = ce qui donne 12uA
On peut alors calculer la "puissance" de l'impulsion: P = U x I; P = 12 x 12â»â¶; P = 144uW
Pour ma part j'ai choisi de commencer par une résistance de 10 Kohms, ainsi le courant parcourant R16 est de: P = R x I²; √(P / R) = I; √(144â»â¶ / 10³) = 120uA
La tension au borne de R16 sera alors de U = R x I; U = 10³ x 120â»â¶ = 1.2V  (j'ai l'impression qu'il y a une incohérence ici... où est mon erreur ?)
La diode D6 permet de supprimer la composante négative du signal source, je me demande si 1.2V ne serait pas une valeur trop faible... R16 est peut-être superflue ? Qu'en pensez-vous ?
Continuons tout de même... nous arrivons à  R17 et D7 qui permet de limiter la tension à  3.3V afin d'être sûr de ne jamais excéder la tension maxi du port GPIO du raspberry. Cependant notre précédent calcul nous donnait 1.2V... raison deplus pour douter de l'utilité de R16. Aussi la diode D6 ayant un "Forward voltage" de 0.6V, la tension traversant R17 est de 1.2V - 0.6V = 0.6V  (suis-je correct ?)

Afin que le port GPIO du Raspberry "détecte" les peak il va me falloir amplifier ce 0.6V afin d'obtenir 3.3V.  Le problème avec tous ça c'est que ce calcul (si il est juste) est valable uniquement quand le moteur tourne ) 6000RPM. mais lorsque le moteur tourne à  500RPM tous les calculs vont changer... ça devient un petit casse-tête pour moi !

Que pensez-vous de ma méthode de calcul ? est-telle correcte ? totalement fausse ? suis-je parti dans la mauvaise direction ? Que me conseillez-vous ?

Bien cordialement,
Clément

Électro-Bidouilleur:
Je vais laisser d'autres vous alimenter en réponses pour le moment. Mais la première chose que je ferais serait d'utiliser un opto-coupleur. Le RPi est fragile, et les impulsions semblent trop "incontrôlées" pour en tirer l'énergie pour produire une belle impulsion 0-3,3V.

clement:
Un opto-coupleur est en effet une protection parfaite. La diode Zener 3.3V (D7) n'est pas une protection aussi fiable quand il s'agit de "limiter" une tension ?
Il reste tout même un filtrage à  faire car le "bruit" du signal varie entre -2 et +2 V, ce qui suffirait à  déclencher l'optocoupleur. Hors je veux que seul les "peak" atteingnent le port GPIO.

Un filtre passe bas semble tout indiqué mais je ne vois pas comment m'y prendre...
Aussi je n'arrive pas à  reproduire ce signal "pulse + noise" dans un simulateur de circuit ce qui rend la recherche de la "solution miracle" très difficile.

clement:
Le sujet ne semble pas emballer grand monde  ;)

Pour ceux qui sont découragé à  la lecture de mon "grand" message, voici un résumé, peut-être vous trouverez plus ludique de m'aider comme ça:

Un alternateur envoie des pulsations sur un fil dont la courbe caractéristique est dans mon premier message de ce topic. Je souhaite afficher les RPM issu de ces pulsations sur un RPi.
Il y a 2 problèmes: 1) il faut que le signal soit de 3.3V lorsqu'une pulsation est détecté  2) il faut que les parasites entre les pulsations soit supprimé pour être certains de ne pas puluer le comptage des RPM.

hmmm résumé en 2 lignes... c'est ça  :D
Je pense avoir la solution pour limiter les pulsations à  3.3V par contre je n'ai pas la solution pour la partie "filtrage"... Un petit coup de pouce ?

Bien cordialement,
Clément

Multiman78:
metttre un entré un AOP en comparateur pour faire un joli signal... Après je sais pas

Navigation

[0] Index des messages

[#] Page suivante

Utiliser la version classique