Guide pour enregistrer des données dans la mémoire EEPROM d'une carte Arduino
Posté le 14-07-2023 par YoupiLab
Arduino
Guide pour enregistrer des données dans la mémoire EEPROM d'une carte Arduino

Lorsque vous travaillez sur des projets Arduino, il est souvent nécessaire de stocker des données de manière permanente. C'est là que la mémoire EEPROM (Electrically Erasable Programmable Read-Only Memory) entre en jeu. Dans cet article, nous allons explorer en détail comment utiliser la mémoire EEPROM pour enregistrer des données importantes sur une carte Arduino.

Comprendre la mémoire EEPROM :

  • Qu'est-ce que la mémoire EEPROM ?

Une mémoire EEPROM (Electrically Erasable Programmable Read-Only Memory) est un type de mémoire non volatile utilisée pour stocker des données de manière permanente dans un microcontrôleur ou un dispositif électronique. Contrairement à la mémoire RAM (Random Access Memory) qui perd son contenu lorsque l'alimentation est coupée. La mémoire EEPROM conserve les données même lorsque l'alimentation est coupée. Les mémoires EEPROM sont utilisées dans de nombreux systèmes embarqués tels que les microcontrôleurs Arduino, et les cartes comme les Raspberry, ESP et autres, les appareils électroniques grand public et les systèmes de stockage de données. Elles offrent une solution pratique pour stocker des configurations, des paramètres utilisateur, des données de calibration,

  • Avantages et utilisations de la mémoire EEPROM :

L'utilisation de la mémoire EEPROM dans un projet Arduino permet aux développeurs de stocker des valeurs, des paramètres ou des états importants, ce qui facilite la récupération de données après une coupure d'alimentation ou un redémarrage de l'appareil. La taille de la mémoire EEPROM varie en fonction du microcontrôleur utilisé, allant de quelques octets à plusieurs kilo-octets, offrant ainsi une capacité de stockage suffisante pour de nombreuses applications. Il est important de comprendre les limitations de la mémoire EEPROM, telles que le nombre limité d'écritures possibles et la durée de vie limitée des cellules de mémoire.

 

Arduino Uno :

Capacité de la mémoire EEPROM : 1 Ko (1024 octets)

Nombre de cycles d'écriture : 100 000 cycles

Arduino Nano :

Capacité de la mémoire EEPROM : 512 octets (512 octets) pour les cartes avec un processeur 168 et 1 Ko (1024 octets) pour les cartes avec un processeur 328

Nombre de cycles d'écriture : 100 000 cycles

Arduino Méga :

Capacité de la mémoire EEPROM : 4 Ko (4096 octets)

Nombre de cycles d'écriture : 100 000 cycles

 

Carte Arduino Nano                                       

Carte Arduino Nano                                 Carte Arduino Uno                                         Carte Arduino Mega

 

Toutes ces cartes sont disponibles ici

Accéder à la mémoire EEPROM :

  • Inclure la bibliothèque EEPROM :

Avant de pouvoir utiliser la mémoire EEPROM, vous devez inclure la bibliothèque EEPROM dans votre code Arduino. Cela permet d'accéder aux fonctions spécifiques de la mémoire EEPROM.

Inclusion de la Bibliothèque EEPROM.h

  • Lecture d'une valeur de la mémoire EEPROM :

Pour lire une valeur spécifique stockée dans la mémoire EEPROM, utilisez la fonction EEPROM.read(). Cette fonction permet de récupérer la valeur à partir d'une adresse mémoire spécifiée.

Lire une valeur à partir de l'adresse 0 de l'EEPROM

 

  • Écriture d'une valeur dans la mémoire EEPROM :

Pour écrire une valeur dans la mémoire EEPROM, utilisez la fonction EEPROM.write(). Spécifiez l'adresse mémoire à laquelle vous souhaitez enregistrer la valeur et la valeur elle-même. La fonction EEPROM.write() écrase les données dans la cellule avec l’adresse spécifié à chaque fois qu’elle est appelée

Inscrire la valeur val à l'adresse 0 de l'EEPROM.

  • Mettre à jour une valeur de la mémoire EEPROM :

La fonction EEPROM.update() est également une fonction de la bibliothèque EEPROM.h d'Arduino. Elle est utilisée pour mettre à jour une valeur stockée dans la mémoire EEPROM sans nécessiter une réécriture complète de l'octet.

La fonction EEPROM.update() fonctionne de manière similaire à la fonction EEPROM.write(), mais avec une différence importante. Elle compare la valeur existante stockée à celle que vous souhaitez écrire et n'effectue la mise à jour que si les valeurs sont différentes. Cela permet d'économiser des cycles d'écriture sur la mémoire EEPROM, car seule une modification réelle de la valeur entraîne une écriture.

Mettre à jour la cellule EEPROM concernée (0)

Quelques cas pratiques d’utilisation

  • Stockage de paramètres de configuration :

La mémoire EEPROM est idéale pour stocker des paramètres de configuration tels que des seuils de capteurs, des adresses IP, des délais, etc. Vous pouvez les enregistrer dans la mémoire EEPROM pour qu'ils soient disponibles même après la mise hors tension de la carte Arduino.

  • Enregistrement de données de capteurs :

Si vous utilisez des capteurs dans votre projet Arduino, vous pouvez enregistrer les données de capteurs importantes dans la mémoire EEPROM. Cela vous permet de stocker les lectures des capteurs pour une utilisation ultérieure, telle que l'analyse des tendances ou la génération de rapports.

  • Sauvegarde des préférences utilisateur :

Si votre projet Arduino permet à l'utilisateur de personnaliser certaines fonctionnalités, vous pouvez stocker les préférences utilisateur dans la mémoire EEPROM. Cela garantit que les préférences sont conservées même après la mise hors tension de la carte.

 

  • Mise à jour des valeurs en mémoire EEPROM :

Si vous avez besoin de mettre à jour les valeurs stockées dans la mémoire EEPROM, vous pouvez le faire en utilisant les fonctions appropriées. Assurez-vous de prendre en compte les cycles d'écriture limités de la mémoire EEPROM lors de la mise à jour fréquente des valeurs

Exemple : Stockage d'une valeur entière dans la mémoire EEPROM

Stockage d'une valeur entière dans la mémoire EEPROM

Téléchargez le code source arduino ici.

Résumé

En conclusion, cet article montre comment la mémoire EEPROM peut être utilisée pour stocker des données importantes dans les projets Arduino. Il fournit un exemple de programme pratique et explique les différentes fonctions disponibles pour lire, enregistrer et mettre à jour les données dans la mémoire EEPROM. Cela permet aux utilisateurs d'exploiter les fonctionnalités de la mémoire EEPROM dans leurs propres projets.

RESTONS EN CONTACT

Suivez-nous sur les réseaux sociaux