Arduino - RFID/NFC - Moteur servo
Dans ce tutoriel, nous allons apprendre à utiliser un tag RFID/NFC pour contrôler un moteur servo avec un Arduino. Voici comment cela fonctionne :
- Si un tag autorisé est tapé, l'Arduino fait tourner le moteur servo à 90°.
- Si un tag autorisé est tapé à nouveau, l'Arduino fait tourner le moteur servo à 0°.
- Le processus ci-dessus est répété indéfiniment.
Cela peut être appliqué pour verrouiller/déverrouiller un placard, un tiroir, une porte, ou pour ouvrir/fermer le distributeur de nourriture pour animaux...
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Sur le module RFID/NFC RC522 et le moteur servo
Si vous ne connaissez pas le module RFID/NFC RC522 et le moteur servo (brochage, fonctionnement, programmation...), renseignez-vous à leur sujet dans les tutoriels suivants :
- Arduino - RFID/NFC RC522 tutorial
- Arduino - Servo Motor tutorial
Comment ça fonctionne
- Les UID de certains tags RFID/NFC sont prédéfinis dans le code Arduino.
- L'utilisateur tape un tag RFID/NFC sur le lecteur RFID/NFC.
- Le lecteur lit l'UID du tag.
- Arduino reçoit l'UID du lecteur.
- Arduino compare l'UID lu avec les UID prédéfinis.
- Si l'UID correspond à l'un des UID prédéfinis, Arduino contrôle le moteur servo à 90°.
- Si le tag est tapé à nouveau, Arduino ramène le moteur servo à 0°.
- Ce processus est répété à l'infini.
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Dans le schéma de câblage ci-dessus, un seul adaptateur 5V fournit de l'énergie directement à l'Arduino, directement au moteur servo, et au module RC522 (indirectement via la broche 3.3V de l'Arduino).
Pour simplifier le processus, les broches du module RC522 sont directement connectées aux broches de l'Arduino. Cependant, cela peut entraîner un dysfonctionnement de l'Arduino dans certains cas car les broches de sortie de l'Arduino produisent une tension de 5V, tandis que les broches du module RC522 fonctionnent normalement à une tension de 3.3V. Par conséquent, il est conseillé de réguler la tension entre les broches de l'Arduino et celles du module RC522. Pour plus de détails, veuillez consulter le tutoriel Arduino - RFID RC522. Le schéma ci-dessous illustre comment réguler de 5V à 3.3V à l'aide de résistances :
This image is created using Fritzing. Click to enlarge image
※ NOTE THAT:
L'ordre des broches peut varier selon les fabricants. Utilisez TOUJOURS les étiquettes imprimées sur le module. L'image ci-dessus montre le schéma de brochage des modules du fabricant DIYables.
Tableau de câblage du module RFID/NFC RC522
RFID/NFC RC522 | Arduino |
---|---|
SS | → 10 |
SCK | → 13 |
MOSI | → 11 |
MISO | → 12 |
IRQ(not connected) | |
GND | → GND |
RST | → 9 |
VCC | → 3.3V |
Tableau de câblage du moteur servo
Servo Motor | Arduino | 5V DC Adapter |
---|---|---|
VCC (red) | → positive | |
GND (brown) | → negative | |
SIG (yellow) | → A5 |
Tableau de câblage de l'adaptateur 5V DC
5V DC Adapter | Servo Motor | Arduino |
---|---|---|
Positive | → VCC | |
Positive | -> Vin | |
Negative | → GND | |
Negative | → GND |
Code Arduino - Balise RFID/NFC unique
Étapes rapides
- Naviguez jusqu'à l'icône Libraries sur la barre gauche de l'IDE Arduino.
- Recherchez "MFRC522", puis trouvez la bibliothèque par GithubCommunity
- Cliquez sur le bouton Install pour installer la bibliothèque MFRC522.
Étant donné que l'UID n'est généralement pas imprimé sur l'étiquette RFID/NFC, la première étape que nous devons faire est de découvrir l'UID de l'étiquette. Cela peut être fait en :
- Copiez le code ci-dessus et ouvrez-le avec Arduino IDE
- Cliquez sur le bouton Upload dans Arduino IDE pour téléverser le code vers Arduino
- Ouvrez le moniteur série
- Placez une étiquette RFID/NFC sur le module RFID-RC522
- Obtenez l'UID sur le moniteur série
Après avoir UID :
- Mettez à jour l'UID à la ligne 20 du code ci-dessus. Par exemple, changez byte authorizedUID[4] = {0xFF, 0xFF, 0xFF, 0xFF}; en byte authorizedUID[4] = {0x3A, 0xC9, 0x6A, 0xCB};
- Téléversez à nouveau le code sur Arduino
- Apposez une étiquette RFID/NFC sur le module RFID-RC522
- Vous verrez le servo-moteur tourner à 90°
- Consultez la sortie sur le moniteur série
- Appuyez à nouveau sur la même étiquette RFID/NFC sur le module RFID-RC522
- Vous verrez le moteur servo tourner à 0°
- Voir la sortie sur le moniteur série
- Approchez une autre étiquette RFID/NFC du module RFID-RC522
- Observez le résultat sur le moniteur série
Code Arduino - Multiples étiquettes RFID/NFC
Nous pouvons permettre à plusieurs étiquettes RFID/NFC de contrôler un moteur servo. Le code ci-dessous utilise deux étiquettes comme exemple.
Effectuez les mêmes étapes que ci-dessus, puis appuyez sur chaque étiquette du module RFID-RC522. Le résultat sur le moniteur série apparaît comme ci-dessous :
Vous pouvez étendre le code ci-dessus pour trois, quatre ou plus de balises.