Comment tarvailler avec un EEPROM

Bonjour à tous,

J'essaye de sauver une chaine de caractere dans un EEPROM.

Pour cela, j'ai vu ceci

https://www.arduino.cc/en/Reference/EEPROMPut

Mais évidemment ca ne marche pas et je pense m'y etre mal pris.

D'abord, j'ai un EEPROM interne de l'Arduino mais j'ai aussi un eeprom 74LC01.
Ce dernier est connecté sur les pin A4 et A5 de mon Arduino mini pro.

D'abord, j'essaye de sauver dans l'EEPROM interne mais pour info, par la suite, je souhaiterais utiliser mon EEPROM externe.

J'ai créé ma librairie wi808.h et wi808.cpp.

J'ai fais comme ceci:
dans mon fichier wi808.ino, j'ai ajouté cette ligne:

#include <EEPROM.h>

Dans mes fichier wi808.h et wi808.cpp, j'ai ajouté ces ligne

#include "EEPROM.h"

Dans mon fichier WI808.8, j'ai ajouté ceci encore ceci

struct MyObject {
	float field1;
  	byte field2;
  	char name[10];
};

juste au dessus de

 class SI808{

Puis dans une de mes fonction, ou je souhaiterais ecris dans mon eeprom, j'ai ajouté ceci

MyObject customVar = {
            3.14f,
            65,
            "Working!"
          };

        EEPROM.put(0,customVar);

En réalisté je souhaite juste ecrire, une chainede caratere, comme par exemple "Working", mais pour commencer, j'écris comme l'exemple, le montre. Je souhiate ecrire mon premeir texte à la position 0.

Quand je compile, j'ai ce message d'erreir:

/Users/pierrot/Documents/Arduino/libraries/Wi808/Wi808.cpp: In member function 'int WI808::sendHTTP(char*)':
/Users/pierrot/Documents/Arduino/libraries/Wi808/Wi808.cpp:1525:15: error: expected primary-expression before '.' token
EEPROM.put(0,customVar);
^
Erreur lors de la compilation.

Je ne vois pas ou j'ai fait l'erreur?

Pouvez-vous m'éclairer?
Milles mercis

Hello, je suis toujours bloque avec ceci, es-ce quelqu'un pour me lancer pour adapter mon code avec la librairie EEPROM et l'eeprom interne?

Milles mercis

bonjour,
teste ca

 MyObject customVar = {
    3.14f,
    65,
    "Working!"
  };
int eeAddress = 0;
  eeAddress += sizeof(float);

  EEPROM.put(eeAddress, customVar);

mais il faudrait voir la totalité de ta fonction.

Salut,
Je te remercie pour ta réponse.
Alors j'ai réussi, mais je ne sais pas comment :smiley:

MyFix write = {"fix"};

          EEPROM.put(eeprom_address,write);

          sprintln(F("Saved EE:"));
          MyFix read; //Variable to store custom object read from EEPROM.
          EEPROM.get( eeprom_address, read );

          Serial.println( read.position );

Y a un autre truc que je en sais pas car je n'ai jamais travailler avec une structure.

Dans mon fichier wi808.h, j'ai mis ceci avant la classe

	struct MyFix {
		//float field1;
  		//byte field2;
  		char position[FIXSIZE];
	};

Es-ce que je peux aussi le mettre dans ma classe, sous la clé 'public' ou 'private'?

L'autre truc plus embetant est mon objet. Comment je peux lui donner une valeur?
Par exemple, j'ai ceci

char fix[100];
MyFix write = {"fix"};

Dans mon code, la variable fix, prend une valeur avec 90 caracters.

Alors j'aimerais bien faire ceci

char fix[100];
MyFix write = {fix};

mais la ca bug, car le compilateur me dit

/Users/pierrot/Documents/Arduino/libraries/Wi808/Wi808.cpp:1554:29: error: array must be initialized with a brace-enclosed initializer
MyFix write = {fix};
^

Comment je peux donc passer la valeur d'un char, dans 'position' de mon objet MyFix?