Table des matières:

Capteur à effet Hall Arduino avec interruptions : 4 étapes
Capteur à effet Hall Arduino avec interruptions : 4 étapes

Vidéo: Capteur à effet Hall Arduino avec interruptions : 4 étapes

Vidéo: Capteur à effet Hall Arduino avec interruptions : 4 étapes
Vidéo: INTERRUPTIONS IN ARDUINO COMMENT DECLARER UNE INTERRUPTION 2024, Juillet
Anonim
Image
Image
Qu'est-ce qu'un capteur à effet Hall ?
Qu'est-ce qu'un capteur à effet Hall ?

Salut à tous, Aujourd'hui, je vais vous montrer comment connecter un capteur à effet Hall à un Arduino et l'utiliser avec une interruption.

Outils et matériaux utilisés dans la vidéo (liens affiliés): Arduino Uno:

Capteurs à effet Hall:

Résistances assorties:

Étape 1: Qu'est-ce qu'un capteur à effet Hall ?

Qu'est-ce qu'un capteur à effet Hall ?
Qu'est-ce qu'un capteur à effet Hall ?
Qu'est-ce qu'un capteur à effet Hall ?
Qu'est-ce qu'un capteur à effet Hall ?
Qu'est-ce qu'un capteur à effet Hall ?
Qu'est-ce qu'un capteur à effet Hall ?

Un capteur à effet Hall est un appareil utilisé pour mesurer l'amplitude d'un champ magnétique. Sa tension de sortie est directement proportionnelle à la force du champ magnétique qui la traverse.

Les capteurs à effet Hall sont utilisés pour les applications de détection de proximité, de positionnement, de détection de vitesse et de détection de courant.

Celui avec lequel je vais travailler aujourd'hui est étiqueté 3144, qui est un commutateur à effet Hall principalement utilisé pour les applications à haute température et automobiles. Sa sortie est haute par défaut et passe au niveau bas une fois en présence d'un champ magnétique.

Le capteur a 3 broches, VCC, masse et sortie. Vous pouvez les identifier dans cet ordre si vous tenez le capteur avec les étiquettes vers vous. VCC est sur la gauche, et la sortie est sur le côté droit. Pour éviter toute dérive de tension, une résistance de 10k est utilisée entre VCC et la sortie dans une configuration pull-up.

Étape 2: Qu'est-ce qu'une interruption ?

Qu'est-ce qu'une interruption ?
Qu'est-ce qu'une interruption ?
Qu'est-ce qu'une interruption ?
Qu'est-ce qu'une interruption ?

Pour connecter le capteur sur l'Arduino, nous utiliserons une fonctionnalité simple mais très puissante appelée Interruption. Un travail d'interruption consiste à s'assurer que le processeur répond rapidement aux événements importants. Lorsqu'un certain signal est détecté, une interruption (comme son nom l'indique) interrompt tout ce que le processeur fait et exécute un code conçu pour réagir à tout stimulus externe envoyé à l'Arduino. Une fois ce code terminé, le processeur revient à ce qu'il faisait à l'origine comme si de rien n'était !

Ce qui est génial, c'est que cela structure votre système pour réagir rapidement et efficacement aux événements importants qui ne sont pas faciles à anticiper dans le logiciel. Mieux encore, cela libère votre processeur pour faire d'autres choses pendant qu'il attend qu'un événement apparaisse.

L'Arduino Uno a deux broches que nous pouvons utiliser comme interruptions, les broches 2 et 3. La fonction que nous utilisons pour enregistrer la broche en tant qu'interruption s'appelle attachInterrupt où, comme premier paramètre, nous envoyons la broche à utiliser, le deuxième paramètre est le nom de la fonction que nous voulons appeler une fois qu'une interruption est détectée et comme troisième paramètre, nous envoyons le mode dans lequel nous voulons que l'interruption fonctionne. Il y a un lien dans la description de la vidéo vers la référence complète pour cette fonction.

Étape 3: Connexions et code

Connexions et code
Connexions et code
Connexions et code
Connexions et code
Connexions et code
Connexions et code

Dans notre exemple, nous connectons le capteur à effets Hall à la broche 2 de l'Arduino. Au début de l'esquisse, nous définissons les variables pour le numéro de broche de la LED intégrée, la broche d'interruption ainsi qu'une variable d'octet que nous utiliserons pour modifier via l'interruption. Il est crucial que nous marquions celui-ci comme volatile afin que le compilateur puisse savoir qu'il est modifié en dehors du flux de programme principal via l'interruption.

Dans la fonction de configuration, nous spécifions d'abord les modes sur les broches utilisées puis nous attachons l'interruption comme expliqué précédemment. Une autre fonction que nous utilisons ici est digitalPinToInterrupt qui, comme son nom l'indique, traduit le numéro de broche en numéro d'interruption.

Dans la méthode principale, nous écrivons simplement la variable d'état sur la broche LED et ajoutons un très petit délai pour que le processeur puisse avoir le temps de fonctionner correctement.

Là où nous avons attaché l'interruption, nous avons spécifié blink comme deuxième paramètre et c'est le nom de la fonction à appeler. À l'intérieur, nous inversons simplement la valeur de l'état.

Le troisième paramètre de la fonction attachIntertupt est le mode dans lequel elle fonctionne. Lorsque nous l'avons en tant que CHANGEMENT, la fonction de clignotement sera exécutée à chaque fois que l'état d'interruption change. De cette façon, la LED est allumée pendant que nous tenons l'aimant près du capteur.

Si nous changeons maintenant le mode en RISING, la fonction de clignotement ne sera déclenchée qu'une fois qu'un front montant du signal est vu sur la broche d'interruption. Maintenant, chaque fois que nous approchons l'aimant du capteur, la LED s'éteint ou s'allume, nous avons donc essentiellement fait un interrupteur magnétique.

Le dernier mode que nous allons essayer est LOW. Avec lui, lorsque l'aimant est fermé, la fonction de clignotement sera constamment déclenchée et la LED clignotera, son état étant inversé tout le temps. Lorsque nous retirons l'aimant, il est vraiment imprévisible de savoir comment l'état se terminera car cela dépend du moment choisi. Cependant, ce mode est vraiment utile si nous avons besoin de savoir pendant combien de temps un bouton a été enfoncé car nous pouvons utiliser des fonctions de synchronisation pour le déterminer.

Étape 4: Actions supplémentaires

Actions supplémentaires
Actions supplémentaires

Les interruptions sont un moyen simple de rendre votre système plus réactif aux tâches urgentes. Ils ont également l'avantage supplémentaire de libérer votre `loop()` principale pour vous concentrer sur une tâche principale du système. (Je trouve que cela a tendance à rendre mon code un peu plus organisé lorsque je les utilise - il est plus facile de voir pour quoi le morceau principal de code a été conçu, tandis que les interruptions gèrent les événements périodiques.) L'exemple présenté ici est à peu près le plus cas de base pour l'utilisation d'une interruption - vous pouvez les utiliser pour lire un périphérique I2C, envoyer ou recevoir des données sans fil, ou même démarrer ou arrêter un moteur.

Si vous avez une utilisation intéressante d'un capteur d'interruption ou d'effets hall, assurez-vous de me le faire savoir dans les commentaires, aimez et partagez ce Instructable, et n'oubliez pas de vous abonner à ma chaîne YouTube pour d'autres tutoriels et projets géniaux dans le futur.

Bravo et merci d'avoir regardé!

Conseillé: