Comment utiliser Arduino EEPROM pour enregistrer des données entre les cycles d'alimentation

  • Michael Fisher
  • 0
  • 4173
  • 671
Publicité

Saviez-vous que l'Arduino peut stocker des données lorsqu'il est désactivé? Pas l'esquisse stockée dans la mémoire flash. Je parle de données variables dans l'EEPROM. Rejoignez-moi alors que je vous montre comment lire et écrire, et ce que cela peut faire pour vos projets.

Si vous débutez dans Arduino, ne manquez pas de consulter notre guide du débutant Démarrer avec Arduino: Guide du débutant Démarrer avec Arduino: Guide du débutant Arduino est une plate-forme de prototypage électronique à code source ouvert basée sur un matériel flexible et facile à utiliser. et logiciel. Il est destiné aux artistes, concepteurs, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs.. .

Qu'est-ce que l'EEPROM??

EEPROM signifie mémoire morte programmable effaçable électriquement. C'est un type de mémoire non volatile. Ne vous inquiétez pas si vous ne comprenez pas ce que cela signifie. Il stocke simplement des données même lorsque la puissance est réduite (contrairement à la RAM. Guide rapide de la mémoire vive: Ce que vous devez savoir Guide pratique de la mémoire vive: Ce que vous devez savoir. La mémoire vive est un élément crucial de tout ordinateur nous le décomposons en termes faciles à comprendre que vous comprendrez, qui a besoin d’électricité pour conserver toutes les données).

La mémoire EEPROM est intégrée à une multitude de processeurs, tels que le FPGA utilisé dans Matrix Creator Matrix Creator pour Raspberry Pi Review Matrix Creator pour Raspberry Pi Review Le Matrix Creator est un couteau suisse pour votre Pi, avec 15 capteurs, une suite de protocoles de communication, un anneau de LED RVB, un ensemble de microphones, et plus encore! CHAPEAU DE PI. Tous les Arduinos ont une EEPROM disponible, mais la capacité varie selon les modèles. Assurez-vous de consulter notre guide d'achat Guide d'achat Arduino: Quel conseil choisir? Guide d'achat Arduino: Quel conseil choisir? Il y a tellement de types de cartes Arduino que vous ne pouvez pas vous tromper. Que devriez-vous acheter pour votre projet? Laissez-nous vous aider avec ce guide d'achat Arduino! pour plus de détails sur chaque tableau.

Comment ça marche?

La mémoire EEPROM est effacée et programmée électriquement Tunnel de Fowler-Nordheim. Vous n'avez pas besoin de connaître les détails techniques pour pouvoir l'utiliser. Le principe de base est que l'électricité est utilisée pour modifier les données binaires (Qu'est-ce que le binaire Qu'est-ce qu'un binaire? [Technologie expliquée] Qu'est-ce que le binaire? [Technologie Expliquée] Étant donné que le binaire est si fondamental pour l'existence des ordinateurs, il semble étrange que nous n’avons jamais abordé le sujet auparavant - alors aujourd’hui, je pensais donner un bref aperçu de ce que binaire…). Il peut être lu, effacé et réécrit électroniquement.

Heureusement, la langue Arduino facilite la modification des données, sans nécessiter de diplôme en informatique..

Espérance de vie

Bien qu'il soit facile d'utiliser une EEPROM dans l'Arduino, sa durée de vie est limitée. L'EEPROM est spécifié pour gérer 100 000 cycles de lecture / effacement. Cela signifie que vous pouvez écrire puis effacer / réécrire les données 100 000 fois avant que l'EEPROM ne devienne instable. En réalité, Atmel (les fabricants de l’Arduino) “Puce”) les semi-conducteurs peuvent traiter un nombre de cycles supérieur ou inférieur, en fonction des tolérances de chaque processeur.

Une fois qu'un lieu a été écrit et effacé trop souvent, il peut commencer à devenir peu fiable. Il peut ne pas renvoyer les données correctes ou la valeur d'un bit voisin.

Cela peut sembler beaucoup d’écritures, mais il est facile d’atteindre cette limite si vous lisez et écrivez par programmation (dans un boucle, par exemple). La lecture des données ne dégrade pas le silicium, seul l'écriture fait. Vous pouvez lire les données de l'EEPROM autant que vous le souhaitez sans crainte!

Il est important de noter que cette limite s'applique à chaque emplacement de mémoire. Votre Arduino peut avoir 1 000 emplacements de mémoire ou plus disponibles dans l'EEPROM. Par conséquent, si vous écrivez trop de fois sur un emplacement, seul cet emplacement est concerné, pas les autres. Plus tard, je discuterai porter le nivellement, Comment estimer la durée de vie restante de votre disque SSD Comment estimer la durée de vie restante de votre SSD Tous les SSD ont une durée de vie limitée en raison des cycles d'écriture (bien que cette durée de vie soit plus longue que la vôtre). pourrait penser). Voici comment vous pouvez estimer la fin de votre parcours. se servir de.

Qu'est-ce que c'est utile pour?

EEPROM est incroyablement utile pour vos projets Arduino. Comme il se souvient des données même lorsque l’alimentation est coupée, vous pouvez stocker l’état de l’Arduino. Peut-être que vous pourriez construire une tourelle laser Pew Pew! Comment construire une tourelle laser avec un Pew Pew Arduino! Comment construire une tourelle laser avec un Arduino Vous vous ennuyez? On pourrait aussi bien construire une tourelle laser. qui se souvient de sa position ou combien “munitions” reste. Vous pouvez l'utiliser pour contrôler vos appareils. Appareils de contrôle à partir d'un Arduino: le début de la domotique Appareils de contrôle à partir d'un Arduino: le début de l'automatisation à la maison La dernière fois, je vous ai montré quelques façons de rendre la parole de vos projets Arduino contrôlée via SiriProxy, OS Les éléments parlables intégrés de X et certains scripts Automator, ou même une puce matérielle dédiée à la reconnaissance vocale. Je… et enregistre combien de fois votre appareil a été activé.

