Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
issue90:arduino [2015/02/06 10:23] – frangi | issue90:arduino [2015/02/11 17:52] (Version actuelle) – auntiee |
---|
| |
Code: http://pastebin.com/AjFDajHm | Code: http://pastebin.com/AjFDajHm |
| |
| |
| |
** | ** |
| |
Le mois dernier, notre circuit a pu déterminer si un code entré par le clavier était bon ou mauvais. Ce mois-ci, je lui ai ajouté la possibilité de faire une chose parmi deux à l'aide d'une simple instruction IF/ESLE. | Le mois dernier, notre circuit a pu déterminer si un code entré par le clavier était bon ou mauvais. Ce mois-ci, je lui ai ajouté la possibilité de faire une chose sur deux à l'aide d'une simple instruction IF/ELSE. |
| |
J'ai ajouté une LED et un entier appelé «armed». Au début «armed» est égal à zéro, et armedLed est égal à A0. Je vais maintenant devoir tordre les règles pour utiliser des broches analogiques pour les composants numériques car j'arrive rapidement à bout de broches avec tout çà! | |
| |
Le point crucial de ce changement armed est la commande IF/ELSE qui est encapsulée dans la commande IF/ELSE existante dans la section guessPassword () du code. Fondamentalement voici ce qui se passe: si le mot de passe est correct et armed=0 (en d'autres termes: le système est éteint), alors il va effacer l'écran, afficher ARMED !, changer armed égal à 1, et allumer la LED rouge. Enfin, il affiche «Code to disarm:» (Code pour désarmer). Sinon, armed doit être égal à 1 (le système est allumé), on affiche DISARMED !, on rend armed=0, et on affiche «Code to arm:». | J'ai ajouté une LED et un entier appelé « armed ». Au début « armed » est égal à zéro, et armedLed est égal à A0. Je vais maintenant devoir tordre les règles pour utiliser des broches analogiques pour les composants numériques car j'arrive rapidement à court de broches avec tout ça ! |
| |
Je dois admettre ma faute d'avoir passé des heures à essayer de comprendre pourquoi mon IF/ELSE ne fonctionnait pas correctement. Erreur de débutant: j'ai oublié d'utiliser == dans l'instruction IF. | Le point crucial de ce changement armed est la commande IF/ELSE encapsulée dans la commande IF/ELSE existante dans la section guessPassword () du code. Fondamentalement, voici ce qui se passe : si le mot de passe est correct et armed=0 (en d'autres termes : le système est éteint), alors il va effacer l'écran, afficher ARMED !, changer armed égal à 1, et allumer la LED rouge. Enfin, il affiche « Code to disarm: » (Code pour désarmer). Sinon, armed doit être égal à 1 (le système est allumé), on affiche DISARMED !, on rend armed=0, et on affiche « Code to arm: ». |
| |
Après avoir réussi avec armé/désarmé, je suis allé exhumer un de mes capteurs 37-en-1 et une photorésistance (une résistance dépendant de la lumière, LDR pour faire court). La LDR va vers A1 avec une résistance de 220 ohms sur une patte et son autre patte branchée à la masse. Le capteur laser va vers la patte positive de la LED et à la masse. Maintenant, quand le système est armé, le laser pulse en pointant vers la LDR. | Je dois avouer mes erreurs et j'ai passé des heures à essayer de comprendre pourquoi mon IF/ELSE ne fonctionnait pas correctement. Erreur de débutant : j'ai oublié d'utiliser == dans l'instruction IF. |
| |
Pour vérifier que la LDR enregistre effectivement quelque chose, vous remarquerez que j'ai réintroduit le code de série (à nouveau, en utilisant la vitesse de transmission à 9600 bauds). Dans la boucle principale, mon code fait une lecture analogique de la broche A1 et imprime le résultat dans la fenêtre de série IDE. En d'autres termes, le nombre que la LDR retourne via sa patte analogique. En l'absence de laser et à la lumière de la pièce, la fenêtre de série montre un flux de chiffres valant en moyenne 400-450. Lorsque je couvre la LDR, il tombe aussi bas que 100 à 150. Avec le laser, pointant directement vers la LDR, la sortie série montre un pic de plus de 1000. Presque le maximum qu'il peut atteindre. Donc si, avec le laser allumé, je mets un obstacle sur le rayon, la LDR enregistre la perte du laser. | Après avoir réussi avec armé/désarmé, je suis allé exhumer un de mes capteurs 37-en-1 et une photorésistance (une résistance dépendant de la lumière, LDR pour faire court). La LDR va vers A1 avec une résistance de 220 ohms sur une patte et son autre patte branchée à la masse. Le capteur laser va vers la patte positive de la LED et à la masse. Maintenant, quand le système est armé, le laser s'allume en pointant vers la LDR. |
| |
Lors de notre prochaine rencontre, nous (je espère!) aurons une alarme avec détecteur de présence laser qui fonctionne... | Pour vérifier que la LDR enregistre effectivement quelque chose, vous remarquerez que j'ai réintroduit le code de série (à nouveau, en utilisant la vitesse de transmission à 9 600 bauds). Dans la boucle principale, mon code fait une lecture analogique de la broche A1 et imprime le résultat dans la fenêtre de série IDE. En d'autres termes, le nombre que la LDR retourne via sa patte analogique. En l'absence de laser et à la lumière de la pièce, la fenêtre de série montre un flux de chiffres valant en moyenne 400-450. Lorsque je couvre la LDR, il tombe aussi bas que 100 à 150. Avec le laser pointant directement vers la LDR, la sortie série montre un pic de plus de 1 000. Presque le maximum qu'il peut atteindre. Donc si, avec le laser allumé, je mets un obstacle sur le rayon, la LDR enregistre la perte du laser. |
| |
| Lors de notre prochaine rencontre, nous (je espère !) aurons une alarme avec détecteur de présence laser qui fonctionne... |
| |
Code: http://pastebin.com/AjFDajHm | Code: http://pastebin.com/AjFDajHm |
| |
Y aurait-il des projets similaires que vous souhaiteriez que j'essaie? Envoyez-moi un courriel à: ronnie@fullcirclemagazine.org. Rappelez-vous: je suis un débutant, ne me demandez pas de concevoir le prochain rover de la NASA! | Y aurait-il des projets similaires que vous souhaiteriez que j'essaie ? Envoyez-moi un courriel à : ronnie@fullcirclemagazine.org. Rappelez-vous : je suis un débutant, ne me demandez pas de concevoir le prochain rover de la NASA ! |
| |