Saltar navegación

Activa JavaScript para disfrutar de los vídeos de la Mediateca.

Luces con array - Contenido educativo

Ajuste de pantalla

El ajuste de pantalla se aprecia al ver el vídeo en pantalla completa. Elige la presentación que más te guste:

Subido el 6 de febrero de 2023 por Juan Luis C.

67 visualizaciones

Descargar la transcripción

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:
  • 1
  • 2
  • 3
  • 4
  • 5
Eres el primero. Inicia sesión para valorar el vídeo.
Idioma/s:
es
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

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid