Circuit de tachymètre Arduino pour des lectures précises

Essayez Notre Instrument Pour Éliminer Les Problèmes





Un tachymètre est un appareil qui mesure le régime ou la vitesse angulaire d'un corps en rotation. Il diffère du compteur de vitesse et du compteur kilométrique car ces dispositifs traitent de la vitesse linéaire ou tangentielle du corps tandis que le tachymètre a.k.a. «tach» traite plus fondamentalement le régime.

Par Ankit Negi



Le tachymètre est composé d'un compteur et d'une minuterie, les deux travaillant ensemble fournissent le RPM.Dans notre projet, nous allons faire de même, en utilisant notre Arduino et certains capteurs, nous allons configurer à la fois un compteur et une minuterie et développer notre tachymètre pratique et facile .

Conditions préalables

Le compteur n'est rien d'autre qu'un appareil ou une configuration qui peut compter tout événement régulier comme le passage d'un point dans le disque pendant la rotation. Au départ, les compteurs ont été construits en utilisant la disposition mécanique et des liaisons telles que des engrenages, des cliquets, des ressorts, etc.



Mais maintenant, nous utilisons des compteurs dotés de capteurs et d'électronique plus sophistiqués et plus précis.

Dans notre Arduino Uno, il existe des minuteries qui non seulement gardent une trace du temps, mais maintiennent également certaines des fonctions importantes d'Arduino. Dans Uno, nous avons 3 minuteries nommées Timer0, Timer1 et Timer2. Ces minuteries ont les fonctions suivantes: • Timer0 - Pour les fonctions Uno comme delay (), millis (), micros () ou delaymicros ().

• Timer1 - Pour le fonctionnement de la bibliothèque d'asservissement.

• Timer2 - Pour des fonctions telles que la tonalité (), pas un ().

Parallèlement à ces fonctions, ces 3 minuteries sont également responsables de la génération de la sortie PWM lorsque la commande analogWrite () est utilisée dans la broche désignée PMW.

Concept d'interruptions

Dans Arduino Uno, un outil caché est présent qui peut nous donner accès à un grand nombre de fonctionnements connus sous le nom d'interruptions de la minuterie. codes que votre Uno exécutait auparavant, mais une fois qu'une interruption est appelée Arduino, exécutez l'instruction mentionnée dans l'interruption.

aimant sur l

Désormais, l'interruption peut être appelée à certaines conditions définies par l'utilisateur à l'aide d'une syntaxe Arduino intégrée.Nous utiliserons cette interruption dans notre projet qui rendra notre tachymètre plus résolu et plus précis que l'autre projet Tachometer présent sur le Web.

Composants requis pour ce projet de tachymètre utilisant Arduino

• Capteur à effet Hall (Fig.1)

module de capteur à effet Hall

• Arduino Uno

Carte Arduino UNO

• Petit aimant

petit aimant

• Fils de cavalier

• Objet rotatif (arbre moteur)

docteur moteur

Configuration du circuit

• La configuration pour la création est la suivante:

• L'arbre dont la vitesse de rotation doit être mesurée est équipé d'un petit aimant à l'aide d'un pistolet à colle ou d'un ruban isolant.

• Le capteur à effet Hall a un détecteur à l'avant et 3 broches pour les connexions.

• Les broches Vcc et Gnd sont respectivement connectées aux broches 5V et Gnd d'Arduino. La broche de sortie du capteur est connectée à la broche numérique 2 de l'Uno pour fournir le signal d'entrée.

• Tous les composants sont fixés dans une carte de montage et le détecteur de Hall est indiqué à partir de la carte.

Programmation

int sensor = 2 // Hall sensor at pin 2
volatile byte counts
unsigned int rpm //unsigned gives only positive values
unsigned long previoustime
void count_function()
{ /*The ISR function
Called on Interrupt
Update counts*/
counts++
}
void setup() {
Serial.begin(9600)
//Intiates Serial communications
attachInterrupt(0, count_function, RISING) //Interrupts are called on Rise of Input
pinMode(sensor, INPUT) //Sets sensor as input
counts= 0
rpm = 0
previoustime = 0 //Initialise the values
}
void loop()
{
delay(1000)//Update RPM every second
detachInterrupt(0) //Interrupts are disabled
rpm = 60*1000/(millis() - previoustime)*counts
previoustime = millis() //Resets the clock
counts= 0 //Resets the counter
Serial.print('RPM=')
Serial.println(rpm) //Calculated values are displayed
attachInterrupt(0, count_function, RISING) //Counter restarted
}

Téléchargez le code.

Connaître le code

Notre tachymètre utilise un capteur à effet Hall Le capteur à effet Hall est basé sur l'effet Hall du nom de son découvreur Edwin Hall.

L'effet Hall est un phénomène de génération de tension à travers un conducteur porteur de courant lorsqu'un champ magnétique est introduit perpendiculairement au flux de courant. Cette tension générée en raison de ce phénomène aide à la génération du signal d'entrée. Comme mentionné, l'interruption sera utilisée dans ce projet, pour appeler l'interruption, nous devons configurer une condition. Arduino Uno a 2 conditions pour appeler des interruptions-

ÉLEVÉ - Lorsqu'il est utilisé, l'interruption est appelée à chaque fois que le signal d'entrée passe de LOW à HIGH.

FALING-Lorsqu'il est utilisé, l'interruption est appelée lorsque le signal passe de HIGH à LOW.

Nous avons utilisé le RISING, ce qui se passe, c'est que lorsque l'aimant placé dans l'arbre ou l'objet rotatif se rapproche du détecteur à effet Hall, un signal d'entrée est généré et une interruption est appelée, l'interruption lance la fonction de routine de service d'interruption (ISR), qui comprend l'incrément la valeur de comptage et donc le comptage a lieu.

Nous avons utilisé la fonction millis () d'Arduino et previoustime (variable) en correspondance pour configurer la minuterie.

Le RPM est donc finalement calculé en utilisant la relation mathématique-

RPM = Compte / Temps pris En convertissant les millisecondes en minutes et en réarrangeant, nous obtenons la formule = 60 * 1000 / (millis () - heure précédente) * compte.

Le délai (1000) détermine l'intervalle de temps après lequel la valeur de RPM sera mise à jour à l'écran, vous pouvez ajuster ce délai en fonction de vos besoins.

Cette valeur de RPM obtenue peut en outre être utilisée pour calculer la vitesse tangentielle de l'objet en rotation en utilisant la relation v = (3,14 * D * N) / 60 m / s.

La valeur de RPM peut également être utilisée pour calculer la distance parcourue par une roue ou un disque en rotation.

Au lieu d'imprimer les valeurs sur le moniteur série, cet appareil peut être rendu plus utile en connectant un écran LCD (16 * 2) et une batterie pour une meilleure utilisation.




Précédent: Circuit de pilote de moteur pas à pas utilisant IC 555 Un article: Circuit de mesure de capacité numérique utilisant Arduino