je reviens sur ce post avec un début de code. Pour l'instant je ne cherche pas à lire une température exacte, je me contente de analogReference(INTERNAL) pour étalonner mon échelle : 1023 = 100° sur le lm35.
Voici donc la boucle principale avec le traitement du débordement de millis() puisque cela restera en marche pendant au moins 5 mois;
int Temp[5];//valeur stockée des températures
int Temp_prevue;//température de l'eau en fonction de la température extérieur extérieur
int m;//compteur de la boucle
unsigned long debut;
int temporisation;
int reinit; // drapeau indiquant la réinitialisation
void setup() {
analogReference(INTERNAL);
pinMode(15, OUTPUT);//A
pinMode(16, OUTPUT);//B
pinMode(17, OUTPUT);//C
m=0;
temporisation = 100;
}
void loop() {
if(m == 0){
for(int i=0;i<5;i++)
{//on actualise le tableau tes température
digitalWrite(15, i & 0x04); // bit de poids fort, entrée C
digitalWrite(16, i & 0x02); // bit de poids moyen, entrée B
digitalWrite(17, i & 0x01); // bit de poids faible, entrée A
delay(100);
//les capteurs de températures sont sur un multiplexeur
Temp[i]= analogRead(A0);
}
--------------------------------------------------
calcul et commande des vannes motorisées
--------------------------------------------------
}
}
if(millis() < debut){//millis() à été réinitialisé
int ecart = 4294967295 - debut;
temporisation = 300 - ecart;
}
if(millis()- debut > temporisation){
m++;
debut= millis();
if(m==21){ m = -1;
}
}
if( reinit == 1){
temporisation = 300;
reinit = 0;
}
}
la dernière partie du code est-elle nécessaire ? qu'est-ce qui prend le plus de temps "processeur" : attribuer une valeur à chaque tour ou vérifier et changer la valeur une fois par mois ?
Une dernière question pour ce soir :
J'aimerai bien visualiser mes température avec le module Ethernet mais je ne comprend pas trop le mode de brochage. La documentation indique
Remarque : bien que les broches 13, 12 et 11 du module soient directement connectées aux broches 13,12 et 11 de la carte Arduino, il faut bien comprendre que la connexion SPI entre le module et la carte Arduino se fait via le connecteur ICSP et pas par la connexion directe des broches 13,12 et 11.
Sur ces 2 cartes :
la broche 10 est utilisée pour sélectionner le W5100
et la broche 4 pour sélectionner la carte SD.
Puis-je utiliser toutes ces broches INPUT ou OUTPUT en particulier les 10 et 4 ?
Espérant avoir été assez clair
Merci
Gérard