~~NOTOC~~ ======Maquette serrure codée (Digicode)====== Nous avons découvert les systèmes automatisés et leur programmation à travers des activités simples les années précédentes. Nous allons aujourd'hui étudier et programmer un système plus complexe. **Compétence(s)** * CT 4.2 Appliquer les principes élémentaires de l’algorithmique et du codage à la résolution d’un problème simple. * CT 5.5 Modifier ou paramétrer le fonctionnement d’un objet communicant. **J’ai acquis la(les) compétence(s) si :** * Je suis capable de modifier un algorithme de fonctionnement initial afin de répondre à un nouveau besoin * J'ai acquis les notions de variables, sous-programmes, temporisations/délais {{ cours:digicode.jpg?200|}}{{ cours:maquette_keypad_attiny1616.jpg?200|}} Nous allons programmer le déverrouillage d'une porte à l'aide d'un digicode. =====Composition===== ===Matériel=== * [[Uno|Carte Arduino Uno]] * Shield Arduino * [[keypad_attiny1616|Clavier sensitif Keypad ATtiny1616]] * Led rouge et Led verte Ø5 mm * [[sg90|Servomoteur DGservo 9g]] * Câbles * Platine support ===Logiciel=== {{ coursp:connexions.jpg?200|Cliquer pour agrandir}} Programme réalisé avec [[mblock|mBlock]] pour la carte Arduino Uno nécessite les extensions : * uBrick.Serial (de u238) * STRINGS (de Santiagoluria) ===Branchements=== ^ ARDUINO ^ Keypad ^ Servo ^ LED ^ | 3 | | Orange | | | 4 | TX | | | | 5 | RX | | | | 5 | | | **Rouge** | | 6 | | | **Verte** | | GND | GND | Noir | Cathode | | 5V | VCC | Rouge | | =====Activités===== Analyser le programme suivant et le compléter pour déverrouiller la serrure si le code est bon. {{ cours:programme_initial.jpg?800 |Cliquer pour agrandir}} ====1 - Transcodage du code des touches==== Modifier la boucle principale pour * allumer la led verte et éteindre la led rouge si le code saisie est le bon * allumer la led rouge et éteindre la led verte si le code saisie est mauvais Modifier le sous-programme "Lecture touche" pour modifier le code lu en code ASCCI de la touche. ++++Coup de pousse| * Si la valeur lu est -1 c'est qu'aucune touche n'a été activé. Retourner le code ASCII 32 (espace) ou 0 (NULL) * Le code ASCCI des touches 1 à 9 se trouve en faisant une soustraction * Pour *, 0, #, il faudra 3 tests (Si) pour indiquer le bon code ASCII ++++ Tester le programme et le montrer au professeur lorsqu'il fonctionne. ====2 - Déverrouillage serrure==== * Lorsque le programme fonctionne la led rouge seule doit être allumée et le serrure verrouillé (servo à 0°) * Si le bon code est fourni, la led verte s'allume et la serrure se déverrouille (servo à 90°) pendant 3 secondes. * Sinon la serrure reste verrouillé et la led rouge flashe (s'éteint 1.2s) ++++Coup de pousse| * Penser à l'initialisation des LEDs et du servo (état au démarrage). * Penser que rien ne change d'état sans recevoir un ordre. ++++