grabar datos en eeprom desde senson bh1750

buenos dias a todos,

soy nuevo en la programacion de arduino y por mas que busco no he encontrado nada que me resulta o ayude con el problema

tengo un sensor bh1750 es sensor de lux.

he conseguido que me haga la lectura y me aparezca en pantalla lcd y en com3.

pero a la hora de guardar ese dato cada 15 min en una eeprom me realiza el grabado correctamente pero de un dato numerico desconocido.

como puedo solucionar eso?

espero vuestra ayuda muchas gracias..

os dejo el archivo

sensor_de_temperatura_mio_funcionando.ino (2.33 KB)

lectura_eeprom.ino (937 Bytes)

Hola y bienvenido al foro.

Te invito a que leas las NORMAS para que aprendas a postear correctamente código, enlaces, imagenes, errores, etc.

En tu caso si el código no supera el tamaño máximo permitido debería poder leerse, por favor, edita el post correctamente.

Dicho esto, veo una cosa. Usas EEPROM.write(ultimograbado, val), siendo val una variable de tipo unsigned int que ocupa dos bytes. Write solo escribe un byte. Igualmente al leer, usas read que solo lee un byte. Por lo tanto los valores no son los esperados. La solución es modificar el programa para que guardes dos bytes y luego leas dos bytes.

En el otro ejemplo (el de lectura_eeprom), hay utilizas EEPROM.get. Al contrario que write/read, get observa el tipo de variable donde quieres guardar el dato (eso incluye float, struct etc) y lee el contenido del tipo de dato.

Mi recomendación es que uses read/update tratando de forma correcta el tamaño de las variables. Recomiendo update que solo escribirá el valor si lo que hay es diferente a lo que quieres escribir, alargando la vida de la eeprom. La otra opción es usar put/get pero teniendo en cuenta que has de controlar muy bien la dirección de la memoria, debido al tamaño del dato.

Muchas gracias Victorjam y perdirte disculpas por la forma de poner el post en cuanto tenga un ratillo lo edito.

soy nuevo en esto de la programacion y me pierdo un poco

hablamos en estos dias,

un saludo