Ligne 108 : |
Ligne 108 : |
| * Pour la clochette, nous avons choisi une clochette pour chats. | | * Pour la clochette, nous avons choisi une clochette pour chats. |
| * Pour le servo moteur, nous avons pris un micro servo tower (disponible sur le [https://shop.mchobby.be/servo-moteurs/64-micro-servo-tower-pro-sg90-3232100000643.html shop]) | | * Pour le servo moteur, nous avons pris un micro servo tower (disponible sur le [https://shop.mchobby.be/servo-moteurs/64-micro-servo-tower-pro-sg90-3232100000643.html shop]) |
− | * Pour le support, nous avons utilisé le kit MakerBeam (disponible sur le [https://shop.mchobby.be/makerbeam/328-makerbeam-kit-de-demarrage-noir-anodise-3232100003286-makerbeam.html shop]) | + | * Pour le support, nous avons utilisé des pièces du kit MakerBeam (disponible sur le [https://shop.mchobby.be/makerbeam/328-makerbeam-kit-de-demarrage-noir-anodise-3232100003286-makerbeam.html shop]) |
| | | |
| Premièrement, il sera nécessaire d'ajouter dans l'entête : | | Premièrement, il sera nécessaire d'ajouter dans l'entête : |
Ligne 114 : |
Ligne 114 : |
| ... | | ... |
| | | |
− | // ### HACK ### | + | // ### ZONE HACK ### |
− | // Ajouter vos variables hack
| |
− | // Exemple : GONG
| |
| | | |
− | // Ajouter la bibliothèque | + | // -- Clochette -- |
− | #include <Servo.h> | + | #include <Servo.h> // Ajouter la bibliothèque |
− | | + | #define SERVO_MOTEUR 6 // Définit la broche du servo moteur du gong |
− | // Définit la broche du servo moteur du gong | + | Servo monServo; // Initialisation du servo |
− | #define SERVO_MOTEUR 6
| + | unsigned long moteurTempsAvant = 0 ; // Délai |
− | | + | int sens = -1; // Sens de rotation |
− | // Initialisation du servo | |
− | Servo monServo;
| |
− | unsigned long moteurTempsAvant = 0 ; | |
| | | |
| ... | | ... |
Ligne 136 : |
Ligne 131 : |
| ... | | ... |
| | | |
− | // Exemple SERVO | + | // -- HACKS -- |
− | monServo.attach( SERVO_MOTEUR ); | + | // Activer le servo |
− | | + | monServo.attach( SERVO_MOTEUR ); |
− | // Le mettre à l'angle zéro | + | |
− | monServo.write( 0 ); | + | // Position du servo de base |
| + | monServo.write( 1 ); |
| + | delay( 500 ); |
| + | |
| + | // Désactiver le servo |
| + | monServo.detach(); |
| | | |
| ... | | ... |
Ligne 146 : |
Ligne 146 : |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | Dans les différentes phases, on va définir que uniquement l'alarme 1 possède un gong et les autres possèdent la mélodie. | + | Dans les différentes phases, on va définir que uniquement l'alarme 1 possède le réveil sonnette et les autres possèdent la mélodie. |
| | | |
| <syntaxhighlight lang="c"> | | <syntaxhighlight lang="c"> |
Ligne 153 : |
Ligne 153 : |
| */ | | */ |
| void alarmeStart( int alarmePos ){ | | void alarmeStart( int alarmePos ){ |
− | // Hack moteur | + | // Hack |
| if( alarmePos == 0) | | if( alarmePos == 0) |
| activerMoteur(); | | activerMoteur(); |
Ligne 197 : |
Ligne 197 : |
| // Remise à zéro du moteur | | // Remise à zéro du moteur |
| moteurTempsAvant = 0; | | moteurTempsAvant = 0; |
− | monServo.write( 0 ); | + | // Activation du servo |
| + | monServo.attach( SERVO_MOTEUR ); |
| } | | } |
| void jouerMoteur(){ | | void jouerMoteur(){ |
− | unsigned estIlTemps = effectuerAction( moteurTempsAvant, 10000 ); | + | // Tous les 0.1 secondes effectuer |
| + | unsigned estIlTemps = effectuerAction( moteurTempsAvant, 10 ); |
| | | |
− | // Est-il temps de faire sonner le GONG ???
| |
| if( estIlTemps != 0 ){ | | if( estIlTemps != 0 ){ |
| + | // Changer quand a été effectué l'action précédente |
| moteurTempsAvant = estIlTemps; | | moteurTempsAvant = estIlTemps; |
− | | + | |
− | // Bouger le servo de 90° | + | // Inverser le sens |
− | monServo.write( 90 ); | + | sens *= -1; |
| + | // Bouger le servo de 1° à 46° |
| + | monServo.write( 31 + (sens*30) ); |
| } | | } |
− | else
| |
− | monServo.write( 0 );
| |
| } | | } |
| void stopMoteur(){ | | void stopMoteur(){ |
− | monServo.write( 0 ); | + | monServo.write( 1 ); |
| + | delay( 300 ); |
| + | monServo.detach(); |
| } | | } |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |
− | La fonction '''effectuerAction''', ci dessous, permet de répèter une tâche tous les x temps. | + | La fonction '''effectuerAction''', ci dessous, permet de répéter une tâche tous les x temps. |
| | | |
| Cette fonction peut être réutiliser dans d'autres cas. | | Cette fonction peut être réutiliser dans d'autres cas. |
Ligne 226 : |
Ligne 230 : |
| * | | * |
| * ARGUMENTS | | * ARGUMENTS |
− | * tempsAvant est temps précédent en milisecondes | + | * tempsAvant est temps précédent en millisecondes |
| * dureeAttente est le temps avant de relancer l'exécution | | * dureeAttente est le temps avant de relancer l'exécution |
| * | | * |