Você está na página 1de 3

Las memorias de Arduino

Memoria Flash: La memoria Flash (espacio del programa) es donde Arduino almacena
el sketch. Un sketch es el nombre que usa Arduino para un programa. Es la unidad de
cdigo que se sube y ejecuta en la placa Arduino. Esta memoria es no voltil, si Arduino
deja de ser alimentado elctricamente los datos que haya en esta memoria permanecern.
El tamao de la memoria Flash de Arduino puede variar dependiendo del microcontrolador,
aunque no es muy grande. Por ejemplo, para el chip ATmega168 el tamao de la memoria
Flash es de 16 kilobytes, de los cuales 2 kilobytes son utilizados por el bootloader. Para el
caso del microcontrolador ATmega328 (como el que incorpora Arduino UNO) el tamao de
la memoria Flash es de 32KB, de los cuales el bootloader usa 0,5KB. Se recomienda que
se realicen programas de manera optimizada.

Memoria SRAM: Static Random Access Memory memoria esttica de acceso aleatorio
es de tipo voltil, es el espacio donde los sketches (programas) almacenan y manipulan
variables al ejecutarse. La informacin guardada en esta memoria ser eliminada cuando
Arduino pierda la alimentacin. Esta memoria es de uso exclusivo para el programa en
ejecucin. La memoria SRAM de Arduino es muy pequea, por lo que debemos optimizar
nuestros programas al mximo y no abusar de variables de tipo char muy grandes. Hay
que tener en cuenta que cada carcter de una variable char utiliza un byte. En el
microcontrolador ATmega 168 el tamao de la memoria SRAM es de 1024 bytes, para el
caso de un chip ATmega328 (como el que incorpora Arduino UNO) el tamao es de 2KB
(2048 bytes).

Memoria EEPROM: es un espacio de


memoria que puede ser utilizada por los
programadores para
almacenar informacin de largo plazo. El
tamao de la EEPROM para un chip
ATmega128 es de 512 bytes, para un chip
ATmega328 es de 1KB (1024 bytes). Hay
que tener en cuenta que el tamao de la
memoria EEPROM interna de Arduino es
"pequeo" pero Arduino admite aadir
mdulos de memoria EEPROM externa de
mayor tamao.

NOTA IMPORTANTE:
La escritura en EEPROM demanda 3.3 ms para completarse. La memoria EEPROM de Arduino
especifica una vida de aproximadamente 100,000 ciclos de lectura/escritura. Hay que tener esto
siempre presente al momento de decidir si guardar un dato en EEPROM o no.
Es posible aumentar la capacidad de almacenamiento no voltil en Arduino usando una memoria
EEPROM externa. Tambin es posible conectar un mdulo o un shield SD Card:

La librera EEPROM.h
Funciones:
read()- Lee un byte desde la EEPROM.
Sintaxis:
EEPROM.read(direccin)
Donde direccin (de tipo int) es la ubicacin del dato a leer, comenzando por 0. Retorna un dato
de tipo byte con el valor almacenado.
write()- Escribe un byte en la EEPROM.
Sintaxis:
EEPROM.write(direccin, valor)
Donde valor es el dato (byte) a escribir en la EEPROM y direccin (de tipo int) es la ubicacin
donde se escribir, comenzando por 0.

Ejemplos:

1. Escribir la EEPROM

#include <EEPROM.h>

void setup()
{
for (int i = 0; i < 255; i++)
EEPROM.write(i, i);
}

void loop()
{
}
2. Leer la EEPROM

#include <EEPROM.h>

int a = 0;
int value;

void setup()
{
Serial.begin(9600);
Serial.println("Dato\tValor");
}

void loop()
{
value = EEPROM.read(a);

Serial.print(a);
Serial.print("\t");
Serial.print(value);
Serial.println();

a = a + 1;

if (a == 512)
a = 0;

delay(500);
}

Você também pode gostar