Table des matières:
- Étape 1: Qu'est-ce qu'un capteur à effet Hall ?
- Étape 2: Qu'est-ce qu'une interruption ?
- Étape 3: Connexions et code
- Étape 4: Actions supplémentaires
Vidéo: Capteur à effet Hall Arduino avec interruptions : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
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 ?
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 ?
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
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
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é:
Conversion du capteur à effet Hall Logitech 3D Extreme Pro : 9 étapes
Conversion du capteur à effet Hall Logitech 3D Extreme Pro : La commande de la gouverne de direction sur mon joystick s'éteignait. J'ai essayé de démonter les pots et de les nettoyer, mais cela n'a pas vraiment aidé. J'ai donc commencé à chercher des pots de remplacement et je suis tombé sur quelques sites Web différents d'il y a plusieurs années qui font référence
Alarme de capteur à effet Hall : 7 étapes (avec photos)
Alarme de capteur à effet Hall : je vais vous montrer comment créer une alarme de sécurité simple à l'aide d'un capteur à effet hall. Les capteurs à effet hall sont utilisés dans de nombreux domaines tels que l'automobile, les moteurs à courant continu, le couvercle magnétique pour téléphone portable. j'ai eu le mien d'un vieux pc poussiéreux
Comment construire votre propre anémomètre à l'aide de commutateurs Reed, d'un capteur à effet Hall et de quelques rebuts sur Nodemcu - Partie 2 - Logiciel : 5 étapes (avec photos)
Comment construire votre propre anémomètre à l'aide d'interrupteurs Reed, d'un capteur à effet Hall et de quelques rebuts sur Nodemcu - Partie 2 - Logiciel : IntroductionCeci est la suite du premier article "Comment construire votre propre anémomètre à l'aide d'interrupteurs Reed, d'un capteur à effet Hall et de quelques rebuts sur Nodemcu - Partie 1 - Matériel" - où je montre comment assembler la mesure de la vitesse et de la direction du vent
Comment construire votre propre anémomètre à l'aide de commutateurs Reed, d'un capteur à effet Hall et de quelques rebuts sur Nodemcu. - Partie 1 - Matériel : 8 étapes (avec photos)
Comment construire votre propre anémomètre à l'aide de commutateurs Reed, d'un capteur à effet Hall et de quelques rebuts sur Nodemcu. - Partie 1 - Matériel : IntroductionDepuis que j'ai commencé avec les études d'Arduino et de la culture Maker, j'ai aimé construire des appareils utiles en utilisant des déchets et des déchets tels que des capsules de bouteilles, des morceaux de PVC, des canettes de boisson, etc. J'aime donner une seconde la vie à n'importe quel morceau ou à n'importe quel compagnon
Capteur à effet Hall sur Arduino à l'aide de Fidget Spinner : 3 étapes (avec photos)
Capteur à effet Hall sur Arduino à l'aide de Fidget Spinner: RésuméDans ce projet, j'explique le fonctionnement du capteur à effet Hall en mesurant la vitesse de fidget spinner avec une carte arduino. fonctionnement :-Un capteur à effet Hall est un transducteur qui fait varier sa tension de sortie en réponse à un champ magnétique. Effet Hall