Paso 3: observaciones
Este bosquejo muestra el uso de nivelación de desgaste EEPROM, guardar una selección de valor pequeño entero en la EEPROM, y establecer una variable es capaz de span se restablece y power ups.
Presiona el botón conectado al pin 12 realiza una selección de menú, utilizada para decidir el comportamiento deseado de otras funciones o características en el bosquejo. El valor seleccionado se puede utilizar para encender un LED apropiado o mostrar texto indicando la selección realizada. Entonces, el resto del bosquejo puede hacer lo que pide que la selección.
La selección se almacena en la EEPROM utilizando un algoritmo de nivelación de desgaste por lo que no pondrá un montón de desgaste en cualquier sola poco. Cada vez que se realiza un cambio de selección el botón, se cambia sólo un bit de la EEPROM. 1.6 millón pulsar un botón se puede grabar en 4 bytes de memoria EEPROM para almacenar el estado de selección ante el clasificado 100.000 escribe para cualquier uno célula se excede.
Puesto que el algoritmo para almacenar el valor actual de la selección mantiene claro pedacitos hasta que la selección actual está representada correctamente, claro generalmente sólo un poco, no importa si la EEPROM se inicializó a algún valor en particular. Automáticamente ajustar y volver a inicializar los bytes EEPROM como sea necesario.
Este esquema utiliza EEPROMex.h biblioteca para EEPROM de lectura/actualización. EEPROM.setMaxAllowedWrites es una característica de EEPROMex.h que es útil durante el desarrollo y depuración, para evitar que accidentalmente codificación de una secuencia de fugitivos de las escrituras y usar su memoria EEPROM Arduino dentro de un par de minutos. Para uso de producción tienes que desactivar el límite. Consulte la documentación de EEPROMex.h para más detalles. El link para recibir EEPROMex.h de biblioteca es:
http://Playground.Arduino.CC/Code/EEPROMex
Y este artículo describe cómo instalar las bibliotecas:
https://www.Arduino.CC/en/Guide/Libraries
También estoy mostrando en este bosquejo de la demostración cómo hacer varias cosas en el bucle sin bloqueo y sin demoras. Hay numerosos artículos en la web y en el foro de arduino.cc para hacer varias cosas a la vez y el bucle sin demoras.
Cualquier ATmega328P o ATmega32U4 basado en Arduino, como Uno, Mini Pro, Leonardo, Micro Pro, etc., debe ser capaces de utilizar el dibujo y guardar en la EEPROM incorporada. Para el Micro Pro, que no tiene pines 11, 12 y 13 sacó a los pines del cabezal, ajuste el bosquejo para usar otros pines. PIN 17 en el Micro Pro es la RXLED y puede ser utilizado como un LED incorporado, sustituyendo a pin 13. El RXLED en el Micro Pro es en cuando el pin de salida baja, mientras que el pin 13 condujo en la ONU cuando el pin de salida alta. Por lo tanto, para poder ver el brillo del LED dim en el Micro Pro necesita mover de un tirón el ancho de pulso para que el pin es alta para una duración más larga de lo que es bajo. Para hacer usted puede cambiar la lectura del pin 17, en 2 lugares en el bosquejo de
if (digitalRead(17))
Para
if (!digitalRead(17))
Lectura adicional: