Étape 5: Le codage
Dans la configuration, le codeur doit établir l’intention de chaque aiguille usagée. Le myservo possède une méthode pour cela alors que pour tous les autres, vous pouvez utiliser pinMode.
La boucle, c’est là que commence l’action.
La variable la plus importante dans ce programme est sans doute la variable lightNum. Chaque fois que la boucle principale se répète, lightNum a une valeur différente entre -1 et 5. Ce résultat est obtenu par l’assignation += avec dir. La variable dir est toujours attribué 1 ou -1 donc par += avec lightNum la valeur de lumière num est ajoutée à un ou soustraite par 1. Dir est 1 tout en ordre croissant et -1 en descendant. La valeur de la dir est assignée à la fin du code où il vérifie, en deux si des déclarations, si lightNum est chez lui s max ou min (et doit être tourné autour)
Pour déterminer comment lightNum affecte les LEDs, j’ai écrit un simple système de fi des déclarations. Si lightNum est > = la LED, alors il s’allume (en appelant digitalWrite(). Je pourrais probablement avez utilisé une instruction switch, mais j’ai décidé que je quitterais ce réapprentissage pour un autre jour.
Déterminer l’entrée de l’utilisateur, c’était un peu difficile, mais intéressant pour moi. Le codage doit tenir compte de la possibilité qu’un joueur pourrait il suffit de tenir le bouton vers le bas pour win(cheaters). J’ai remédié à cela en codant une variable appelée « lastLoop » qui assure le bouton n’avait pas eu lieu. Si le bouton n’a pas avait été enfoncé pendant le dernier pouce rond puis « lastLoop » = faible. Sinon, c’est secondaire. Ainsi donc, que si lastLoop est faible et buttonState est élevée, alors, c’est l’importance première fois presse et une carte de presse valable pour gagner. S’il est valide, une variable « premier » est classée haut.
Déterminer si le joueur est un gagnant a été fait par un simple si déclaration. S’il s’agit d’une presse du singulier (tout d’abord == HIGH) et lightNum est souhaitée (dans mon cas lightNum == 5) puis le système peut commencer sa célébration.
J’ai commencé par donner le servo une valeur centrée. Il s’agira de que 1500 je crois pour la plupart des servos. Les valeurs max et min, je crois, peuvent différer. J’ai ne voulu que j’ai à bouger, à la célébration boucle « for » je l’ai valeurs alternant entre 1300 et 1700. Le servo est contrôlé à l’aide de l’instruction myservo.writeMicroseconds().
Aussi contrôlé dans la boucle est une alternance conduit flash (3 et 3) ainsi qu’un buzz de l’avertisseur sonore. Écriture à broches numériques n’est facile de juste appeler digitalWrite (le numéro de l’axe, la valeur souhaitée de la broche)
J’ai retardé la boucle pour faire fonctionner d’une façon opportune. Pour rendre le jeu un peu plus difficile, j’ai fait le retard sur la gagnante valeur lightNum plus courte que le reste.