Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Luces con array - Contenido educativo
Ajuste de pantallaEl ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:
Bueno, ya tenemos nuestro programita con el juego de luces, pero ahora yo voy a plantear una pregunta.
00:00:00
¿Qué pasa si en lugar de tener 5 luces quiero tener otras 5 más?
00:00:06
Pues bueno, montamos el circuito, cambiamos el código, añadimos líneas de código y esto funcionaría sin mayor problema.
00:00:11
Y si en lugar de añadir 5 añado 500, se puede hacer, pero jolín, el tamaño de nuestro programa sería muy grande y costaría bastante tiempo,
00:00:19
pero podréis hacer, en principio, si la placa mete 500 pines, pues se podría hacer, ¿no?
00:00:28
Bueno, fijaros, los ordenadores son máquinas bastante torpes, bastante tontas.
00:00:34
De hecho, para este sencillo juego de luces le he tenido que decir de forma muy detallada los pasos que tiene que seguir.
00:00:38
Pero tienen una gran ventaja, que son muy rápidos y se prestan muy bien a hacer operaciones repetitivas.
00:00:45
En esta práctica vamos a ir un paso más allá y vamos a cambiar el programa que tenemos
00:00:50
para conseguir que, cambiando muy pocos elementos de nuestro código, podamos añadir o quitar ledes y que siga funcionando igual.
00:00:55
Para ello vamos a utilizar dos elementos del lenguaje de programación C, como son los arrays y los bucles.
00:01:02
Empezamos por los arrays. Un array no es nada más que una lista de variables a las que vamos a acceder mediante un índice.
00:01:10
Vamos a verlo con un ejemplo. En nuestro caso, nos vamos a crear primero, antes de nada, una constante de tipo entero,
00:01:17
indicando el número de luces, aunque no es obligatorio, las constantes se suelen poner en mayúsculas
00:01:23
y en este caso como tenemos 5 LEDs, pues vamos a poner el valor de 5
00:01:29
y a continuación nos vamos a crear un array, en este caso va a ser todos los elementos de array de tipo entero
00:01:33
le vamos a llamar LEDs y para decir que es un array utilizaremos los corchetes
00:01:41
dentro de los corchetes diremos el número de elementos del array, que va a ser luces
00:01:46
Esto lo vamos a hacer así porque cuando queramos añadir o quitar luces
00:01:51
Pues directamente lo que haremos será cambiar este valor
00:01:56
Y todo el programa se adapta para funcionar de manera adecuada
00:01:59
Bueno, si desconocéis cómo funcionan los arrays o cualquier otro elemento del lenguaje de programación
00:02:03
Pues ya sabéis que dentro del aula virtual tenéis un enlace a la referencia de Arduino
00:02:08
Que os trae una página donde podéis ver la información que deseáis
00:02:12
Así por ejemplo, si hacéis control F y escribís Array, pues os va a llevar aquí donde están los Arrays y si pincháis dentro de Array, os van a ir explicando detalladamente cómo son los Arrays con varios ejemplos.
00:02:19
Y esto lo podemos hacer con cualquier otro elemento del lenguaje de programación.
00:02:30
Bueno, volvamos al circuito. Lo primero que vamos a hacer va a ser inicializar los valores del Array.
00:02:33
Una manera de inicializar los valores sería diciendo que el Array LED es el elemento 0, que va a ser el primero.
00:02:38
Los Arrays siempre empiezan por el elemento 0. Va a ser el valor 13. El siguiente elemento del Array sería el elemento 1, pues sería el pin 12.
00:02:45
Y así sucesivamente con todos. Lo que pasa es que vemos que con esto no conseguimos ninguna mejora. Cada vez que tenga un Array, pues te voy a poner una línea nueva.
00:02:56
En lugar de hacerlo así, vamos a utilizar un bucle. Un bucle que va a ir recorriendo todos los elementos del Array.
00:03:04
Para referenciar a cada uno de los elementos del Array, los ingleses suelen emplear la palabra Iterator.
00:03:09
Nosotros no vamos a crear una variable con ese nombre, pero no deja de ser una variable, o sea que podríamos utilizar cualquier nombre que nos diera la gana.
00:03:14
Vamos a empezar a inicializarle el valor 0 y ahora dentro de un bucle while, vamos a decir que mientras que este iterador sea menor que el número de luces,
00:03:23
acordaros que esta es una constante que nos creamos aquí, diciendo el número de luces que teníamos.
00:03:33
Pues mientras que eso sea cierto, pues se va a estar ejecutando lo que hay dentro del array
00:03:37
¿Y qué vamos a poner dentro del array?
00:03:43
Pues vamos a inicializar los valores con los pines adecuados
00:03:45
Así que leds, aquí le pondremos iterator, va a ser igual a
00:03:47
Fijaros, como el primer elemento 0 sería 13 y luego vamos decrementando
00:03:52
Pues diríamos 13 menos el valor del iterador
00:03:58
y no se nos puede olvidar nunca incrementar el valor del iterador
00:04:04
porque si no entraríamos en un bucle infinito donde iterador siempre vale 0
00:04:09
donde siempre se cumpliría esta condición
00:04:12
y todo el rato estamos diciendo que el primer elemento de la array vale 13
00:04:15
entonces tenemos que acordarnos de incrementar el valor de esta variable
00:04:19
forma de hacer esto, varias
00:04:26
una de ellas es decir que esta variable iterator vale lo que valga en este momento
00:04:28
más 1. Bueno, ya sabemos
00:04:32
que primero se va a ejecutar esto de aquí y por último
00:04:37
el operador de asignación. Una forma abreviada de poner esto
00:04:41
es utilizar el operador más igual, de tal manera
00:04:45
que esto es exactamente lo mismo
00:04:49
que lo anterior. A la variable iterator se le suma el valor
00:04:53
que tengo a la derecha con el operador más igual. Y como suele ser habitual
00:04:57
añadir uno, pues hay otro operador más
00:05:01
que es el operador más más
00:05:03
que directamente incrementa en uno
00:05:04
el valor de la variable
00:05:07
así, perfecto
00:05:08
bueno, esta es una de las posibilidades
00:05:11
que por cierto, si venís a la referencia de Arduino
00:05:13
control F y ponéis while
00:05:15
vais a ver las distintas
00:05:16
estructuras que hay, aquí estaría la de while
00:05:19
también hay un bucle do while
00:05:21
vale, bueno
00:05:23
todos los elementos del lenguaje
00:05:25
lo tenéis en la referencia
00:05:27
el bucle while se suele emplear mucho
00:05:28
Pero fijaros una cosa que tiene. Al principio me creo siempre una variable y luego la tengo que incrementar. Y esto se me puede olvidar.
00:05:30
Para recorrer los arrays hay otro bucle, el bucle for, que funciona muy parecido a este, pero fijaros. Dentro de los paréntesis tiene tres secciones.
00:05:39
La primera sección es algo que se va a ejecutar solo una vez al principio y siempre se va a ejecutar. Sería el equivalente de crearnos la variable fuera.
00:05:49
En medio, fijaros que separa un punto y coma, se pone la condición que se tiene que cumplir para que se realice el bucle, para que se haga lo que hay dentro.
00:05:57
Y por último, separado por punto y coma, tendríamos lo que se ejecuta al final del todo, que se suele emplear para incrementar el valor de esa variable iterator.
00:06:09
bueno, esto es tan habitual
00:06:25
el realizar eso
00:06:28
que claro, la gente ha empezado a simplificar
00:06:30
iterator es muy largo, pues vamos a llamarle it
00:06:32
en lugar de iterator
00:06:34
it a esta variable
00:06:36
habría que cambiarlo
00:06:38
en todos los lados donde aparece iterator
00:06:40
pero es que es tan habitual
00:06:42
que dijeron, mira, le vamos a llamar
00:06:44
i, y vais a ver
00:06:46
en muchos bucles de este tipo
00:06:48
como aparece
00:06:49
el nombre de la variable
00:06:52
y para recorrer los arrays, esto suele ser lo más habitual
00:06:54
bueno, una vez que hemos inicializado los valores
00:06:57
pues tendríamos que hacer lo mismo para las funciones pinMode
00:07:01
lo podemos hacer en otro bucle a continuación
00:07:04
o bueno, podemos aprovechar este mismo bucle
00:07:07
y primero inicializamos el valor del array
00:07:10
y a continuación decimos que cada uno de estos elementos del array
00:07:15
lo ponemos en modo salida
00:07:20
Fijaros como ya empezamos a ganar líneas de código utilizando bucles
00:07:22
Bueno, pues nada, ya tengo este bucle para esto
00:07:29
Vamos a aprovecharlo para otras cosas
00:07:33
Y vamos a hacerlo copiando esto de aquí
00:07:35
En la función loop, como realmente llamamos a otras funciones para hacer el trabajo
00:07:39
Pues no tenemos que cambiar nada
00:07:47
Vamos a empezar con la función ahora apagarTodos
00:07:49
Pues lo mismo, en lugar de ir uno a uno, utilizamos nuestro bucle, esto lo echamos a la derecha, en C no es obligatorio intentar adecuadamente el código, pero es muy recomendable.
00:07:51
Bueno, y aquí, en lugar de ponerle 1, utilizaremos nuestro array y le pondremos el índice de nuestro iterator, y que no se nos puede olvidar nunca, cerrar la llave del bucle.
00:08:04
Y aquí vamos a hacer lo mismo, así que volvemos a pegarlo, lo echamos hacia la derecha, en lugar de poner LED1 ponemos LEDs, entre corchetes nuestra I, quitamos todo esto, bueno, y así con todos.
00:08:19
Por ejemplo, cuando lleguemos aquí, pues en nuestro bucle for siempre vamos a esperar al principio, luego vamos a escribir, pero en lugar de led1 vamos a escribir en leds de i y todo esto nos sobra.
00:08:37
aquí igual
00:08:54
bueno, esto ya es ir
00:08:58
función a función
00:09:01
cambiando el código
00:09:03
veis que el cambio es muy sutil
00:09:05
no es gran cosa
00:09:06
es poner el bucle y sustituir
00:09:08
la variable
00:09:11
por el array
00:09:13
bueno, y este como realmente
00:09:15
apaga todo, se enciende
00:09:17
aquí no habría que hacer nada
00:09:19
bueno, pues ya hemos adaptado el código
00:09:20
con arrays
00:09:22
y con bucles
00:09:26
vemos que funciona exactamente igual
00:09:27
y ahora por ejemplo, si yo dijera
00:09:29
no, es que no quiero que se enciendan las 5
00:09:31
quiero que se enciendan 4
00:09:34
pues cambio aquí el valor de 4
00:09:35
y vemos que funciona sobre 4
00:09:36
¿quiero poner otro más?
00:09:41
pues bueno, pongo otro LED
00:09:43
vengo al código
00:09:45
pongo aquí el valor de 6
00:09:54
ejecuto
00:09:56
y vemos que
00:09:59
no hemos cambiado prácticamente el código
00:10:02
y lo hemos adaptado para la nueva situación.
00:10:04
Bueno, pues en esta clase hemos aprendido dos cosas muy importantes del lenguaje de programación,
00:10:08
los arrays y los bucles.
00:10:12
Por último, como medida de higiene, podemos quitar este código que ya no necesitamos.
00:10:15
Bueno, ahora te toca a ti adaptar el código que has hecho para utilizar arrays y bucles.
00:10:21
¡Ánimo!
00:10:27
- Valoración:
- Eres el primero. Inicia sesión para valorar el vídeo.
- 1
- 2
- 3
- 4
- 5
- Idioma/s:
- Autor/es:
- Juan Luis Carrillo Arroyo
- Subido por:
- Juan Luis C.
- Licencia:
- Reconocimiento - No comercial
- Visualizaciones:
- 67
- Fecha:
- 6 de febrero de 2023 - 10:30
- Visibilidad:
- Público
- Centro:
- IES EL ALAMO
- Duración:
- 10′ 29″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 119.76 MBytes