Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Figura 2. LCD
● MÓDULO DE INTERRUPCIONES: Una
interrupción es una suspensión temporal de la
ejecución de un proceso, para pasar a ejecutar
una subrutina de servicio de interrupción, la
cual, por lo general, no forma parte del Figura 3. Interruptor
programa. Una vez finalizada dicha subrutina, se ● TECLADO: En informática, un teclado es un
reanuda la ejecución del programa. Las dispositivo o periférico de entrada, en parte
interrupciones HW son generadas por los inspirado en el teclado de las máquinas de
dispositivos periféricos habilitando una señal del escribir, que utiliza un sistema de botones o
CPU (llamada IRQ del inglés “interrupt teclas, para que actúen como palancas
request”) para solicitar atención del mecánicas o interruptores electrónicos que
mismo.Todos los dispositivos que deseen envían toda la información a la computadora o
comunicarse con el procesador por medio de al teléfono móvil.[4]
interrupciones deben tener asignada una línea
única capaz de avisar al CPU cuando le requiere
para realizar una operación. Esta línea se
parámetros correspondientes para cada
temporizador, escogidos previamente por el
usuario.
● Finalmente, cuando ya finalizaron los cuatro
temporizadores se sale del While anterior y se
manda una señal de salida para la alarma por
medio de la función tone(). Dura 1 segundo
(delay(1000)) y se apaga.
● Se muestra el mensaje “Terminaron todos”.
●
● Figura 4. Teclado V. ANÁLISIS
A partir de la funciones propias de la biblioteca
IV. PROCEDIMIENTO Timerone se pueden generar interrupciones por medio de
Asignación de pines: software, que permiten poner pautas en la codificación,
● Se usan dos pines analogicos y 4 digitales para estas funciones son muy útiles si se encuentran
el LCD. vinculadas con algún dispositivo que permita la
● Se usa un pin analogico de salida para activar la codificación, que en nuestro caso es el teclado, el cual
alarma. nos permite remitirnos a una función en específica
● Se usan 8 pines digitales para las filas y oprimiendo alguna tecla previamente codificada para un
columnas del Keypad. fin. De esta forma se simplifican procesos pues es el fin
Keypad: de la codificación, Además podremos Observarlo por
● Se construye la configuración del Keypad por medio de un dispositivo LCD que también nos permite
medio de la matriz 4x4. imprimir lo que se desee en la posición que se quiera,
● Se asignan 10 posibles temporizaciones por permitiendo mostrar simultáneamente los resultados de
medio de los números del 0 al 9 en el Keypad. varias funciones.
Elección de temporización:
● El usuario oprime la tecla correspondiente al VI. CONCLUSIONES
tiempo de inicio que desea (en el Keypad). ● Los teclados son utilizados como una
● Por medio de un switch case se asigna el valor herramienta de codificación.
de inicio de temporización (10 opciones) para ● Los LCD son dispositivos que permiten
cada uno de los cuatro temporizadores. imprimir resultados en la posición deseada.
● Se repite el anterior procedimiento cuatro veces. ● Los LCD permiten visualizar varios resultados
● Se asigna una variable que registre los cuatro de diferentes funciones simultáneamente.
temporizadores, esto va dentro del switch case ● Los temporizadores controlan el tiempo en el
sumando de a uno (z++). que se ejecuta una función.
Contador:
● Se hace uso de la función millis() para comparar VII. REFERENCIAS
el tiempo transcurrido desde que inició el [1]https://www.ingmecafenix.com/electricidad-i
programa hasta que se terminaron de seleccionar ndustrial/temporizador-tipos-temporizador/
los tiempos de los 4 temporizadores. [2]https://www.definicionabc.com/tecnologia/pa
● Se asignan los segundos transcurridos a partir de ntalla-lcd.php
la comparación anterior por medio de la función [3]https://aprenderaprogramar.es/index.php?opti
millis(). on=com_content&view=article&id=451:definici
● Se convierten los minutos en segundos. on-y-utilidad-de-los-interruptores-control-de-flu
● Por medio de condicionales repito el proceso jo-variables-booleanas-true-false-cu00162a&cat
anterior mostrando en el LCD “ceros” si aún no id=28&Itemid=59
se han desbordado los segundos, o si algún [4]https://definicion.de/teclado/
contador terminó su tiempo.
Void loop:
● Por medio del LCD se da el mensaje “Escoja los
tiempos deseados”.
● Por medio de un While se mantiene y se llama
cuatro veces la función contador pero con los
CÓDIGO ARDUINO:
#include <LiquidCrystal.h>
#include "Keypad.h"
String r[4];
int t;
boolean contar;
int tiempo[4];
int segundos;
char hexaKeys[filas][columnas] = {
{'7','8','9','/'},
{'4','5','6','*'},
{'1','2','3','-'},
{'C','0','=','+'}
};
byte rowPins[filas] = { 6, 7, 8, 9 };
byte colPins[columnas] = { 10, 11, 12, 13 };
byte happy[8]={
B00000,
B00000,
B10001,
B00000,
B10001,
B01110,
B00000,
B00000
};
void setup()
{
lcd.begin(16,2);
pinMode(A0, OUTPUT);
pinMode(A1, OUTPUT);
pinMode(A2, OUTPUT);
}
void loop() {
lcd.createChar(0, happy);
lcd.setCursor(2, 0);
lcd.print("TEMPORIZADOR");
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("ESCOJA LOS");
lcd.setCursor(0, 1);
lcd.print("TIEMPOS DESEADOS");
eleccion();
lcd.clear();
t=millis();
contar=true;
for(int i=0; i<=3; i++){
tiempo[i]=0;
}
while(contar==true){
contador(t,0,0,0);
contador(t,1,11,0);
contador(t,2,0,1);
contador(t,3,11,1);
lcd.setCursor(6,0);
lcd.print("GOO!");
lcd.setCursor(6,1);
lcd.write(byte(0));
lcd.setCursor(9,1);
lcd.write(byte(0));
lcd.clear();
lcd.setCursor(3,0);
lcd.print("TERMINARON");
lcd.setCursor(6,1);
lcd.print("TODOS");
delay(1000);
lcd.clear();
}
void eleccion(){
int z = 0;
while(1){
case '1':
r[z]= 30;
z++;
break;
case '2':
r[z]= 60;
z++;
break;
case '3':
r[z]=120;
z++;
break;
case '4':
r[z]=300;
z++;
break;
case '5':
r[z]=600;
z++;
break;
case '6':
r[z]=900;
z++;
break;
case '7':
r[z]=1200;
z++;
break;
case '8':
r[z]=1800;
z++;
break;
case '9':
r[z]=2700;
z++;
break;
case '0':
r[z]=3600;
z++;
break;
if (z==4){
break;
}
}
}
if(tiempo[z]==0){
tone(A4, 1000);
delay(150);
noTone(A4);
}
lcd.setCursor(col,row);
lcd.print("00:00");
tiempo[z]=1;
}else{
lcd.setCursor(col,row);
int m =((comparar-segundos)/60);
int s= (comparar-m*60-segundos);
if(m<10){ lcd.print("0");}
lcd.print(m);
lcd.print(":");
if(s<10){ lcd.print("0");}
lcd.print(s);
}