Bonjour à tous.
Je prend bien note de tout vos conseil et merci beaucoup 
J'ai téléchargé et installé la bibliothèque .
Cependant je me casse les dents sur mon bureau car je n'arrive pas à faire mettre
l'heure et la date que mon super DS3231 me donne dans cette ligne:
posSoleil("12/02/2017 09:32:18", -5, 40.76, -73.984, &ha, &az);
J'aimerais remplacer "12/02/2017" et "09:32:18" par des variables qui pourrons
ensuite être traiter automatiquement.
Quelqu'un a une idée?
Merci d'avance pour votre aide
Ceci est le code pour le Tracker.
Il est loin d'être fini et d'être optimisé.
Il n'a jamais été testé (j'attend les moteurs)
#include <AFMotor.h>
#include <Ephem_Soleil.h>
#include <Wire.h>
#include <ds3231.h>
struct ts t;
int pasmoteurconfig = 48;
int numeromoteur;
AF_Stepper motor(pasmoteurconfig, numeromoteur);
int cpt_azimute_1 = 37 ; //Capteur de contact Broche 37 de l’Arduino
int cpt_azimute_2 = 38 ; //Capteur de contact Broche 38 de l’Arduino
int cpt_elevation_1 = 39 ; //Capteur de contact Broche 39 de l’Arduino
int cpt_elevation_2 = 40 ; //Capteur de contact Broche 40 de l’Arduino
float rapport_de_reduction_azimute = 1;
float rapport_de_reduction_elevation = 1;
int azimute1;
int azimute2;
int heure = 15;
double ha;
double az;
String lS, mS, cS;
int jour_calcule;
int mois_calcule;
int annee_calcule;
int heure_calcule;
int minute_calcule;
int seconde_calcule;
void setup() {
//----------Initialisation de l'horloge---------- *
Wire.begin();
DS3231_init(DS3231_INTCN);
DS3231_set(t);
//Lecture de l'heure
DS3231_get(&t);
jour_calcule = t.mday;
mois_calcule = t.mon;
annee_calcule = t.year;
heure_calcule = t.hour;
minute_calcule = t.min;
seconde_calcule = t.sec;
//----------Initialisation du Tracker----------
int elevation1;
int elevation2;
int nb_pas_azimute_init;
int nb_pas_elevation_init;
int nb_pas_azimute;
int nb_pas_elevation;
int nbpasaz;
int nbpasel;
float position_moteur_azimute;
float position_moteur_elevation;
float degres_par_pas;
float azimute0_deg_enpas;
float elevation0_deg_enpas;
motor.setSpeed(10); // 10 rpm
motor.release();
pinMode(cpt_azimute_1, INPUT);
pinMode(cpt_azimute_2, INPUT);
pinMode(cpt_elevation_1, INPUT);
pinMode(cpt_elevation_1, INPUT);
azimute1=digitalRead(cpt_azimute_1);
azimute2=digitalRead(cpt_azimute_2);
elevation1=digitalRead(cpt_elevation_1);
elevation2=digitalRead(cpt_elevation_2);
//Positionnement du panneau pour compter le nombres de pas entres les capteurs à la position +180° et 90°
while ((azimute1 && elevation1) == LOW){
numeromoteur = 1;
motor.step(1, FORWARD, SINGLE);
numeromoteur = 2;
motor.step(1, FORWARD, SINGLE);
}
//Comptage du nombres de pas entres les capteurs jusqu'à la position -180° et 0°
while ((azimute2 && elevation2) == LOW){
numeromoteur = 1;
motor.step(1, BACKWARD, SINGLE);
nb_pas_azimute_init = nb_pas_azimute + 1;
numeromoteur = 2;
motor.step(1, BACKWARD, SINGLE);
nb_pas_elevation_init = nb_pas_elevation + 1;
}
nbpasaz = 0;
nbpasel = 0;
//calcul du nombres de pas en azimute pour aller à -180°
azimute0_deg_enpas = nb_pas_azimute/2;
nb_pas_azimute = (nb_pas_azimute_init - azimute0_deg_enpas) * rapport_de_reduction_azimute;
//calcul du nombres de pas en élévation pour aller à 0°
elevation0_deg_enpas = nb_pas_elevation/2;
nb_pas_elevation = (nb_pas_elevation_init - elevation0_deg_enpas)* rapport_de_reduction_elevation;
//Positionnement du panneau à -180° en azimute et 0° en elevation
while (((((azimute1 && azimute2) == LOW)) && (nbpasaz < nb_pas_azimute-1)) && ((azimute1 && azimute2) == LOW) && (nbpasel < nb_pas_elevation-1)) {
numeromoteur = 1;
motor.step(1, FORWARD, SINGLE);
nbpasaz = nbpasaz + 1;
numeromoteur = 2;
motor.step(1, FORWARD, SINGLE);
nbpasel = nbpasel + 1;
}
}
void loop() {
double azimute_calcule;
double elevation_calcule;
int pas_effectuer_azimute;
int pas_effectuer_elevation;
int position_panneau_azimute;
int position_panneau_elevation;
int degre_azimute_a_faire;
int degre_elevation_a_faire;
int nbpas_moteur_azimute;
int nbpas_moteur_elevation;
int nbpasaz;
int nbpasel;
//Calcul de la position du soleil
posSoleil("12/02/2017 15:00:00", 0, 48.8582333, 2.2944695, &ha, &az); // Tour Eiffel le 12/02/2017
azimute_calcule = az;
elevation_calcule = ha;
//Calcul de la différence de degré entre la dernière position du panneau et la position du soleil
degre_azimute_a_faire = position_panneau_azimute - azimute_calcule;
degre_elevation_a_faire = position_panneau_elevation - elevation_calcule;
//Convertion des degrés en pas pour les moteurs
nbpas_moteur_azimute = degre_azimute_a_faire / (pasmoteurconfig * rapport_de_reduction_azimute);
nbpas_moteur_elevation = degre_elevation_a_faire / (pasmoteurconfig * rapport_de_reduction_elevation);
//Orientation du Tracker
while (((((azimute1 && azimute2) == LOW)) && (nbpasaz < nbpas_moteur_azimute-1)) && ((azimute1 && azimute2) == LOW) && (nbpasel < nbpas_moteur_elevation-1)) {
numeromoteur = 1;
motor.step(1, BACKWARD, SINGLE);
nbpasaz = nbpasaz + 1;
numeromoteur = 2;
motor.step(1, BACKWARD, SINGLE);
nbpasel = nbpasel + 1;
}
}
cordialement