Étape 2: logiciel
Le code n’est pas complex. Il y a les fonctions habituelles trouvées dans n’importe quel sketch Arduino. Il y a également quelques directives de préprocesseur déclarant certains numéros de magie et de permettre une compilation opérationnel vs de débogage du code.
La fonction setup() initialise les tiges de sens et de sortie ainsi que les variables globales.
La fonction loop() effectue le travail opérationnel. Le corps principal de la fonction de boucle est effectué seulement chaque 50ms pour fournir une base de temps stable pour le reste du code. À la 50ms périodes de temps, l’état d’interrupteur reed est l’échantillon en utilisant l’entrée numérique de SENSE_PIN définie. (broche numérique 2). Si l’interrupteur reed indique que la porte est fermée alors aucune autre action importante ne provient autrement que pour réinitialiser la période de temps.
L’entrée est hors rebondie alors sur l’occasion où l’interrupteur reed indique que la porte est ouverte. C’est à dire, la porte doit s’inscrire comme open pour les échantillons de 5 ou plus successifs avant toute autre mesure ne soit prise.
Une fois que l’entrée de la sonde a été hors retournée puis la durée totale, que la porte a été ouverte est enregistrée.
Une séquence de bips de différentes longueurs et de chiffres à l’aide d’une succession de tests pour diverses périodes de temps est exécutée.
Le premier bip se produit lorsque la porte s’ouvre. Un autre à 15 secondes, puis à nouveau à 30 secondes. Puis toutes les 30 secondes après que, jusqu'à 3 minutes. Il y a un bip à 4 minutes. A cinq minutes, il y a un bip et puis le moniteur porte abandonne et va silencieux car il est évident que l’auteur n’est plus présent ou qu’il ne se soucie pas.
Les bips sont produites par une fonction appelée buzz(), qui génère une tonalité de 1000Hz set d’une durée déterminée et un nombre de fois spécifié. Le ton est envoyé sur BUZZER_PIN qui est dans ce cas fixé à sortie numérique 7.
N’importe quel cycle de bip désiré pourrait vraiment être programmé. Une légère modification au code pourrait également produire des tonalités différentes.
Le temps maintenant dans ce logiciel est approximatif. Il y a des retards dans l’opération chaque fois que se produit un signal sonore. Cependant le projet est suivi une porte plutôt que le temps pour le 100m nage libre lors des Jeux olympiques se rapproche donc suffisent à cet effet.