Está en la página 1de 3

1 /*

2
3 Actividad Nº4 : Administración de tiempo - Directivas de Preprocesador - Librerias
4
5 Obredor Deyurka Laureano
6
7 6to "B"
8
9 Fecha de Inicio 01/06 : Creacion de archivos cpp y h
10 Fecha de Modificacion 02/06 : Avances de administracion de tiempo
11 Fecha de Modificacion 08/06 : Desarrollo void loop
12 Fecha de Modificacion 09/06 : Correciones y comentarios
13
14
15 El ejercicio que se llevara acabo, se basa en la Evaluacion tomada recientemente. Donde se aplicaran
16 nuevos conceptos apredidos.
17
18
19 */
20
21 //importo la clase contador
22
23 #include "Contador.h"
24
25 //definicion de pines
26
27 #define puls1 2
28 #define puls2 3
29 #define puls3 4
30 #define puls4 5
31 #define LED1 6
32 #define LED2 7
33 #define LED3 8
34
35
36 //Definicion de etiquetas con tiempos fijos
37
38 #define tiempo_festejo1 300
39 #define tiempo_festejo2 400
40 #define tiempo_calculo 1000
41
42 //Instancias de objetos con parametros
43
44 Contador faltas(0,100,0,0);
45 Contador dobles(0,100,0,0);
46 Contador triples(0,100,0,0);
47 Contador C1(0,6,0,0);
48
49 //Declaracion de variables
50
51 int calc;
52 int C;
53 unsigned long tiempo1;
54 unsigned long tiempo2;
55 boolean flag;
56 boolean festejo;
57
58 void setup () {
59 Serial.begin(9600); //Inicializacio de comuicacio serial
60 pinMode(LED1, OUTPUT); // Configuracion de pines
61 pinMode(LED2, OUTPUT);
62 pinMode(LED3, OUTPUT);
63 pinMode(puls1, INPUT_PULLUP);
64 pinMode(puls2, INPUT);
65 pinMode(puls3, INPUT);
66 pinMode(puls4, INPUT);
67 tiempo1 = 0;
68 tiempo2 = 0;
69 flag=true;
70 festejo = false;
71 C=0;
72 calc=0;
73 }
74
75 void loop() {
76
77 if(digitalRead(puls1) == LOW && flag){ //Incremento Faltas
78 faltas.Incrementar(1);
79 flag=false;
80 }
81 if(digitalRead(puls2) == HIGH && flag){ //Incremento Dobles
82 dobles.Incrementar(1);
83 flag=false;
84 }
85 if(digitalRead(puls3) == LOW && flag){ //Incremento Triples
86 triples.Incrementar(1);
87 flag=false;
88 festejo =true;
89 }
90 if(digitalRead(puls4)==HIGH && flag){ //Imprimo valores de triple, dobles y faltas
91 flag=false;
92 Imprimir();
93 }
94 // Si se anota un triple empieza secuecia de festejo
95 if(festejo == true){
96
97 if(millis() >= tiempo1+tiempo_festejo1){
98 tiempo1=millis();
99 if(C1.GetCuenta()<=3){
100 C1.Incrementar(1);
101 }
102 }
103
104 if(millis() >= tiempo1+tiempo_festejo2){
105 tiempo1=millis();
106 if(C1.GetCuenta()>3){
107 C1.Incrementar(1);
108 }
109 }
110
111 C=C1.GetCuenta();
112 switch (C) {
113 case 1:
114 digitalWrite(LED1, HIGH);
115 break;
116 case 2:
117 digitalWrite(LED2, HIGH);
118 break;
119 case 3:
120 digitalWrite(LED3, HIGH);
121 break;
122 case 4:
123 digitalWrite(LED3, LOW);
124 break;
125 case 5:
126 digitalWrite(LED2, LOW);
127 break;
128 case 6:
129 digitalWrite(LED1, LOW);
130 festejo=false;
131 C1.Reset();
132 break;
133 }
134 }
135
136 if(millis() >= tiempo2+tiempo_calculo){
137 tiempo2=millis();
138 calc=Calculo();
139 Serial.println(calc);
140 }
141
142 if((digitalRead(puls1) ==HIGH) && (digitalRead(puls2) == LOW) && (digitalRead(puls3) == HIGH) && (
digitalRead(puls4) == LOW)){
143 flag= true;
144 }
145 }
146
147
148 //Calculo de putaje total
149
150 int Calculo(){
151 int puntaje = faltas.GetCuenta()+(2*dobles.GetCuenta())+(3*triples.GetCuenta());
152 return puntaje;
153 }
154
155 //Muestra los DOBLES, TRIPLE Y FALTAS
156
157 void Imprimir(){
158
159 Serial.print("DOBLES ");
160 Serial.println(dobles.GetCuenta());
161 Serial.print("TRIPLES ");
162 Serial.println(triples.GetCuenta());
163 Serial.print("FALTAS ");
164 Serial.println(faltas.GetCuenta());
165
166 }
167
168

También podría gustarte