Bonjour à tous.
Grace à vos nombreux conseils avisés, mon projet avance toujours. Mon objectif était de pouvoir sauvegarder la valeur ( float ) de déclenchement de certaines alarmes dans une EEPROM. Aucun souci pour lire ou écrire un octet, mais comment faire pour sauvegarder des floats - ou autres - La solution de multiplier le float par 10
x, récupérer chaque digit et les savegarder les uns apres les autres ne me satisfaisait pas, mais alors pas du tout. Je me suis tourné vers l'utilisation des pointeurs, je suis certain que ce doit être possible de les utiliser dans un cas comme le mien mais je n'ai pas reussi.
Edit : "maintenant ça y est ! Je séchais jusqu'à ce que je découvre - en fouillant vraiment -
union. Voiçi le code tel qu'il est au moment ou je laisse ces lignes.
void setup() {
Serial.begin(9600);
}
void loop() {
union u_tag {
byte b[4];
float valeur;
}
u;
u.valeur = 123.456;
for (int i = 0; i < sizeof(u.valeur); i++){
Serial.print(i);
Serial.print(" ");
Serial.println(u.b[i], BIN);
}
Serial.println("");
// ces valeurs sont celles affichées par le moniteur série
u.b[0] = 121;
u.b[1] = 233;
u.b[2] = 246;
u.b[3] = 66;
Serial.println(u.valeur,3);
delay(1000);
}
C'est formidable. Ca fonctionne, le moniteur serie m'affiche :
0 1111001
1 11101001
2 11110110
3 1000010
123.456
Je souhaiterai pouvoir "automatiser" ce traitement.
Une de mes nombreuses question est la suivante. Existe t-il en language Arduinesque lune fonction TypeOf ou GetType, une fonction qui me permettrai de connaitre le type d'une variable - int, long, float, objet ou autre - ?
Merci bien à tout ceux qui m'ont deja aidé et un grand merci à la communauté

Un Ardui-Novice