4
4
// tecnologia
5
5
// etc
6
6
7
+ // incluir biblioteca para pantalla de Arduino Uno R4 Wifi
7
8
#include " Arduino_LED_Matrix.h"
8
- #include " gallery.h"
9
- #include " PushButton.h"
9
+
10
+ // TODO que es esto
11
+ // #include "gallery.h"
12
+
13
+ // TODO de donde salio esta biblioteca?
14
+ // no esta completa en el codigo, no la usaria
15
+ // es suficiente con usar los metodos de debounce button
16
+ // que estan explicados en la referencia de arduino
17
+ // https://docs.arduino.cc/built-in-examples/digital/Debounce/
18
+ // #include "PushButton.h"
19
+
20
+ // TODO incluir todas las animaciones aqui?
10
21
#include " Nivel4.h"
11
22
12
23
// codigo de referencia del repositorio de la Sofia Etchepare
13
24
// TODO agregar enlace a ese repositorio
14
25
// lenguaje de c++ para detectar posibles errores en el código y valores
15
26
// por lo que lo usamos ahora para definir los estados de nuestro dispopsitivo
16
27
enum State {
17
-
28
+
18
29
// estado de reposo
19
30
REPOSO,
20
31
@@ -25,11 +36,13 @@ enum State {
25
36
// segundo nivel introductorio
26
37
// para aprender como hacer una linea
27
38
NIVEL_LINEA,
28
-
29
39
30
- // en los niveles numerados el usuario debe clickear o mantener presionado el boton
40
+
41
+ // en los niveles numerados
42
+ // el usuario debe clickear o mantener presionado el boton
31
43
// para escribir las letras en morse
32
-
44
+ // y ojo en computacion contamos desde 0, no desde 1
45
+
33
46
// letra M
34
47
NIVEL_1,
35
48
// letra O
@@ -46,26 +59,33 @@ enum State {
46
59
NIVEL_FINAL
47
60
};
48
61
49
-
50
- // el pin es donde se conecta el botón al arduino, en este casi en la ranura número 2
62
+ // boton conectado al pin 2 para lectura
51
63
const int BOTON_ENTRADA = 2 ;
52
64
65
+ // estado inicial en reposo
66
+ State currentState = REPOSO;
53
67
54
- // estado actual en espera
55
- State currentState = STANDBY;
56
-
57
-
58
- // comandos utilizados de edgar pon para usar botones en arduino con if-else https://edgarpons.com/botones-en-arduino-y-comandos-if-else/
68
+ // crear objeto matrix para controlar la pantalla
69
+ ArduinoLEDMatrix matrix;
59
70
71
+ // comandos utilizados de edgar pon
72
+ // para usar botones en arduino con if-else
73
+ // https://edgarpons.com/botones-en-arduino-y-comandos-if-else/
60
74
61
75
void setup () {
62
76
// configurar las entradas
63
77
pinMode (BOTON_ENTRADA, INPUT_PULLUP);
78
+
79
+ // inicializar la pantalla
80
+ matrix.begin ();
81
+
82
+ // abrir comunicacion serial
64
83
Serial.begin (9600 );
65
84
}
66
- // aqui se ponen todos los comandos que el ardino debe de ejecutar haciandolos que esten en continua funcionamiento, que pase mas de una vez
85
+
67
86
void loop () {
68
- // sirve para leer un valor (o poner en un estado) un pin digital.
87
+
88
+
69
89
switch (currentState) {
70
90
// en este estado esperamos la accion del usuario
71
91
// 'presionar cualquie boton para que empiece el juego' y asi cambie a un estado activo
@@ -80,23 +100,72 @@ void loop() {
80
100
}
81
101
break ;
82
102
}
83
- case NIVEL4:
103
+
104
+ case NIVEL_PUNTO:
84
105
{
85
- Serial.println (" En estado NIVEL4" );
106
+ Serial.println (" NIVEL_PUNTO" );
107
+ break ;
108
+ }
109
+
110
+ case NIVEL_LINEA:
111
+ {
112
+ Serial.println (" NIVEL_LINEA" );
113
+ break ;
114
+ }
115
+
116
+ case NIVEL_1:
117
+ {
118
+ Serial.println (" NIVEL_1" );
119
+ break ;
120
+ }
121
+
122
+ case NIVEL_2:
123
+ {
124
+ Serial.println (" NIVEL_2" );
125
+ break ;
126
+ }
127
+
128
+ case NIVEL_3:
129
+ {
130
+ Serial.println (" NIVEL_3" );
131
+ break ;
132
+ }
133
+
134
+ case NIVEL_4:
135
+ {
136
+ Serial.println (" NIVEL_4" );
137
+
138
+ // TODO no entiendo esto
86
139
// if (animacionA) aparece en la pantalla{
87
- // se presiona lecturaA
88
- // }
89
- BOTON_ENTRADA. update ( 2 );
140
+ // se presiona lecturaA
141
+ // }
142
+ // }else{} (quizas) si no lo hace en el tiempo establecido pierde vida
90
143
91
- if bool (BOTON_ENTRADA.isClicked (3 );)
144
+ // TODO esta linea creo que es por la biblioteca pushbutton
145
+ // que quieren usar, pero recomiendo hacer con debounce no mas
146
+ // BOTON_ENTRADA.update(2);
147
+
148
+ // TODO lo mismo con esto
149
+ // if bool(BOTON_ENTRADA.isClicked(3);)
150
+
151
+ // TODO antes de inicializar la matrix, tienes que declararla
152
+ // ya lo hice arriba antes de setup()
153
+ // y luego la inicialize en setup()
154
+ matrix.loadFrame (Nivel4);
92
155
93
- matrix.loadFrame (Nivel4);
94
- };
95
- // if (animacionA) aparece en la pantalla{
96
- // se presiona lecturaA
97
- // }
98
- // }else{} (quizas) si no lo hace en el tiempo establecido pierde vida
99
- break ;
100
- }
101
- };
156
+ break ;
157
+ }
158
+
159
+ case NIVEL_5:
160
+ {
161
+ Serial.println (" NIVEL_5" );
162
+ break ;
163
+ }
102
164
165
+ case NIVEL_FINAL:
166
+ {
167
+ Serial.println (" NIVEL_FINAL" );
168
+ break ;
169
+ }
170
+ }
171
+ }
0 commit comments