Modifications

Sauter à la navigation Sauter à la recherche
1 139 octets ajoutés ,  13 mars 2018 à 11:33
aucun résumé de modification
Ligne 81 : Ligne 81 :  
* '''MELODIE''' permet de définir la mélodie jouée. L'ensemble des mélodies se trouvent dans le fichier ''melodies.h'' qui doit se trouver dans la racine de votre projet.
 
* '''MELODIE''' permet de définir la mélodie jouée. L'ensemble des mélodies se trouvent dans le fichier ''melodies.h'' qui doit se trouver dans la racine de votre projet.
   −
{{ambox | text = Il est important d'activer la résistance PULLUP sur le microcontrôlleur pour éviter de le sur alimenter}}
+
== Setup ==
 
  −
== blah ==
      
<syntaxhighlight lang="c">
 
<syntaxhighlight lang="c">
Ligne 90 : Ligne 88 :  
  */
 
  */
 
void setup() {
 
void setup() {
 
  −
  // Communication RS232
  −
  Serial.begin( 9600 );
     −
  // EXEMPLE SERVO
+
}
  monServo.attach(  SERVO_MOTEUR );
+
</syntaxhighlight>
 
  −
  // Initialisation des boutons
  −
  pinMode( BOUTON_OK, INPUT_PULLUP );
  −
  pinMode( BOUTON_MOINS, INPUT_PULLUP );
  −
  pinMode( BOUTON_PLUS, INPUT_PULLUP );
  −
  pinMode( BOUTON_LUMINOSITE, INPUT_PULLUP );
  −
  pinMode( BOUTON_ALARME_CONTROLE, INPUT_PULLUP );
  −
  pinMode( BOUTON_SNOOZE, INPUT_PULLUP );
  −
  for( int i=0 ; i<NBRALARMES ; i++ )
  −
    pinMode( BOUTON_ALARME[i], INPUT_PULLUP );
     −
  // Initialisation des leds et du piezo
+
Dans le setup se trouvent différentes routines :
  pinMode( LED_BOUTON_OK, OUTPUT );
  −
  pinMode( LED_BOUTON_SNOOZE, OUTPUT );
  −
  pinMode( PIEZO_BUZZER, OUTPUT );
  −
 
  −
  // Addresse I2C des afficheurs
  −
  afficheurs.begin( 0x70 );
     −
  // Démarrer le lien avec l'RTC en I2C
+
* Ouverture du port série et définition du débit de données à 9600 bps pour permettre la communication de l'arduino à un ordinateur via usb.
  rtc.begin();
+
<syntaxhighlight lang="c">
 
+
Serial.begin( 9600 );
  // Configuration de l'heure par l'utilisateur si ce n'a pas été encore fait
+
</syntaxhighlight>
  if ( !rtc.isrunning() ){
  −
    int h = 0;
  −
    int m = 0;
  −
    changerHeureVisuel( &h, &m );
  −
    rtc.adjust( DateTime(2018, 2, 20, h, m, 0) ); // Change l'heure de l'RTC
  −
  }
     −
   // Formattage de l'EEPROM si rien dedans (vérification si fanion égale à 255) et si la version est égale à ce qu'il y a dans l'EEPROM
+
* Configuration des broches des boutons pour qu'elles se comportent comme des entrées.
  if( EEPROM.read(0) != 255 || EEPROM.read(1) != VERSION )
+
<syntaxhighlight lang="c">
    eepromConfiguration();
+
// Initialisation des boutons
 
+
pinMode( BOUTON_OK, INPUT_PULLUP );
  // Définir la luminosité des afficheurs
+
pinMode( BOUTON_MOINS, INPUT_PULLUP );
  afficheurs.setBrightness( EEPROM.read(2) );
+
pinMode( BOUTON_PLUS, INPUT_PULLUP );
 
+
pinMode( BOUTON_LUMINOSITE, INPUT_PULLUP );
 
+
pinMode( BOUTON_ALARME_CONTROLE, INPUT_PULLUP );
 +
pinMode( BOUTON_SNOOZE, INPUT_PULLUP );
 +
// Boucles pour les broches utilisées pour activer/désactiver les alarmes
 +
for( int i=0 ; i<NBRALARMES ; i++ )
 +
   pinMode( BOUTON_ALARME[i], INPUT_PULLUP );
 +
</syntaxhighlight>
 +
{{ambox | text = Il est important d'activer la résistance PULLUP sur le microcontrôlleur pour éviter de le sur alimenter}}
 +
* Configuration des broches des leds des boutons et du piezo buzzer pour qu'elles se comportent comme des sorties.
 +
<syntaxhighlight lang="c">
 +
// Initialisation des leds et du piezo
 +
pinMode( LED_BOUTON_OK, OUTPUT );
 +
pinMode( LED_BOUTON_SNOOZE, OUTPUT );
 +
pinMode( PIEZO_BUZZER, OUTPUT );
 +
</syntaxhighlight>
 +
* Démarrer la connection I2C avec l'afficheur en lui insérant une addresse (0x70 par défaut)
 +
<syntaxhighlight lang="c">
 +
// Addresse I2C des afficheurs
 +
afficheurs.begin( 0x70 );
 +
</syntaxhighlight>
 +
* Démarrer la connection I2C avec l'RTC
 +
<syntaxhighlight lang="c">
 +
// Démarrer le lien avec l'RTC en I2C
 +
rtc.begin();
 +
</syntaxhighlight>
 +
* Réglage de l'heure si elle n'a pas encore été initialisé dans l'RTC ou si elle n'est plus présente.
 +
<syntaxhighlight lang="c">
 +
// Configuration de l'heure par l'utilisateur si ce n'a pas été encore fait
 +
if ( !rtc.isrunning() ){
 +
  int h = 0;
 +
  int m = 0;
 +
  changerHeureVisuel( &h, &m );
 +
  rtc.adjust( DateTime(2018, 2, 20, h, m, 0) ); // Change l'heure de l'RTC
 +
}
 +
</syntaxhighlight>
 +
* Formattage de l'EEPROM si rien dedans (vérification si fanion égale à 255) et si la version est égale à ce qu'il y a dans l'EEPROM
 +
<syntaxhighlight lang="c">
 +
if( EEPROM.read(0) != 255 || EEPROM.read(1) != VERSION )
 +
  eepromConfiguration();
 +
</syntaxhighlight>
 +
* Définir la luminosité par rapport à la luminosité enregistré dans l'EEPROM
 +
<syntaxhighlight lang="c">
 +
// Définir la luminosité des afficheurs
 +
afficheurs.setBrightness( EEPROM.read(2) );
 +
</syntaxhighlight>
 +
* Copier les alarmes enregistré dans l'EEPROM dans la structure du programme
 +
<syntaxhighlight lang="c"> 
 
   // Configuration des dates/heures sur les alarmes
 
   // Configuration des dates/heures sur les alarmes
 
   DateTime maintenant = rtc.now();
 
   DateTime maintenant = rtc.now();

Menu de navigation