~~NOTOC~~
=======Maquette serrure à lecteur RFID=======
{{ :serrurerfid.jpg?200|Cliquer pour agrandir}}
Il s'agit de commander une gâche électrique (servomoteur) à partir de la lecture d'un badge RFID.
=====Composition =====
===Matériel===
* Une [[uno|carte Arduino Uno]]
* Un module RFID [[cap635|CAP635 (RC522)]] : broches RST = 9 et SDA = 10
* Un [[sg90|servomoteur]] : broche 3 fermé = 10° et ouvert = 150°
* Une LED rouge avec sa résistance de limitation : broche 4 qui indique "Porte fermé"
* Une LED verte avec sa résistance de limitation : broche 5 qui indique "Porte ouverte"
===Logiciel===
{{ :maquette_rfid_bb.png?200|Cliquer pour agrandir}}
Programme réalisé avec [[https://ide.mblock.cc]] pour la carte Arduino Uno nécessite les extensions :
* RC522RFID (Développeurs:techno.morceau)
===Branchements===
^ Arduino ^ RFID ^ Servomoteur ^ LEDs ^
| 3 | | Orange | |
| 4 | | | **Rouge** |
| 5 | | | **Verte** |
| 9 | RST | | |
| 10 | SDA | | |
| 11 | MOSI | | |
| 12 | MISO | | |
| 13 | SCK | | |
| +5V | | Rouge | |
| +3.3V | 3.3V | | |
| GND | GND | Noir | Cathode |
====Activité====
Analyser le programme suivant et le compléter pour déverrouiller la serrure si le code est bon.
{{ :programme_serrure_rfid.png?800 |}}
====1- Lecture badge====
Modifier le sous programme "Initialisation" pour au démarrage :
* Éteindre la led verte
* Allumer la led rouge (indicateur sous tension)
* Positionner le servomoteur à 0° (serrure verrouillée)
Modifier le sous programme "Lecture carte" pour :
* Faire flasher (allumer 0.2s) la led verte si un code est lu
Modifier le programme principal pour :
* que le numéro de carte valide corresponde a celui du badge de couleur unique (chiffes et lettres sans les tirets)
* que la led verte s'allume et le servomoteur se positionne à 90° pendant 3 seconde si le bon badge est lu.
* que la led rouge clignote 3 fois en 3 secondes si le badge n'est pas le bon.
====2- Lecture de plusieurs badges====
Modifier le programme pour que ce soit les 2 badges de couleur identiques qui puissent déverrouiller la serrure. \\
Il faut ajouter l'extension STRINGS pour utiliser une liste de codes.
* "Crea x variables tipo string" pour pouvoir définir x codes valides
* "Asigna xxx a srtVar y" pour assigner le code xxx à la variable-liste y. La 1ere variable-liste à la valeur 0 et la dernière la valeur x-1.
* Une seule comparaison ne suffit pas. Il faut faire une boucle (compteur) pour comparer tous les codes valides.
++++Coups de pouces|
* S'assurer, en utilisant une variable NbCodeValide que le nombres x de cartes valides créées est le même que celui des cartes vérifiées.
* Positionner une variable Ok à 1 ou 0 si un bon code est trouvé ou pas lors de la vérification.
* Un compteur est une boucle "Compter avec la variable i de x à y par pas de 1"
++++