Comment spécifier des fonctions définies par l'utilisateur pour votre entrée projet Arduino système de clavier

La dernière partie du code pour votre système d'entrée du clavier projet Arduino contient quatre fonctions que la poignée identifiant la touche enfoncée, l'envoi de commandes à la puce Max, effacement de l'affichage, et l'activation du mécanisme de la porte.

La partie intelligente de ce code est de savoir comment cette action est déterminée. Il utilise le code par Michael Margolis dans son indispensable ouvrage de référence, Arduino Cookbook, publié par O'Reilly Media. Les broches numériques pour les lignes ont été tirés vers le haut au cours HAUTE installer(). Cela signifie que la lecture de ces axes sera toujours évaluer à élevé, sauf si quelque chose d'autre les tire bas - comme une pression de touche en les reliant à un axe de colonne basse.

La getKey fonction passe par chacune des broches numériques connectés aux repères de la colonne de votre clavier et définit la broche pour les faibles. Il vérifie ensuite si les broches de ligne sont désormais également faible. Les résistances de pull-up vous avez utilisés dans installer() garder les repères de la rangée à forte - sauf si une touche a été pressé, le reliant à un axe de colonne basse!

La tandis que déclaration ne fonctionne que tant qu'une condition existe, dans ce cas, lorsque l'un des repères de la rangée est maintenant faible en raison d'une pression de touche. A ce moment, la Keymap est consulté pour trouver le numéro correspondant pour cette ligne et de la colonne, ce qui est stocké dans la variable clé.




Ensuite, vous faites un peu de ménage, le réglage de tous les repères de la colonne de retour à élevé, pour la prochaine fois. Enfin, la valeur de clé est renvoyé à la partie du programme qui a fait la demande. Ouf!

La seule chose qui reste est pour déverrouiller la porte de votre forteresse / château / laboratoire. Si vous ne l'avez pas déjà fait, ajoutez la dernière partie de votre code à la fin. Dans le déverrouiller () fonction, les quatre sendCommand () instructions imprimer le message “ HI ” à l'affichage. Il est agréable de recevoir un accueil chaleureux - si seulement une brève. Puis l'action se passe.

La strikePin est écrit MAXIMUM, qui fournira le transistor de puissance à commander le relais. Quand il est activé, le pouvoir est autorisé à passer à votre mécanisme de déverrouillage pour la durée spécifiée par doorOpenTime. Ensuite, vous définissez strikePin trop faible pour tenir à l'écart des infâmes, des espions, des intrus et des mécréants.

Si vous ne l'avez pas déjà fait, téléchargez le code et croiser les doigts. Lorsque vous appuyez sur une touche, vous devriez voir son numéro affiché dans votre module LED. Ouvrez l'écran de série dans l'Arduino IDE et d'observer ce qui se passe lorsque vous appuyez sur une touche. Si tout est correctement connecté, vous devriez voir les clés identifiés et le codeBuffer [] progressivement rempli avec les valeurs que vous avez saisies.

Si vous ne voyez pas les chiffres soient allumés sur votre module LED, vérifiez à nouveau vos connexions. Si vous ne voyez pas les valeurs correctes sur votre moniteur de série, assurez-vous qu'il n'y a pas d'erreur dans votre code et que les valeurs de rowPins et colPins sont corrects. Après que vous avez confirmé tout cela est travail, vous pouvez passer, d'ajouter le module de relais d'ouverture et la porte.

Si ça ne marche pas, vous ne serez pas en mesure de tester le mécanisme de relais et porte.

Pour préparer votre Arduino pour sa vie à travailler comme un garde de sécurité, mis en DEBUG à faux et télécharger le code une dernière fois. Retirez la connexion USB de votre Arduino parce que vous ne serez pas plus besoin. L'alimentation se fera à partir de votre transformateur de puissance.


» » » » Comment spécifier des fonctions définies par l'utilisateur pour votre entrée projet Arduino système de clavier