Étape 8: programmation
Le programme est une machine à États assez simple. Si le réveil est couvrant le capteur, il attend un certain temps. Puis déclenche l’alarme, attend, déplace le servo pour l’homme à s’asseoir (et peut manquer quelques fois si vous le souhaitez). Une fois que l’alarme a été frappé au large, le programme attend jusqu'à ce qu’il est remis.Une solution possible :
Enroulez chaque 2-5milliseconds. (Nous avons appelé chaque boucle un « tick »)
Commencez dans l’État 0.
État 0: Alarme est Corniche le capteur de lumière. Attendez quelques centaines tiques (quelques secondes), puis activer l’alarme (écriture haute sur tout ce qui épingle le buzzer est attaché à). Aller à l’État 1,
État 1: Patientez quelques centaines tiques que l’alarme se déclenche.
Ensuite, toutes les dernières graduations, incrémenter la position du servo.
Il y aura une position servo à renverser le réveil. Si vous voulez quelques échecs, soustraire un nombre aléatoire (par exemple entre 0 et 4 degrés) de cet emplacement idéal et la définir comme la valeur finale du servo. De cette façon, il lui faudra exécuter plusieurs fois avant d’atteindre effectivement l’idéal servo se terminant position (il sera probablement renverser l’horloge quand le nombre aléatoire est 0 ou 1).
Lorsque le servo est à sa position de fin, allez à l’état 2.
État 2: Décrémentent la position du servo toutes les graduations peu jusqu'à ce qu’il atteigne la position prédéfinie « fixant ».
Si le réveil est toujours en place, retour à l’État 1.
Sinon, passez à l’État 3.
État 3: Vérifier le capteur de lumière toutes les graduations peu.
Si le réveil est remis en place, passez à l’État 0.
Si vous utilisez un Arduino Mega, vous pouvez utiliser le programme ci-joint. Assurez-vous juste que vous obtenez le brochage correct.
Vous devrez peut-être inclure la bibliothèque de servo.
Remarque : vous devrez probablement modifier les valeurs de « pos_start » et « pos_end » dans le programme pour correspondre à votre lit physique & levier.