Comment utiliser la bibliothèque EEPROM à Arduino

Comment utiliser la bibliothèque EEPROM à Arduino
Dans la programmation Arduino lorsqu'un croquis est téléchargé sur la carte Arduino, il y reste et est stocké dans l'Arduino jusqu'à ce qu'il soit effacé ou qu'un autre croquis soit téléchargé. Ces données sont stockées dans l'EEPROM construite dans l'Arduino. L'utilisation de l'EEPROM et de sa bibliothèque est expliquée dans ce contexte suivant.

Eeprom d'Arduino

Cette mémoire de lecture autre que le stockage donne la possibilité d'éditer le contenu du croquis à l'aide de ses fonctions. De même, cette mémoire a été conçue pour éviter le problème de la difficulté d'effacement des données qui ont été interceptées dans le passé. Les tailles EEPROM de différentes cartes Arduino sont mentionnées ci-dessous:

Manette Taille
Arduino Uno, Arduino Nano, Arduino Mini (atmega328) 1024 octets
Arduino Nano (ATMEGA168) 512 octets
Arduino Mega (ATMEGA2560) 4096 octets

L'acronyme EEPROM signifie «Mémoire de lecture permanente électroniquement effrayante». Il existe 8 types de fonctions qui peuvent être effectuées à l'aide de la bibliothèque EEPROM. Cette bibliothèque est déjà livrée avec le logiciel Arduino IDE, il n'est donc pas nécessaire d'installer la bibliothèque:

  • Écriture de la fonction d'Eeprom
  • Lire la fonction d'Eeprom
  • Posez la fonction d'Eeprom
  • Obtenez la fonction de l'eeprom
  • Mettre à jour la fonction d'EEPROM

Écriture de la fonction d'Eeprom

Lorsque les données doivent être enregistrées dans n'importe quelle adresse, elle peut être effectuée en utilisant le Eeprom.écrire() fonction. Les données seront stockées jusqu'à ce qu'elles soient effacées ou mises à jour.

Dans le code d'abord, la bibliothèque de la mémoire est initialisée, puis la variable d'adresse est déclarée et, dans la boucle, l'EEPROM.La fonction écrite () est utilisée pour écrire à la valeur de l'adresse.

Après chaque itération, l'adresse change et la même valeur est ajoutée à toutes les adresses de l'EEPROM. De même, les données enregistrées à l'aide de la fonction d'écriture.

Le programme s'exécutera jusqu'à ce que les adresses deviennent égales à la longueur totale de l'EEPROM et que la longueur de la mémoire varie d'une carte à l'autre. Dans Arduino Uno, il s'agit de 1 kilo octets, donc le programme s'exécutera lorsque toutes les 1000 adresses auront donné la valeur de 200.

#inclure
Int adresse = 0;
INT VALEUR = 200;
void setup()
En série.commencer (9600);

VOID LOOP ()
Eeprom.écrire (adresse, valeur);
En série.print ("Cette adresse:");
En série.println (adresse);
En série.print ("a la valeur de");
En série.println (valeur);
En série.println ();
adresse = adresse + 1;
if (adresse == eeprom.longueur())
adresse = 0;

retard (500);

Sortir

Lire la fonction d'Eeprom

Pour lire toutes les données de n'importe quelle adresse de la mémoire le Eeprom.lire() La fonction est utilisée. Pour décrire davantage le fonctionnement de l'EEPROM.lecture () Fonction Un exemple de code est donné.

Depuis dans le programme précédent, nous avons donné la valeur de 200 à chaque adresse de la mémoire, donc lorsque nous lisons chaque adresse de la mémoire en utilisant l'EEPROM.Fonction LEAD () Il affiche la même sortie:

#inclure
Int adresse = 0;
valeur d'octet;
void setup()
En série.commencer (9600);

VOID LOOP ()
valeur = eeprom.lire (adresse);
En série.print ("Cette adresse:");
En série.println (adresse);
En série.print ("a la valeur de");
En série.println (valeur);
En série.println ();
adresse = adresse + 1;
if (adresse == eeprom.longueur())
adresse = 0;

retard (500);

Sortir

Posez la fonction d'Eeprom

Pour stocker les données sous la forme d'un tableau ou les données sont de type flotteur puis le Eeprom.mettre() La fonction est utilisée. Pour comprendre l'utilisation de l'eeprom.Fonction put () Il est expliqué en outre en utilisant un programme Arduino simple.