La mémoire EEPROM est la mieux adaptée à des paramètres tels que les paramètres ou les scores élevés. Si vous souhaitez écrire régulièrement des données complexes, envisagez peut-être un bouclier Ethernet. Donnez à votre projet Arduino son propre mini-serveur Web, avec un bouclier Ethernet. Donnez à votre projet Arduino son propre mini-serveur Web, avec un bouclier Ethernet. Il y a quelque temps, je vous ai montré comment pour installer un système de contrôle Internet pour votre Arduino - mais il devait rester connecté à un ordinateur via USB afin de maintenir la connexion Internet… (avec fente SD intégrée) ou un Raspberry Pi Raspberry Pi: le tutoriel non officiel Raspberry Pi: Le tutoriel non officiel Que vous soyez un propriétaire actuel de Pi qui souhaite en savoir plus ou un propriétaire potentiel de cet appareil au format carte de crédit, ce guide ne doit pas être manqué.. .

Lire et écrire

Maintenant que la théorie est finie, voyons comment lire et écrire des données! Commencez par inclure la bibliothèque (fournie avec l'IDE Arduino):

#comprendre 

Maintenant, écris quelques données:

EEPROM.write (0, 12);

Cela écrit le numéro 12 vers l'emplacement EEPROM 0. Chaque écriture prend 3,3 millisecondes (Mme, 1000ms = 1 seconde). Remarquez comment vous ne pouvez pas écrire de lettres (carboniser), seuls les nombres de zéro à 255 sont autorisés. C’est pourquoi la mémoire EEPROM est idéale pour les réglages ou les scores élevés, mais pas pour les noms de joueurs ou les mots. Il est possible de stocker du texte en utilisant cette méthode (vous pouvez mapper chaque lettre de l'alphabet sur un chiffre), mais vous devrez disposer de plusieurs emplacements de mémoire - un emplacement pour chaque lettre..

Voici comment vous lisez ces données:

EEPROM.lire (0);

Zéro est l'adresse que vous avez écrite précédemment. Si vous n'avez pas écrit à une adresse auparavant, la valeur maximale sera renvoyée (255).

Certaines méthodes légèrement plus utiles sont disponibles. Supposons que vous souhaitiez stocker une décimale ou une chaîne:

EEPROM.put (2, "12,67");

Cela permet d'écrire les données sur plusieurs emplacements, ce qui serait facile à écrire vous-même, mais pratique. Vous aurez toujours besoin de savoir combien de localisations ont été écrites pour ne pas écraser accidentellement vos données! Vous devez utiliser le obtenir méthode pour récupérer à nouveau ces données:

float f = 0.00f; EEPROM.get (2, f);

La valeur de get est stockée dans le float F variable. Notez comment cela est initialisé avec 0.00f comme la valeur. le F indique au compilateur que vous souhaiterez peut-être stocker un grand nombre dans cette variable et qu'il configurera d'autres configurations lors de la compilation.

La documentation EEPROM sur le site Web Arduino contient de nombreux autres exemples..

Nivellement de l'usure

Le nivellement d'usure est une technique utilisée pour réduire l'usure et augmenter la durée de vie de la mémoire EEPROM. Si vous ne travaillez que sur un petit projet, vous n'avez peut-être pas à vous soucier de cela..

La façon la plus simple de préserver la durée de vie de votre EEPROM consiste à limiter vos écritures à un emplacement particulier. Vous pouvez le faire en lisant d'abord l'adresse, et si la valeur que vous voulez écrire est déjà présente, il n'est pas nécessaire de l'écrire à nouveau (rappelez-vous que la lecture des données ne nuit pas). Voici comment vous feriez cela:

int safeWrite (int données, adresse) if (EEPROM.read (adresse)! = données) EEPROM.write (adresse, données); 

C'est un peu simple code, cependant cela ne fonctionne que pour les entiers! Au lieu de réinventer la roue, utilisez la fonction intégrée à la bibliothèque Arduino EEPROM:

EEPROM.update (address, val);

Cette méthode a exactement la même signature que le écrire méthode, bien qu'elle puisse réduire considérablement le nombre d'écritures nécessaires!

Si vous avez besoin d'écrire beaucoup de données et que vous vous inquiétez de l'usure du silicium, vous pouvez suivre le nombre d'écritures que vous avez effectuées, bien que cela utilise plus de données. Voici une implémentation approximative en pseudocode:

var address = 0 var writeCount = 0 si (writeCount> 75 000) writeCount = 0 adresse + = 1 EEPROM.write (adresse, données)

Vous aurez besoin de stocker adresse et writeCount dans une EEPROM (et writeCount devra être réparti sur plusieurs adresses). La plupart du temps, ce niveau de protection ne sera pas nécessaire. Les Arduinos sont aussi très bon marché, vous pouvez donc trouver plus facile d’acheter une copie de sauvegarde.!

Vous devez maintenant en savoir assez pour faire des projets géniaux. Faites-nous savoir si vous faites quelque chose de cool! Pouvez-vous reconnaître tous les appareils sur les images? Laissez-nous un commentaire ci-dessous!




Personne n'a encore commenté ce post.

De la technologie moderne, simple et abordable.
Votre guide dans le monde de la technologie moderne. Apprenez à utiliser les technologies et les gadgets qui nous entourent chaque jour et à découvrir des choses intéressantes sur Internet.