Bonjour, j'ai pris un peu de retard dans la réalisation, mais ça avance.
Aujourd'hui j'ai programmé la carte arduino et j'ai connecté le lecteur de carte SD et la sonde de température. et j'ai un rapport de bug à faire : de base en téléchargeant le code source version 1.002 dont on trouve le lien dans le wiki, ça ne marche pas.
au démarrage, après "Initialise SD", on a l'erreur "ERREUR SD CARD". le bug se situe ligne 153 : la ligne ne devrait pas être commentée. En décommenttant et en recompilant, le lecteur de carte SD est reconnu et ça fonctionne.
la ligne est question doit donc ressembler à ça :
pinMode(53, OUTPUT); //la pin 53 est normalement attribuée à la fonction SPI Slave Select (SS)Permet d'activer ou désactiver le périphérique, Quand Cette pin est à 0, Elle communique avec le maitre.
contrairement à ce qui est écrit la ligne d'après, il faut absolument paramétrer la patte 53 en sortie, même si on a cablé la patte cs du lecteur de carte à la masse, sinon l'API ne fonctionne pas.
d'autre part, dans le cas où les paramètres sont lus sur l'eeprom, la première fois les températures lues valent "NAN" (not a number), hors le code chargé de corriger les valeurs hors interval ne prend pas en compte ce cas, j'ai donc modifié les lignes 578 et suivantes ainsi (j'ai rajouté le test isnan et j'ai corrigé le test de thetastart qui mettait en fait à jour theta4 au lieu de thetastart) :
if (isnan(tempo1) || tempo1 < 0 || tempo1 > 300) tempo1 = 0;
if (isnan(tempo2) || tempo2 < 0 || tempo2 > 300) tempo2 = 15;
if (isnan(tempo3) || tempo3 < 0 || tempo3 > 300) tempo3 = 35;
if (isnan(tempo4) || tempo4 < 0 || tempo4 > 300) tempo4 = 30;
if (isnan(tempo5) || tempo5 < 0 || tempo5 > 300) tempo5 = 70;
if (isnan(theta1) || theta1 < 1 || theta1 > 110) theta1 = 40.25;
if (isnan(theta2) || theta2 < 1 || theta2 > 110) theta2 = 52.50;
if (isnan(theta3) || theta3 < 1 || theta3 > 110) theta3 = 62.00;
if (isnan(theta4) || theta4 < 1 || theta4 > 110) theta4 = 68.75;
if (isnan(theta5) || theta5 < 1 || theta5 > 110) theta5 = 95.75;
if (isnan(thetaMO) || thetaMO < 1 || thetaMO > 110) thetaMO = 76;
if (isnan(thetastart) || thetastart < 1 || thetastart > 110) thetastart = 70.75;
une fois ces corrections apportées, tout à l'air de marcher.
il me reste à cabler le variateur de puissance, à ranger le tout proprement dans le boitier et je pourrai faire un vrai test... je ne sais pas encore trop quand, mais je ferai un retour
