En ce moment, je suis en train d'écrire le programme pour l'APT de Patrice Et il vient de m'arriver une drôle d'histoire .
Je vous passe les détails mais en fin de "setup " , j'ai écrit les lignes suivantes :
EEPROM.get(20,Position [0][2]) ;
Serial.print("Position :");Serial.println(Position [0][2]);
J'avais au préalable écrit ces valeurs dans l'EEProm :
EEPROM.put(10, 12000) ; // Nombre de pas pour une position à 6 cm
EEPROM.put(20, 24000) ;
EEPROM.put(30, 36000) ;
EEPROM.put(40, 48000) ;
Pour essai, je téléverse le programme dans l'arduino MEGA et j'ouvre l'écran de controle .
La valeur afficjée est n’importe quoi
étonné, je téléverse le programme dans un Nano et là, pas de problème, j'obtiens bien la valeur 24000 . . . .
Alors si quelqu'un peut m'expliquer pourquoi un programme fonctionnant sur un nano, ne fonctionne pas sur mega , je serais très heureux ! ! !
J'ai fait de multiples tests .
Si j'écris la ligne suivante : EEPROM.get(20,y) ;Position [0][2] = y ; là, pas de problème ! ! !
Pour fnir, j'ai écrit le petit programme test :
Code : Tout sélectionner
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * Test EEPROM * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
#include <EEPROM.h>
#include <LiquidCrystal_I2C.h>
#include <AccelStepper.h>
#include <RotaryEncoder.h> // Bibliothéque pour l'encodeur rotatif
RotaryEncoder encodeur(A2, A3);// Borne de l'encodeur (DT, CLK) et déclaration de l'objet
unsigned long Hauteur[2] = { 0,0} ;
unsigned long Position [3][10] = { {0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0},
{0,0,0,0,0,0,0,0,0,0}, } ;
void setup()
{ Serial.begin(9600);
Premierefois () ; // N'est executé qu'à la première mise sous tension
// du Nano
EEPROM.get(1,Hauteur[1]) ;
EEPROM.get(20,Position [0][2]) ;
Serial.print("Hauteur :");Serial.println(Hauteur[1]);
Serial.print("Position :");Serial.println(Position [0][2]);
}
void loop()
{
}C'est à n'y rien comprendre . . . . .



