Projet

Général

Profil

Réveil Arduino Eloïse » programme_horloge_V0_reussite_d_eloise_travail_en_cours_LCD.ino

INO - Jean-Baptiste Bonnemaison, 27/03/2020 16:54

 




// --- Programme Arduino ---
// Trame de code générée par le générateur de code Arduino
// du site www.mon-club-elec.fr

// Auteur du Programme : X. HINAULT - Tous droits réservés
// Programme écrit le : 4/2/2011.

// ------- Licence du code de ce programme -----
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License,
// or any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.

// //////////////////// PRESENTATION DU PROGRAMME ////////////////////

// -------- Que fait ce programme ? ---------
/* Ce programme reçoit sur le port série
une valeur numérique entière saisie dans le fenêtre Terminal du logiciel Arduino
et renvoie cette valeur sur le port Série pour affichage dans la fenêtre Terminal */

// --- Fonctionnalités utilisées ---

// Utilise la connexion série vers le PC

// -------- Circuit à réaliser ---------

// La connexion série vers le PC utilise les broches 0 et 1 (via le câble USB)


// /////////////////////////////// 1. Entête déclarative ///////////////////////
// A ce niveau sont déclarées les librairies incluses, les constantes, les variables, les objets utiles...

// --- Déclaration des constantes ---
int mon_heure ;
int ma_minute ;
int ma_seconde ;

int mon_jour ;
int mon_mois ;
int mon_annee ;

int mon_jour_de_la_semaine ;
// --- Inclusion des librairies ---
#include <RTClib.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27, 16, 2);

// --- Déclaration des constantes utiles ---

// --- Déclaration des constantes des broches E/S numériques ---


// --- Déclaration des constantes des broches analogiques ---


// --- Déclaration des variables globales ---


// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---


// ////////////////////////// 2. FONCTION SETUP = Code d'initialisation //////////////////////////
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup() { // debut de la fonction setup()

// --- ici instructions à exécuter 1 seule fois au démarrage du programme ---

mon_heure = 0;
ma_minute = 0 ;
ma_seconde = 0 ;

mon_jour = 0 ;
mon_mois = 0;
mon_annee = 0;
mon_jour_de_la_semaine = 0;

// ------- Initialisation fonctionnalités utilisées -------
Wire.begin(); // lance la bibliothèque de transmission des dommées vers l'horloge
Serial.begin (115200);
lcd.begin();

// IMPORTANT : régler le terminal côté PC avec la même valeur de transmission

// ------- Broches en sorties numériques -------

// ------- Broches en entrées numériques -------

// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques -------

// ------- Initialisation des variables utilisées -------

// following line sets the RTC to the date & time this sketch was compiled
RTC.adjust(DateTime(__DATE__, __TIME__)); // ajuste l'heure avec la date du micro ordinateur
lcd.setBacklight((uint8_t)1);

} // fin de la fonction setup()
// ********************************************************************************

////////////////////////////////// 3. FONCTION LOOP = Boucle sans fin = coeur du programme //////////////////
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()


// --- ici instructions à exécuter par le programme principal ---
DateTime now = RTC.now(); // fige les données de la date_heure

mon_heure = now.hour() ; // lit l'heure figée
ma_minute =now.minute () ;
ma_seconde =now.second () ;

mon_jour = now.day() ; // lit le jour figé
mon_mois = now.month () ;
mon_annee = now.year() ;
mon_jour_de_la_semaine = now.dayOfWeek();
lcd.print ("il est ");
lcd.print(mon_heure,DEC); // DEC sert à écrire en décimal
lcd.print(" h ");
lcd.print (ma_minute, DEC);
lcd.print (" m ");
lcd.print (ma_seconde, DEC);
lcd.println("s");
lcd.setCursor (0,1);
lcd.print ("Aujourd'hui, on est le = ");
lcd.print(mon_jour , DEC); // DEC sert à écrire en décimal
lcd.print ("/");
lcd.print (mon_mois , DEC);
lcd.print ("/");
lcd.println (mon_annee , DEC);

lcd.print("Numéro du jour: ");
lcd.println(mon_jour_de_la_semaine, DEC ); // Retourne O et non pas 1 pour dimanche !

delay (2000) ;






} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************


// ////////////////////////// FONCTIONS DE GESTION DES INTERRUPTIONS ////////////////////


// ////////////////////////// AUTRES FONCTIONS DU PROGRAMME ////////////////////



// ////////////////////////// Fin du programme ////////////////////

(7-7/11)