Editando
Insoladora
(sección)
Ir a la navegación
Ir a la búsqueda
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
=== Bloque 06 - Funciones === *imprimirTiempo() **Muestra el tiempo por pantalla **Si solo hay unidades de segundos o minutos inserta un 0, sino escribe directamente lo que hay en el struct cuenta *limpiaLCD() **Función que uso para limpiar el lcd al pasar del modo temporizador al modo menu **Tambien quita el cursor *configuraTiempo() **Esta función es la encargada de modificar el tiempo cuando utilizamos los botones UP/DOWN y /LEFT/RIGHT **Consta de 4 ifs que son los encargados de controlar que boton se ha pulsado **El comportamiento lógico se divide en dos bloques ***2 ifs que controlan LEFT/RIGHT, que son los que desplazan el cursor entre los segundos y minutos ****Se tiene en cuenta que la posicion del cursor solo pueda "navegar" por los segundos ****Las posiciones son de la casilla 9 (unidades de segundo) a la casila 5 (decenas de minutos). Se saltan los ":" que hay entre segundos y minutos ***2 ifs que controlan UP/DOWN, que son los que aumentan el numero de segundos y minutos ****Se controla que los minutos ni los segundos pasen de 59 ****Se utilizan ifs para saber si estamos en unidades o decenas y en segundos o minutos (es decir se utilizan para saber donde esta el cursor). Dependiendo de donde esta el cursor de aumenta el numero de minutos o segundos de unidad en unidad o de 10 en 10 ****Al acabar de modificar el tiempo se llama a la funcion imprimirTiempo() para actualizar el valor por pantalla *resetTiempo() **Encargada de poner el tiempo a 0 **Tambien pone el cursor en la posicion inicial, que es la de unidades de segundo *cuentaAtras() **Encargada de hacer la cuenta atras cuando se presiona el boton start **Utiliza la funcion millis() de arduino como "reloj" y compara el valor del temporizador que hemos puesto con el valor de millis() **Actualiza el valor del contador en cada cambio de decimas <br> *activaReles() **Activa los reles que encienden la cara superior, inferior o ambas a la vez. **Utiliza la funcion EEPROM.gets() para leer de memoria que cara ha de encenderse **Mediante un switch enciende un rele u otro *desactivaReles() **Desactiva los dos reles sin importar cual estaba activo <br> *funciones menu **Las explico en la sección [[Insoladora#Menu|Menu]] porque utilizaré gráficos para que sea más entendible <br> *guardaMemoria() **Se ocupa de guardar el tiempo que introducimos en la Memoria 1, o la Memoria 2 o la Memoria 3 **Lo primero que hace es convertir los segundos y minutos que son un struct a un int (es la variable que creamos <i>segundosTotales</i>) **Mediante la funcion EEPROM.put() guardamos en la memoria el valor del tiempo ***El primer argumento de la función es la posicion de la memoria eeprom donde se guardará el dato. Vemos que este primer argumento es <i>posMenu*16</i> ***Las tres memorias (Memoria 1, Memoria 2 y Memoria 3) se guardan consecutivamente por eso utilizamos el valor de la variable posMenu (el cual nos indica en que Memoria queremos guardar el dato) y lo multiplicamos por el tamaño que ocupa la variable segundosTotales. Sabiendo que es un int ocupa 16bits ***El segundo argumento es la variable a guardar, <i>segundosTotales</i> *cargaMemoria() **Funciona igual que guardaMemoria() pero haciendo el trabajo inverso **Leemos de la eeprom con la funcion EEPROM.get() ***El primer argumento es la memoria que queremos cargar (Memoria 1, 2 o 3) ***El segundo argumento es es una variable que creo para guardar esa informacion leida de la eeprom **Luego divido los <i>segundosTotales</i> en segundos y minutos y lo almaceno en el struct cuenta *caraGuardar() **Guardamos la opción escogida en la memoria eeprom con la funcion EEPROM.put() ***Como hemos dicho antes la información guardada esta consecutivamente, por lo tanto teniendo en cuenta que hay tres Memorias del tiempo (Memoria 1, 2 y 3) y que cada Memoria es un int de 16 bits (2 bytes), en la casilla que tenemos que guardar la opción escogida sera 3*16 (o 3*2*8) ***El segundo parametro de la función es la opción que hemos escogido (Inferior, Doble Cara o Superior). Esta información la tiene la variable <i>posMenu</i>. <br>
Resumen:
Ten en cuenta que todas las contribuciones a Proyectos se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Proyectos:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Menú de navegación
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Espacios de nombres
Página
Discusión
español
Vistas
Leer
Editar
Ver historial
Más
Buscar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Páginas especiales
Herramientas
Lo que enlaza aquí
Cambios relacionados
Información de la página