Fréquence de rotation avec capteur magnetic KMZ10A

Bonjour à tous,

Je souhaite mesurer avec un capteur magnétic de type KMZ10A la fréquence de rotation , par contre je ne trouve rien à ce sujet, quelqu'un aurait il une idée du code à utiliser pour afficher la fréquence en tr.min.

Merci pour votre aide

Bonjour

Ce capteur ne va pas pouvoir être connecté directement à l'Arduino sans un étage analogique approprié. C'est un capteur de mesure, adapté pour faire un compas électronique par exemple. le type de sortie requière un amplificateur différentiel afin de délivrer une tension proportionnelle au champ magnétique dans lequel il est placé. Ce capteur est à mon sens pas le meilleur choix pour cette application.

Pour mesurer une vitesse de rotation tu as besoin seulement d'une impulsion au moment où l'aimant passe devant le capteur. L'US1881 par exemple me semble plus approprié.

Une fois que tu obtient un signal impulsionnel quand l'aimant passe devant le capteur, il va falloir compter.

Je suppose que tu ne vas pas tourner à plus de 1000 tr/min. Dans ce cas, le mieux est de délivrer une impulsion propre et sans rebonds à une broche d'interruption du Nono. Dans la routine d'interruption tu incrémente une variable. Dans loop() tu regarde régulièrement la valeur et en fonction de combien la valeur a été incrémentée et du temps entre 2 lectures, tu déduit la vitesse.

barbudor: Bonjour

Ce capteur ne va pas pouvoir être connecté directement à l'Arduino sans un étage analogique approprié. C'est un capteur de mesure, adapté pour faire un compas électronique par exemple. le type de sortie requière un amplificateur différentiel afin de délivrer une tension proportionnelle au champ magnétique dans lequel il est placé. Ce capteur est à mon sens pas le meilleur choix pour cette application.

Pour mesurer une vitesse de rotation tu as besoin seulement d'une impulsion au moment où l'aimant passe devant le capteur. L'US1881 par exemple me semble plus approprié.

Une fois que tu obtient un signal impulsionnel quand l'aimant passe devant le capteur, il va falloir compter.

Je suppose que tu ne vas pas tourner à plus de 1000 tr/min. Dans ce cas, le mieux est de délivrer une impulsion propre et sans rebonds à une broche d'interruption du Nono. Dans la routine d'interruption tu incrémente une variable. Dans loop() tu regarde régulièrement la valeur et en fonction de combien la valeur a été incrémentée et du temps entre 2 lectures, tu déduit la vitesse.

bonjour Il me semblait avoir lu le mot turbine ? ça a disparu à l'edit ? si c'est le cas il est plus que certain que ça depasse sur l'arbre primaire les 1000 tr/min et je suis d'accord ce n'est à priori pas le composant le plus adapté. Mike74 c'est pour mesurer la vitesse sur quoi exactement ?

Hello, oui Artoust, c’est pour mesure la vitesse d’une turbine, vitesse max = 120 000 tr.min

c’est le capteur qui est installé d’origine dessus et qui est couplé à un LM358, sortie 3 fils, alim + mesure, je pense que le choix d’un tel type de capteur s’impose car impossible de placer un aimant sur le compresseur de la turbine, cela provoquerai un déséquilibre.

Cette solution doit mesurer à mon avis les variations du champ magnétique à chaque passage des 6 aubes.

Mike74: Hello, oui Artoust, c'est pour mesure la vitesse d'une turbine, vitesse max = 120 000 tr.min

c'est le capteur qui est installé d'origine dessus et qui est couplé à un LM358, sortie 3 fils, alim + mesure, je pense que le choix d'un tel type de capteur s'impose car impossible de placer un aimant sur le compresseur de la turbine, cela provoquerai un déséquilibre.

Cette solution doit mesurer à mon avis les variations du champ magnétique à chaque passage des 6 aubes.

Hé bien voilà, "artouste avoir bien lu le mot turbine" :grin: le capteur est donc surement utilisé là en réluctance variable.

Le capteur , c''est une monte d'origine ? c'est quoi comme turbine ? ça équipe quoi ? le capteur est donné en max pour 1MHz donc 6 aubes sur 120K tr/min c'est au moins en theorie encore dans les clous (720.000) si ton montage est déja integré = acquisition et sortie par AOP (LM358) , il faut voir si ça decroche

si le signal à Vmax est "propre" , le faire lire/acquerir par l'arduino sera surement possible.

donc avec plus d'infos, plus d'infos 8)

Donc tu as déjà l'ampli différentiel ? Pourquoi tu ne dis pas tout dès le 1er message ? Après faut pas s'étonner que les gens ne répondent pas aux questions quand elles sont mal posées.

Maintenant il est indispensable que tu sache EXACTEMENT le type de signal auquel tu as accès. Si c'est un signal analogique, il va peut être falloir le mettre en forme pour en faire une impulsion que tu puisse compter. De plus il faut savoir combien tu va avoir d'impulsion par tour ? Une impulsion par tour ou une par aube ? Par ce que 6 impulsions par tour çà va commencer à faire 12000 impulsions par secondes soit 83µs entre chaque impulsion. La solution à base d'interruptions pourrait être limite. Le soft peut suivre à condition d'être sur à 100% que les interruptions ne sont jamais désactivées plus de 80µs. L'alternative serait d'utiliser un des TIMER 16 bit dispo comme compteur.

Donc 1ère étape, regarder au scope l'allure du signal : amplitude min/max, forme et fréquence.

Ensuite ajouter un montage comparateur à hystérésis pour en faire un beau signal carré 0V/5V.

Artouste: le capteur est donné en max pour 1MHz donc 6 aubes sur 120K tr/min c'est au moins en theorie encore dans les clous (720.000)

