Étape 6: Arduino Code
Afin que notre projet à exécuter, nous avons besoin de télécharger le code à l’Arduino pour contrôler les composants électriques. Les bibliothèques sont incluses dans le fichier zip ci-dessous et les dossiers à l’intérieur doit être placé dans le dossier principal de bibliothèque Arduino sur votre ordinateur après avoir décompressé. Bibliothèques pour le capteur IR, moteur pas à pas et l’affichage à sept segments sont inclus. Le fichier zip ci-joint intitulé mangeoire pour chien contient le dossier avec l’Arduino croquis nécessaire à l’exécution du code. Cela doit simplement être flashé à l’Arduino afin que le code s’exécute.
Cette initialise les variables et définit certains États. Si vous commencez le code dans la soirée, vous voudrez int AMorPM plus haut.
Cette configuration s’exécute une fois et définit les broches comme entrées ou sorties. Il configure également la luminosité de l’afficheur 7 segments qui peut être ajusté.
C’est le début du code principal. On commence par initialiser combien de minutes jusqu'à la prochaine tétée. Si vous débutez dans la soirée et avez trop AMorPM élevé, alors vous devrez aussi changer les minutes ici à 960 (ou 16 heures jusqu'à la prochaine tétée). Cela fait aussi une première vérification pour s’assurer que la bouteille est en position verticale lorsque vous allumez le système sur que le cylindre tournera jusqu'à ce que le commutateur est frappé. La partie inférieure du code stipule que si la capacité du capteur tactile va de faible (c.-à-d. vous Serra) puis il règle la boucle d’alimentation haute, et le contact sera désactivé pour éviter plusieurs tétées.
Copiez le code suivant correspond à des télécommandes. Ces chiffres seront remplacés par les valeurs que vous avez reçu de la IRdecoder. Il y a une fonction pour l’exécution d’un cycle d’alimentation, exécutant une tasse supplémentaire (pour les jours où vous pensez que votre animal a besoin des calories supplémentaires) et une fonction pour remettre à zéro l’ensemble du système.
C’est la partie la plus importante du code - le cycle d’alimentation. Il commence par un grand « pas » à passer la plupart de la façon de contourner le système. Il puis ensembles pressées à basse, qui correspond à la limite de basculer. Si elle ne le rend pas complètement environ puis il a été une confiture, pour qu’il fonctionne grâce à une boucle while sans brouillage. Il commencera à prendre 30 étapes vers l’avant et 10 pas en arrière jusqu'à ce que le commutateur de limite qu'il a frappé. Une fois, en haut, il se déplace en arrière aider à secouer les aliments vers le bas dans le cylindre. Ce cycle commencera alors encore une fois, pour nourrir mon animal de compagnie un total de 2 tasses. Cela peut être réglé pour votre animal de compagnie en supprimant le second cycle.
Si le capteur de touche a été pressé pour une alimentation précoce, puis la fonction disableTouch est activée. Ce que j’appelle mon « caractéristique de Greg à l’épreuve ». J’ai un ami nommé Greg qui, je le sais, passent le temps en appuyant sur le capteur tactile maintes et maintes fois jusqu'à ce que tous les 20 lbs de nourriture pour chiens seraient éparpillés dans l’ensemble de mon plancher. Le capteur tactile sera activé à nouveau une fois écoulé le temps précoce qui se nourrissent, et cela remonte à il est ordinaire de la planification.
Cette fonction si est la fonction de minuterie. Il va à rebours de la minute, et si le procès-verbal égal à zéro, il va exécuter la fonction alimentation et désactiver la fonctionnalité de Greg à l’épreuve.
C’est la partie du code qui bascule entre les deux cycles d’alimentation. Chaque fois que le cycle d’alimentation court « je » augmentera d’un. Il affirme que lorsque « je » est divisé par et et a un souvenir (bizarre), elle passera à la soirée alimentation cycle et vice versa. Cela correspond à la réinitialisation du minuteur.
Il s’agit de la fin du code qui réinitialise le minuteur au moment opportun. Si le capteur de touche a été enfoncé, il va prendre le temps qui restait et l’ajouter à la prochaine fois d’alimentation. Il s’agit de la mangeoire est jamais hors calendrier. Si la minuterie descend à zéro, le temps aura simplement la valeur pour la prochaine fois d’alimentation. Le sevseg.refreshDisplay() ; est ce que dit la minuterie pour actualiser.
Libraries.zip PetFeeder.zip