Étape 4: Programme de l’Arduino
Tout d’abord programmer l’Arduino Uno avec le StandardFirmata exemple croquis fournis par Adafruit.
J’ai joint les fichiers que j’ai créé pour ce projet. Assurez-vous d’ajouter le House.h, House.cpp et pitches.h sous forme d’onglets dans le sketch de Main_Code. Le croquis doit être téléchargé sur le Micro de l’Arduino.
J’ai créé la maison de la bibliothèque, qui se compose de House.h et House.cpp.
Le fichier d’en-tête crée la classe en définissant le constructeur, les fonctions à utiliser dans le fichier Main_Code.ino, et les variables utilisées dans le fichier House.cpp.
Le fichier CPP définit ce que fait chaque fonction, lorsqu’elle est appelée dans le fichier Main_Code.ino. Tout d’abord, dans ce fichier, vous verrez les durées de mélodie et note de baies, ceux-ci sont utilisés par la fonction playtune(). J’ai copié cette fonction de garagelab.com, les définitions pour les notes sont en pitches.h. Le constructeur attribue les broches pour le périphérique et définit l’axe de sortie comme une sortie et l’entrée pin en tant qu’entrée. Les fonctions openDoor() et closeDoor() contrôlent le servo fixé à la porte. Les playTune() et silent() contrôlent la sortie haut-parleur.
Dans le Main_Code.ino, tout d’abord, j’ai défini les broches pour le porte, avertisseur sonore et les interruptions. Les interruptions sont fondées sur un changement de tension sur les broches d’entrée. Cette tension est modifiée lorsque vous modifiez la sortie de la broche dans l’app Adafruit. La fonction de porte assure le suivi de l’état précédent de la tension d’entrée pin porte donc si la porte était fermée auparavant, changeant la tension va ouvrir la porte et vice versa. Le vibreur aussi assure le suivi de la tension d’entrée pin buzzer donc si le buzzer était déjà éteint, il jouera la mélodie et si le ronfleur jouait précédemment, l’avertisseur sonore sera coupé. Remarque : La fonction playTune() est appelée lorsque l’indicateur prevBuzzer est défini sur 1 et elle est cochée dans la boucle principale. Il doit être dans la boucle principale, donc les retards de playTune() sera en vigueur. Retards ne courez pas à une interruption. Les déclarations de Serial.println() sont fournies pour des fins de débogage.