Dans le code d'abord, la valeur ayant un type de données flottantes est stockée dans l'adresse 0 de la mémoire, puis une structure est construite sur les données de nom qui ont une valeur de type d'octet, une valeur de type de flotteur et une valeur de caractères.

La taille de l'ensemble de la structure est de 12 octets ayant 4 octets pour les valeurs de type entier et de flotteur et 8 octets pour la valeur du caractère.

L'adresse du type de flotteur est initialisée comme zéro alors que l'adresse de la structure est après l'octet suivant trouvé après la valeur du flotteur.

#inclure
Données de structure
float value1;
valeur d'octet2;
Char Word [8];
;
void setup()
En série.commencer (9600);
float f = 967.817;
int eeaddress = 0;
Eeprom.put (eeaddress, f);
En série.print ("Cette adresse:");
En série.println (eeaddress);
En série.print ("a une valeur flottante de");
En série.println (f);
En série.println ();
valeurs de données =
2.65,
89,
"Bonjour!"
;
eEaddress + = sizeof (float);
Eeprom.put (eeaddress, valeurs);
En série.print ("Cette adresse:");
En série.print (eeaddress);
En série.print ('\ t');
En série.print ("a la structure ayant les informations:");
En série.println ();
En série.println (valeurs.valeur 1);
En série.println (valeurs.valeur 2);
En série.println (valeurs.mot);

VOID LOOP ()

Sortir

Obtenez la fonction de l'eeprom

Pour récupérer les données stockées dans les types de données flottantes ou sous la forme de structure, la fonction Get est utilisée. Cette fonction est différente de la fonction de lecture et d'écriture simple. L'exemple pour l'utilisation de Eeprom.obtenir() Fonction fournie qui donnera un concept clair de la fonction:

#inclure
void setup()
flotter f = 0.00;
int eeaddress = 0;
En série.commencer (9600);
En série.print ("lire le flotteur depuis eeprom:");
Eeprom.get (eeaddress, f);
En série.println (f, 4);
StructureValues ​​();

Données de structure
float value1;
valeur d'octet2;
Char Word [8];
;
void StructureValues ​​()
int eeaddress = sizeof (float);
valeurs de données;
Eeprom.get (eeaddress, valeurs);
En série.println ("LIRE STRUCTURE DE EEPROM:");
En série.println (valeurs.valeur 1);
En série.println (valeurs.valeur 2);
En série.println (valeurs.mot);

VOID LOOP ()

Ici, dans le code, une valeur flottante et une valeur de structure stockée dans la mémoire Arduino sont récupérées qui ont été précédemment stockées à l'aide de l'EEPROM.fonction put ().

Sortir

Mettre à jour la fonction d'EEPROM

Lorsque des données sur une adresse doivent être mises à jour Eeprom.mise à jour() La fonction est utilisée. Cette fonction n'est utilisée que lorsqu'il y a déjà des données sur l'adresse respective. De même, cette fonction ne met à jour les données que si elle est différente des données précédemment enregistrées.

#inclure
INT Adresse = 4;
INT VALEUR;
Int Value1 = 300;
void setup()
En série.commencer (9600);
valeur = eeprom.lire (adresse);
En série.print ("Cette adresse:");
En série.println (adresse);
En série.print ("valeur précédente");
En série.println (valeur);
En série.println ();
Eeprom.Mise à jour (adresse, valeur1);
En série.print ("Cette adresse:");
En série.println (adresse);
En série.print ("Valeur mise à jour");
En série.println (valeur1);
En série.println ();

VOID LOOP ()

Dans l'exemple de code, les données de l'adresse 4 sont mises à jour car la valeur précédente à cette adresse était 44. Les données de l'adresse 4 sont passées de 44 à 300.

À des fins de démonstration, l'EEPROM.La fonction read () est utilisée pour récupérer les données stockées dans l'adresse 4, puis une valeur mise à jour est stockée dans l'adresse 4 en utilisant l'EEPROM.Fonction Update ().

Sortir

Conclusion

Les bibliothèques en programmation Arduino sont principalement utilisées pour obtenir des fonctionnalités supplémentaires du matériel interfacé. L'EEPROM est la mémoire de la carte Arduino qui peut être accessible en utilisant l'Eeprom.bibliothèque H. En utilisant ses fonctions, les données stockées dans l'Arduino peuvent être modifiées ou effacées. Cet article explique cinq fonctions principales qui peuvent être utilisées pour modifier ou effacer les données d'Arduino.