Modifications

Sauter à la navigation Sauter à la recherche
1 313 octets ajoutés ,  13 mars 2018 à 23:40
Ligne 110 : Ligne 110 :  
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
 
...  
 
...  
 +
 
// ### HACK ###
 
// ### HACK ###
 
// Ajouter vos variables hack
 
// Ajouter vos variables hack
Ligne 123 : Ligne 124 :  
Servo monServo;  
 
Servo monServo;  
 
unsigned long moteurTempsAvant = 0 ;
 
unsigned long moteurTempsAvant = 0 ;
 +
 
...
 
...
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Dans la fonction setup :
 +
<syntaxhighlight lang="c">
 +
void setup() {
 +
  ...
 +
 +
  // Exemple SERVO
 +
  monServo.attach(  SERVO_MOTEUR );
 +
 +
  // Le mettre à l'angle zéro
 +
  monServo.write( 0 );
 +
 +
  ...
 +
}
 +
</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.
    
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
Ligne 164 : Ligne 183 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
* '''activerMoteur();''' dans cette fonction, il serait nécessaire de définir la position du servo à 0
+
* '''activerMoteur();''' dans cette fonction, il faudrait remettre le servo à l'angle zéro, au cas ou il n'est pas encore définit à cette position.
* '''jouerMoteur();'''  
+
* '''jouerMoteur();''' dans cette fonction, il faudrait changer la position du servo moteur de façon à faire sonner le gong.
* '''stopMoteur();'''
+
* '''stopMoteur();''' dans cette fonction, il faudrait remettre le servo à l'angle zéro.
    
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
Ligne 195 : Ligne 214 :  
</syntaxhighlight>
 
</syntaxhighlight>
    +
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.
 +
 +
<syntaxhighlight lang="c">
 +
/*
 +
* Vérifier si c'est le moment d'effectuer l'action
 +
*
 +
* ARGUMENTS
 +
* tempsAvant est temps précédent en milisecondes
 +
* dureeAttente est le temps avant de relancer l'exécution
 +
*
 +
* RETURN
 +
* 0 Signifie pas maintenant
 +
* x valeur (unsigned long) : effectuer l'action + changer le tempsAvant (définie dans l'entête du code)
 +
*/
 +
unsigned long effectuerAction( unsigned long tempsAvant, int dureeAttente ){
 +
  unsigned long maintenant = millis();
 +
 +
  if( maintenant - tempsAvant >= dureeAttente )
 +
    return maintenant;
 +
   
 +
  return 0;
 +
 +
</syntaxhighlight>
     

Menu de navigation