La hoja de datos de ATmega328, en la sección "8.4 Memoria de datos EEPROM" dice
La EEPROM tiene una duración de al menos 100.000 ciclos de escritura / borrado
Por lo tanto, una estrategia razonable debería estar bien.
- Espere por lo menos 30 segundos después del último cambio, antes considerando una escritura. Cuando hago futz con el volumen, es para silenciar la publicidad. También a menudo aumento el volumen para escuchar algo específico, tal vez una pista favorita, y luego reestablezco el volumen muy cerca de donde empecé. Si no ha implementado un silencio, podría valer la pena hacerlo. Ese es un caso común para mí y podría ser un caso común para usted. Es posible que reduzca significativamente la cantidad de actualizaciones de volumen ignorando el silencio y dejando el volumen guardado sin cambios.
- No escriba si el valor es solo un par de% diferente. Es poco probable que sus oídos noten la diferencia.
Si el número de escrituras / días sigue siendo un problema, detecte el "apagado" y cambie la estrategia para ahorrar solo cuando se elimine la alimentación.
El chip necesitará varios milisegundos para asegurarse de que puede hacer la escritura EEPROM.
Los mejores datos que he encontrado sobre el tiempo de escritura de EEPROM son "Tabla 28-18, Retardo de espera típico antes de escribir la siguiente ubicación de Flash o EEPROM" dice que el retraso es "3.6ms".
Por lo tanto, la fuente de alimentación local de ATmega necesitará mantener un voltaje de operación por más tiempo para asegurar que la EEPROM esté correctamente escrita. Eso podría ser un poco incómodo de hacer en un Arduino. IIRC, la capacitancia de la fuente de alimentación dentro de la fuente de alimentación es de aproximadamente 100uF, lo cual es marginal, y probablemente muy poco para estar seguro de la escritura, especialmente si se están conduciendo cargas significativas al mismo tiempo.