~~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" ++++