120000 tours par minute avec 6 aubes ca fait (6 * 120000)/60 = 12kHz. ;)

si le signal à Vmax est "propre" , le faire lire/acquerir par l'arduino sera surement possible.

Quand je lit "acquérir" j'ai peur que tu sous-entendes conversion analogique/numérique. Là c'est au delà de que le Nono sais faire proprement. Il faut convertir en impulsion pour compter par interruption ou entrée TIMER.

barbudor:

Artouste: le capteur est donné en max pour 1MHz donc 6 aubes sur 120K tr/min c'est au moins en theorie encore dans les clous (720.000)

120000 tours par minute avec 6 aubes ca fait (6 * 120000)/60 = 12kHz. ;)

si le signal à Vmax est "propre" , le faire lire/acquerir par l'arduino sera surement possible.

Quand je lit "acquérir" j'ai peur que tu sous-entendes conversion analogique/numérique. Là c'est au delà de que le Nono sais faire proprement. Il faut convertir en impulsion pour compter par interruption ou entrée TIMER.

non barbudor là j'entend par acquerir = déjà faire un integration numerique avant l'arduino = un top par aube, pas besoin de dedier cette tache ingrate consommatrice de temps à l'arduino :grin:

ok, bien je vais mesurer la tension de sortie à 0 tr.min puis à 120 000 tr.min, ce qui me permettra de calculer le rapport V/tr.min.

Ensuite comment appliquer (code) ce rapport pour le calcul de la fréquence de rotation et l'affichage ?

Merci pour votre aide.

Mesurer avec un voltmètre est insuffisant. Si le signal est une forme d'onde qui évolue entre un min et un max (genre sinus par exemple) avec un voltmètre tu ne vas mesurer que la valeur efficace. Il faut regarder la forme du signal avec un oscilloscope afin de déterminer les valeurs min et max (et éventuellement voir leur évolution en fonction de la fréquence).

Après tu peux calculer un comparateur à hystérésis (appelé aussi trigger de schmitt) pour convertir ce signal analogique en un signal logique qui puisse piloter une entrée numérique de l'Arduino.

Merci Barbudor,

très bien je vais investir dans un oscillo et faire cette démarche :)

Je vous tiens informer de la suite.

En acheter un que pour çà ? Des oscillos ça peut aussi se louer si vous n'en avez pas et si la boite ne veut pas en acheter un. Enfin je suppose qu'une turbine à120000tr/min c'est dans un environnement professionnel ?

Mike74: Merci Barbudor,

très bien je vais investir dans un oscillo et faire cette démarche :)

Je vous tiens informer de la suite.

bonjour investir dans un oscillo c'est de toutes façons toujours utile :grin: , mais si tu en disais un peu plus sur le système exact et son intégration sur la turbine, cela permettrais déjà d'envisager la suite.

Si ton systeme intégré à base de KMZ10A delivre une tension proportionnelle à la vitesse et là pour une entrée ana arduino tu va te retrouver aux alentours d'une résolution de 100 Trs/" (120.00 Trs/' max) , ce qui In fine pour une turbine qui fonctionne toujours en régime établi sur une faible plage de vitesse efficace est déjà pas mal.

barbudor: En acheter un que pour çà ? Des oscillos ça peut aussi se louer si vous n'en avez pas et si la boite ne veut pas en acheter un. Enfin je suppose qu'une turbine à120000tr/min c'est dans un environnement professionnel ?

Bonjour barbudor ça s'utilise aussi en amateur tres tres eclairés pour le modelisme (ou meme le vol humain et là il n'y a pas encore de "S" à humain 8) ) mais en general c'est fourni avec l'interfaçage "kivabien"

voir par exemple les motorisations d'yves rossi http://www.jetcat.de/downloads/jetcat-katalog-2011-1-web.pdf

Oui bien en fait le projet personnel sur lequel je travail est la réalisation d’un système de gestion “ECU” pour une turbine de ce type,donc une précision de 100 tr.min est largement suffisant.

Donc je pense qu’investir dans un oscilloscope est une bonne idée, un oscilloscope “pc” est une bonne solution ?

merci pour l’aide :slight_smile:

Mike74: Oui bien en fait le projet personnel sur lequel je travail est la réalisation d'un système de gestion "ECU" pour une turbine de ce type,donc une précision de 100 tr.min est largement suffisant.

Donc je pense qu'investir dans un oscilloscope est une bonne idée, un oscilloscope "pc" est une bonne solution ?

merci pour l'aide :)

non là la résolution mini eventuellement envisageable n'est pas de 100 tours par minute mais bien de 100 tours par seconde (X facteur 60) soit 6000 tours/minute. (calcul à la louche de precision :grin: )

oscilloscope PC , ça ne veut rien dire :D entre l'acquisition soft par carte son (cout = quasi 0) et du matériel genre picoscope http://www.picotech.com/oscilloscope.html ça ne "tire pas" dans la même catégorie, ni pour le même "prix" 8)

aujourd'hui il se trouve sur les sites de ventes entre particuliers, des "oscillos analogique(numerique)" réputés parfaitement exploitables "en arduino et autres"

ça se trouve en bonne condition entre 20 € et 300 € selon la BP et le nombre de voies.

Que penses tu de ce type d'oscillo ?

HANTEK DSO1062B

ou

Oscilloscope numérique 100Mhz ADS1102CAL

J'ai entendu dire du bien de Rigol :

http://www.rigoloscilloscope.fr/wholesale/Oscilloscope-Rigol-DS1052E-Nouveau-24.html http://www.rigoloscilloscope.fr/wholesale/Oscilloscope-Rigol-DS1102E-Nouveau-25.html