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(); |