Novedades
Más comprados
- T7000 HNBC Pegamento Adhesivo T-7000 15ml NEGRO transparente Pantalla LCD Móvil 3,14€
- T7000 HNBC Pegamento Adhesivo T-7000 50ml NEGRO transparente Pantalla LCD Móvil 5,14€
- PANTALLA DE CRISTAL PARA GAME BOY 54,40€
- 3x caja plastico almacenaje joyas electrónica herramientas collar 16.5x12x6 16,00€
- 3x caja plastico almacenaje joyas electrónica herramientas collar 14.2x8.2x3.4 10,50€
Lo que nos diferencia del resto
Atención Personalizada
Estamos aquí para ayudarle, si necesita información sobre un producto, tiene alguna duda o requiere asistencia con su pedido, no dude en contactar con nosotros.
Presupuestos a medida
Pida presupuesto sin ningún tipo de compromiso, tenemos descuentos para docentes y precios especiales por volumen.
¿Necesita distribuidor?
Queremos ser su proveedor de electrónica ¿Necesita productos que no tenemos en el catálogo? Los buscaremos y le daremos presupuesto y plazo de entrega.
Capacidad de la EEPROM de Arduino.
Practica.
Materiales necesarios.
-Arduino UNO |
|
-Protoboard 400 contactos. |
|
-Potenciómetro |
|
-Cables |
Programar la EEPROM.
El primer paso para programar la EEPROM es incluir la librería:
#include <EEPROM.h>
Esta librería está en el IDE de Arduino por defecto, por lo que no tendremos que agregarla ni descargarla.
Vamos a ver las dos funciones principales de está librería:
Esta primera función nos escribe en la memoria. Donde el primer dato que ponemos es el hueco o dirección de memoria que usaremos y el segundo el dato que queremos guardar.
EEPROM.write(Direccion, contador);//Guardamos el valor en la dirección de la EEPROM elegida
Y por último esta otra función nos ayuda a leer la memoria. Aquí solo tenemos que poner la dirección del hueco que queremos leer y utilizar.
contador = EEPROM.read(Direccion);//Guardamos en la variable contador el valor almacenado en la dirección elegida.
Programa completo.
#include <EEPROM.h>//Se incluye la librería EEPROM int SensorPin = A0;//Declaramos el pin analógico que usaremos más delante. int Direccion = 0;//Declaramos una variable donde guardamos la dirección de la memoria que usaremos. En este caso 0. int contador=0;//Declaramos una variable para guardar los valores de la EEPROM más adelante en el programa. int ValorSensor=0;//Declaramos una variable para guardar los valores de la EEPROM más adelante en el programa. int UltimoValorSensor=0;//Aqui guardaremos el ultimo valor guardado en la EEPROM antes de que Arduino se apague. void setup() { Serial.begin(9600);//Iniciamos el puerto serie. Serial.println("inicio");//Imprimimos inicio para saber con el monitor serial donde empieza nuestro programa. contador = EEPROM.read(Direccion);//Guardamos en la variable contador el valor almacenado en la dirección elegida. UltimoValorSensor = EEPROM.read(Direccion+1);//Guardamos en la variable UltimoValorSensor. void loop() { ValorSensor = analogRead(SensorPin);//Leemos el valor en el pin analógico y lo guardamos en ValorSensor. ValorSensor = ValorSensor/4;//Dividimos este valor entre 4. Esto lo hacemos porque no podemos almacenar más de 255. //--------------------------------------------------------------------------------------- //En esta primera parte imprimiremos los valores del sensor registrados //y el ultimo almacenado antes de apagar Arduino //--------------------------------------------------------------------------------------- Serial.print("En la direccion ");//Imprimimos(En la direccion) Serial.print(Direccion+1);//Imprimimos la variable Dirección+1. Serial.print(" esta almacenado el ultimo valor del senor: ");//Imprimimos(esta almacenado el ultimo valor de senor) Serial.println(UltimoValorSensor);////Imprimimos la variable UltimoValorSensor Serial.print("El valor actual es:");//Imprimimos las palabras (El valor actual es:) Serial.println(ValorSensor);////Imprimimos la variable ValorSensor Serial.println("-------------------------------------------------");//Imprimimos lineas. //-------------------------------------------------------------------------------------- //En esta segunda parte imprimimos los valores del contador. //Apagando y volviendo a encender Arduino, podemos comprobar que el contador // continua su cuenta en el último numero que se quedó //-------------------------------------------------------------------------------------- Serial.print("En la direccion ");//Imprimimos (En la direccion) Serial.print(Direccion);//Imprimimos la variable Dirección. Serial.print(" esta almacenado el valor: ");//Imprimimos (esta almacenado el valor:) Serial.print(contador);////Imprimimos la variable contador Serial.println(" del contador");//Imprimimos (del contador) delay(2000);//Esperamos 2 segundos //El siguiente bucle comprueba que contador sea igual a 255 y si es igual carga en valor un 0 //Esto lo hacemos porque en una dirección de momoria EEPROM no podemos almacenar un valor por encima de 255. if(contador==255){ contador=0;} contador++;//Sumamos uno a la variable contador EEPROM.write(Direccion, contador);//Guardamos el valor en la dirección de la EEPROM elegida EEPROM.write(Direccion+1, ValorSensor);//Guardamos el valor en la dirección de la EEPROM elegida }
Resultados
Written by leantec.ES
Equipo de Leantec.ES
buenas tardes, tengo una memoria eprom, especificamente la 27c160 y quisiera saber como puedo leer y escribir datos con fecha y hora. muchas gracoas
Hola, tengo entendido que el número de veces que se puede grabar datos en la EEPROM está limitado físicamente. Si lo hacemos como en el ejemplo que proponéis se escribirá cada 2 segundos un dato en la memoria EEPROM del Arduino. Bueno supongo que como ejemplo vale, en la práctica se haría de otra forma para preservar este recurso y no quedarte sin placa en un santiamén.
hola Juan Luis, no se si podes ayudarme, tengo que hacer un programa el cual me cuente el ingreso de personas a un determinado lugar, el flujo de personas es de 1000 por dia, y debo mantener guardado este dato en la EEprom actualizandose constantemente cada vez que alguien entra, porque podria ocurrir el caso que mi arduino se apague por mal manejo de otras personas y tengo el temor que mi arduino empiece el contador a Cero. que consejo me podrías dar?
Estimado, y cuanta es la vida util de la memoria eeprom?
Pues en el foro de Arduino comentan que 100000 operaciones de grabación o borrado. Osea 55.5 horas si dejas funcionando el sketch del ejemplo. En dos días Arduino fundido.
Gracias por tu enseñanzas genial me a funcionado en un arduino nano ,Ahora voy a por un esp8266
saludos fernando
hola, que hay sobre la vida útil de la eeprom, tengo entendido que solo acepta 100000 de escritura o borrado antes de morir
Hola, muchas gracias por enseñar con sus tutoriles, me ha insiprado a pensar en arduino y a una idea-duda.
Si modificaramos la direccion, por encenderhoras =0 y encenderminutos=1, luego apagararhoras=3 y apagarminutos=4
Cambiar valorsensor por incremeto=0 y decrimento=0 estos en pwm.
se podria hacer modificando el codigo que almacenando esos datos en la eeprom y con un rtc, mañana los repitiera pero en lugar de a la misma hora, 20 minutos antes el encendido y 40 minutos mas tarde el apagado. Muchas gracias