Taula de continguts:
Vídeo: EEPROM incorporada del vostre Arduino: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:13
En aquest article examinarem la EEPROM interna a les nostres plaques Arduino. Què és una EEPROM que alguns de vosaltres diuen? Una EEPROM és una memòria de només lectura programable esborrable elèctricament.
És una forma de memòria no volàtil que pot recordar coses amb l’apagada de l’alimentació o després de restablir l’Arduino. La bellesa d’aquest tipus de memòria és que podem emmagatzemar les dades generades dins d’un esbós de manera més permanent.
Per què utilitzaríeu l'EEPROM interna? Per a situacions en què les dades exclusives d’una situació necessiten una llar més permanent. Per exemple, emmagatzemar el número de sèrie únic i la data de fabricació d’un projecte comercial basat en Arduino: una funció de l’esbós podria mostrar el número de sèrie en una pantalla LCD o es podrien llegir les dades carregant un “esbós de servei”. O és possible que hàgiu de comptar certs esdeveniments i no permetre que l'usuari els restableixi, com ara un comptaquilòmetres o un comptador de cicles d'operació.
Pas 1: quin tipus de dades es poden emmagatzemar?
Qualsevol cosa que es pugui representar com a bytes de dades. Un byte de dades està format per vuit bits de dades. Un bit pot estar activat (valor 1) o apagat (valor 0) i és perfecte per representar números en forma binària. En altres paraules, un nombre binari només pot utilitzar zeros i uns per representar un valor. Per tant, el binari també es coneix com a "base-2", ja que només pot utilitzar dos dígits.
Com pot un nombre binari només amb dos dígits representar un nombre més gran? Utilitza molts uns i zeros. Examinem un número binari, per exemple, 10101010. Com que es tracta d’un número base-2, cada dígit representa 2 a la potència de x, a partir de x = 0 en endavant.
Pas 2:
Vegeu com cada dígit del número binari pot representar un número base-10. Per tant, el nombre binari anterior representa 85 en base-10: el valor 85 és la suma dels valors de base-10. Un altre exemple: 11111111 en binari és igual a 255 a la base 10.
Pas 3:
Ara cada dígit d’aquest número binari utilitza un ‘bit’ de memòria i vuit bits formen un byte. A causa de les limitacions internes dels microcontroladors a les nostres plaques Arduino, només podem emmagatzemar números de 8 bits (un byte) a la EEPROM.
Això limita el valor decimal del nombre entre 0 i 255. Aleshores, heu de decidir com es poden representar les vostres dades amb aquest interval de números. No deixeu que això us enganyi; els números disposats de la manera correcta poden representar gairebé qualsevol cosa. Hi ha una limitació a tenir en compte: el nombre de vegades que podem llegir o escriure a l’EEPROM. Segons el fabricant Atmel, l'EEPROM és bona per a 100.000 cicles de lectura / escriptura (vegeu el full de dades).
Pas 4:
Ara sabem els nostres bits i bytes, quants bytes es poden emmagatzemar al microcontrolador del nostre Arduino? La resposta varia en funció del model de microcontrolador. Per exemple:
- Taulers amb un ATmel ATmega328, com ara Arduino Uno, Uno SMD, Nano, Lilypad, etc. - 1024 bytes (1 kilobyte)
- Taulers amb un ATmel ATmega1280 o 2560, com ara la sèrie Arduino Mega - 4096 bytes (4 kilobytes)
- Taulers amb un Atmel ATmega168, com ara l’Arduino Lilypad original, Nano antic, Diecimila, etc. - 512 bytes.
Si no esteu segur, consulteu l'índex de maquinari Arduino o pregunteu al proveïdor del tauler. Si necessiteu més emmagatzematge EEPROM que el que hi ha disponible amb el vostre microcontrolador, considereu utilitzar una EEPROM I2C externa.
En aquest moment, ja entenem quin tipus de dades i quant es poden emmagatzemar a la EEPROM del nostre Arduino. Ara és hora de posar-ho en pràctica. Com s'ha comentat anteriorment, hi ha una quantitat finita d'espai per a les nostres dades. En els exemples següents, utilitzarem una placa Arduino típica amb l'ATmega328 amb 1024 bytes d'emmagatzematge EEPROM.
Pas 5:
Per utilitzar l'EEPROM, cal una biblioteca, així que utilitzeu la següent biblioteca als vostres esbossos:
#include "EEPROM.h"
La resta és molt senzill. Per emmagatzemar una dada, fem servir la funció següent:
EEPROM.write (a, b);
El paràmetre a és la posició a l'EEPROM per emmagatzemar l'enter (0 ~ 255) de les dades b. En aquest exemple, tenim 1024 bytes d'emmagatzematge de memòria, de manera que el valor de a està entre 0 i 1023. Per recuperar una peça de dades és igual de simple, utilitzeu:
z = EEPROM.read (a);
On z és un enter per emmagatzemar les dades de la posició EEPROM a. Ara a veure un exemple.
Pas 6:
Aquest esbós crearà números aleatoris entre 0 i 255, els emmagatzemarà a l'EEPROM i els recuperarà i els mostrarà al monitor sèrie. La variable EEsize és el límit superior de la mida de la vostra EEPROM, de manera que (per exemple) seria 1024 per a un Arduino Uno o 4096 per a un Mega.
// Demostració EEPROM interna Arduino
#incloure
int zz; int EEsize = 1024; // mida en bytes de la EEPROM del vostre tauler
configuració nul·la ()
{Serial.begin (9600); randomSeed (analogRead (0)); } void loop () {Serial.println ("Escriptura de números aleatoris …"); for (int i = 0; i <EEsize; i ++) {zz = random (255); EEPROM.write (i, zz); } Serial.println (); for (int a = 0; a <EEsize; a ++) {zz = EEPROM.read (a); Serial.print ("Posició EEPROM:"); Serial.print (a); Serial.print ("conté"); Serial.println (zz); retard (25); }}
Apareixerà la sortida del monitor sèrie, tal com es mostra a la imatge.
Així ho teniu, una altra manera útil d’emmagatzemar dades amb els nostres sistemes Arduino. Tot i que no és el tutorial més emocionant, sens dubte és útil.
Aquest article us el proporciona pmdway.com: tot per a fabricants i aficionats a l'electrònica, amb lliurament gratuït a tot el món.
Recomanat:
Steam Punk del vostre SAI per obtenir hores de funcionament del vostre router Wi-Fi: 4 passos (amb imatges)
Steam Punk del vostre SAI per obtenir hores de funcionament del vostre router Wi-Fi: hi ha alguna cosa fonamentalment desagradable que el vostre SAI converti la potència de la bateria de 12V CC en 220V CA perquè els transformadors que funcionen amb el vostre enrutador i la fibra ONT puguin convertir-lo de nou en 12 V CC! També esteu contra els [normalment
Controleu el disseny del vostre model de tren amb el vostre TECLAT !: 12 passos
Controleu la disposició del vostre model de tren amb el vostre TECLAT!: En una de les meves instruccions anteriors, us vaig mostrar com podeu controlar el vostre model de tren amb el comandament del vostre televisor. També podeu consultar una versió actualitzada aquí. En aquest instructiu, us mostraré com controlar un disseny de model de tren amb un teclat
Controleu el disseny del vostre model de tren amb el vostre telèfon mòbil: 11 passos (amb imatges)
Controleu la disposició del vostre model de tren amb el vostre telèfon mòbil!: Controlar un disseny de model de tren amb controladors d’accelerador i de sortida de cable pot ser un bon començament per a principiants, però suposa un problema de no portabilitat. A més, els controladors sense fils que arriben al mercat només poden controlar alguns locom
Controleu el vostre avió RC amb l’acleròmetre del vostre telèfon: 15 passos (amb imatges)
Controleu el vostre avió RC amb l’acleròmetre del vostre telèfon: alguna vegada heu volgut controlar el vostre avió RC mitjançant la inclinació d’un objecte? Sempre he tingut la idea a la part posterior del cap, però mai l’he seguit fins aquesta setmana passada. Els meus primers pensaments eren utilitzar un acceleròmetre de triple eix, però ja he
Obteniu un àlbum des del vostre iPod al vostre iTunes !: 5 passos
Aconseguiu un àlbum des del vostre iPod a les vostres iTunes !: He notat que molta gent té la idea que heu de descarregar un programa completament nou o excavar noms de fitxers codificats per veure la música del vostre iPod i posar-lo. al vostre ordinador. En realitat és bastant fàcil i fins i tot podeu trobar un determinat albu