Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Programa luces - 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:
Se codifica y prueba un algoritmo en C para el encendido creativo de las luces
Bueno, tenemos ya nuestro circuito diseñado al que le hemos puesto un nombre adecuado, hemos realizado ya el algoritmo con nuestro idioma, con nuestro lenguaje para entendernos nosotros y ahora lo que nos queda es traducir ese algoritmo a un lenguaje de programación que entienda el ordenador, en este caso la placa de Arduino.
00:00:00
Así que vamos a ir al código, vamos a seleccionar el código de texto y vamos a ir haciendo nuestro programa y aprendiendo cómo se utiliza el lenguaje de programación C.
00:00:22
voy a hacerlo un poquito más grande para que se vea mejor
00:00:39
ahí está
00:00:41
bueno, por defecto nos aparece
00:00:44
un código que es el de blink
00:00:47
el de parpadear
00:00:49
y bueno, nos puede servir de ayuda para empezar
00:00:50
sobre todo al principio que no tenemos
00:00:53
mucha idea de programar en este lenguaje
00:00:54
yo voy a coger este código
00:00:57
y lo vamos a ir transformando
00:00:59
poco a poco ayudándonos de nuestro algodín
00:01:01
bueno, como comentario
00:01:03
le vamos a poner programa
00:01:05
para juego de luces. Bueno, a continuación, como tenemos 5 LEDs, vamos a crearnos 5 variables de tipo entero, indicando el pin al que tenemos cada LED conectado.
00:01:07
Por ejemplo, empezamos con el primer LED. En el principio le tenemos que decir el tipo de dato de nuestra variable, va a ser IN de entero, el nombre de nuestra variable,
00:01:25
led 1 y a continuación vamos a aprovechar esta línea y le vamos a asignar un valor nuestro
00:01:35
primer led está enchufado al pin 13 con el segundo haríamos lo mismo y led 2 y el segundo sería el
00:01:43
pin 12 y así con todos los leds aquí los tenemos todos para no es difícil verdad bueno a continuación
00:01:53
tenemos que configurar los pines como salida entonces ayudándonos de esta función que tenemos
00:02:03
aquí lo único que tenemos que hacer es cambiar este valor a cada una de nuestras variables así
00:02:11
que le vamos a ir poniendo led 1 copiamos la función aquí ponemos un 2 y así hasta completar
00:02:19
los cinco LEDs. Bueno, hasta aquí no hemos utilizado el algoritmo, porque realmente en los algoritmos
00:02:31
normalmente se ponen aquellas cosas que son un poquito más complicadas. Ahora sí que vamos a necesitar
00:02:37
nuestro algoritmo. Como voy a utilizar funciones de escritura y lectura, en lugar de borrar todo lo que tengo
00:02:42
dentro del loop, que es lo que se va a estar ejecutando todo el rato en Arduino, vamos a comentarlo
00:02:49
con un comentario de bloque. El comentario de bloque empieza con una barra inclinada y un asterisco.
00:02:55
fijaros como cambia el color
00:03:00
y terminan con un asterisco y una barra
00:03:01
entonces todo lo que esté entre esos símbolos es un comentario
00:03:05
fijaros que no es que quiera dejar este comentario
00:03:09
sino que lo dejo así de momento
00:03:12
porque luego voy a utilizar parte del código
00:03:13
y ahora sí que tenemos que hacer uso de nuestro algoritmo
00:03:16
entonces nos venimos para acá y vemos
00:03:22
que tenemos una variable espera
00:03:24
que no la hemos creado, la vamos a crear ahora
00:03:27
y luego tenemos tres procesos, secuencia1, secuencia2 y secuencia3, nos venimos aquí y nos creamos nuestra variable de espera
00:03:29
que va a ser también de tipo entero, así que int espera y le vamos a asignar un valor de 200, esto va a ser un tiempo de espera en milisegundos
00:03:41
Vamos a poner aquí un comentario en línea. Tiempo de espera en mil segundos. Bueno, como ahora vamos a estar programando y no necesitamos el circuito, vamos a hacer esto más grande para verlo mejor. Así.
00:03:54
Bueno, a continuación tenemos tres llamadas a tres procesos, secuencia 1, secuencia 2 y secuencia 3, nosotros las vamos a dejar puestas aquí, secuencia 1 que va a necesitar un parámetro, espera, secuencia 2 que va a necesitar el mismo parámetro y así con todas.
00:04:10
Aquí las tenemos
00:04:34
Ahora bien, si yo ejecutara esto, me va a dar un error
00:04:36
Vamos a hacerlo
00:04:40
Y de hecho aquí abajo, ya nos vamos acostumbrando
00:04:42
Nos da una pista de cuál es el error
00:04:46
Nos dice que secuencia 1 no está declarada en este código
00:04:48
Realmente estas funciones no existen
00:04:54
No forman parte del conjunto de funciones que nos deja Arduino
00:04:56
De hecho, si nos fuéramos a la referencia de Arduino
00:05:00
veríamos que están todas las demás funciones, la función setup, la función loop, la función pinMode, por ejemplo aquí tenemos pinMode
00:05:03
pero no vamos a encontrar nunca la función secuencia1, esa es una función que nosotros nos vamos a crear
00:05:13
¿Cómo nos creamos las funciones? Pues fijaros, aquí realmente ya nos dan pistas de cómo se tiene que crear
00:05:22
Aquí por ejemplo estamos utilizando una función
00:05:28
Y aquí también
00:05:30
Pero sin embargo la función setup es una función que nos estamos creando
00:05:31
Igual que la función loop
00:05:35
Vamos a hacernos una a modo de ejemplo
00:05:37
Lo primero que tenemos que hacer cuando nos creamos una función
00:05:40
Es decir el tipo de dato que devuelven
00:05:43
Hay funciones que devuelven cosas y otras que no
00:05:46
Por ejemplo si yo hiciera una función de sumar
00:05:48
Pues admitiría dos parámetros
00:05:51
Primer sumando y segundo sumando
00:05:52
Y me devolvería el resultado
00:05:54
Por ejemplo un entero
00:05:55
Pero hay otras funciones, como es este caso, en el que no devuelven nada. Hacen cosas pero no devuelven ningún valor. Si no devuelven ningún valor se emplea la palabra void.
00:05:57
Void significa que esa función no va a devolver nada. Va a hacer cosas pero no va a devolver nada. Así que empezamos por void, a continuación el nombre de la función y entre paréntesis los parámetros que necesita.
00:06:07
En este caso vamos a necesitar un parámetro. A la hora de definir los parámetros se definen como si fueran variables, ¿vale? Por lo tanto hay que decir el tipo de dato, en este caso va a ser entero, y el nombre del parámetro.
00:06:20
yo le voy a llamar lapso y por último abrimos llaves y cerramos llaves, todo el código de esta función va a ir entre esas llaves, aquí podemos poner un comentario
00:06:32
si no rellenamos el código ahora mismo de por ejemplo poner aquí el código, bien, si ahora ejecutamos lo que tenemos nos va a aparecer otro error
00:06:45
pero ya no nos aparece aquí el error de secuencia 1, sino el de secuencia 2, lo vemos, ¿no? Así que vamos a hacer lo mismo con el resto de las funciones.
00:06:59
Y para ello no voy a estar perdiendo el tiempo, directamente copio, pego y cambio el valor de 1 por 2 y en este otro caso el valor de 1 por 3.
00:07:07
Si ahora ejecutamos, pues vamos a ver que desaparecen los errores. Si es verdad que mi programa no va a estar haciendo nada porque tenemos las funciones vacías.
00:07:20
Ahora iremos rellenando e iremos viendo lo que hace, pero por lo menos ya no me da error.
00:07:31
Bueno, a continuación vamos a fijarnos en el algoritmo de secuencia 1
00:07:36
Así que nos venimos para acá, bajamos un poquito
00:07:43
Y aquí vemos que el algoritmo de secuencia 1 empieza apagando todos los LEDs
00:07:46
Si yo me vengo a la referencia de Arduino
00:07:53
No voy a encontrar ninguna función que me apague varios LEDs a la vez
00:07:56
Lo tenemos que hacer manualmente
00:08:00
entonces, aunque no hemos hecho un algoritmo específico para apagar todos
00:08:02
porque es muy fácil, es simplemente ir diciendo una a una apagar todos
00:08:07
aquí lo que tenemos que hacer es crearnos una función que apague todos los LEDs
00:08:10
como ya sabemos cómo se crean las funciones, nominamos el código
00:08:13
y voy a copiarlo, voy a ponerlo por aquí por ejemplo
00:08:17
y voy a llamarla a apagar todos
00:08:23
Y en este caso no necesitamos ningún parámetro, así que se queda vacía
00:08:29
Y lo que vamos a hacer es apagar uno a uno todos los LEDs
00:08:34
Para hacerlo vamos a utilizar este de aquí, de DigitalWrite, que lo teníamos comentado
00:08:37
Y donde aparece aquí pone el código, lo quitamos ya
00:08:43
Escribimos DigitalWrite, pero en lugar de poner el pin este por defecto
00:08:47
Ponemos nuestro pin LED1
00:08:53
Fijaros que todo el rato voy a estar copiando y pegando con tu programa
00:08:55
Que escribí a veces cosas, pero sobre todo se trata de ir cogiendo cosas que ya realmente tienes por ahí
00:09:00
O que ya están en la referencia y adaptándolas a tu programa
00:09:06
Ya nos hemos creado la función de apagar todos, pero eso sí, se me ha olvidado
00:09:10
Tengo que venir aquí y llamar a esa función
00:09:14
Para llamar a esa función, emplearía este código de aquí
00:09:17
Lo pongo por abajo y le pongo punto y coma
00:09:22
Bien, seguimos con nuestro algoritmo
00:09:25
Ahora tenemos que esperar ese tiempo, el lapso
00:09:28
Nuestro parámetro
00:09:32
Entonces, como ya tengo aquí una función de esperar
00:09:33
La voy a copiar
00:09:36
Y la voy a poner aquí debajo
00:09:39
Eso sí, donde pone 1000 tengo que poner mi parámetro
00:09:42
Y aquí en el comentario también lo vamos a poner así
00:09:47
Lo podemos traducir al castellano si queremos
00:09:50
Venimos otra vez a nuestro algoritmo
00:09:52
Y ahora vemos que encendemos el LED 1
00:09:54
Venimos aquí
00:09:55
Aquí tenemos una función para encender
00:09:57
DigitalWrite, ya está preparada
00:09:59
La copiamos aquí
00:10:01
Y lo único que cambiamos
00:10:03
El LED este de aquí
00:10:06
Por el LED 1 nuestro
00:10:08
Y bueno, si nos fijamos
00:10:10
Pues ya se va a estar repitiendo
00:10:12
Todo el rato lo mismo
00:10:14
Espero, apago, enciendo, espero
00:10:15
Enciendo, espero, enciendo
00:10:18
Pues vamos a hacerlo aquí, todas las veces
00:10:19
vamos a copiar estas dos cosas
00:10:22
otras cuatro veces más
00:10:24
una, dos, tres y cuatro
00:10:26
y vamos a cambiar los valores
00:10:29
por
00:10:30
los nuestros
00:10:32
de cada uno de los leds
00:10:33
bueno, ya tenemos la secuencia 1
00:10:36
en programación es
00:10:37
muy recomendable escribir un poquito
00:10:39
de código y probarlo
00:10:42
y según no vayan saliendo las cosas
00:10:43
pues vamos haciendo más código
00:10:46
así que vamos a probar esta primera
00:10:47
vamos a ver si funciona
00:10:49
Bueno, ahí está
00:10:50
Evidentemente como loop está repitiendo todo el rato
00:10:54
Pues todo el rato apagamos y vamos encendiendo de izquierda a derecha
00:10:57
Bien, como las funciones secuencia 2 y secuencia 3
00:11:01
Pues las tenemos vacías, no están haciendo nada
00:11:05
Bueno, vamos a detener la simulación
00:11:07
Y vamos a completar las funciones de la secuencia 2 y de la secuencia 3
00:11:08
Para eso nos venimos a nuestro algoritmo
00:11:14
Y ahora vemos que en la secuencia 2
00:11:16
Pues tenemos que encender todos los LEDs
00:11:20
Apagar, esperar, apagar, esperar
00:11:21
Pues nada, no venimos aquí
00:11:24
No tenemos la función de
00:11:25
Encender todos
00:11:28
Tenemos la de apagar todos, no la de encender
00:11:30
Entonces vamos a creárnosla
00:11:32
Para eso me voy a copiar esta de aquí
00:11:34
Vale, le voy a cambiar un poquito el nombre
00:11:36
En lugar de apagar todos
00:11:38
La voy a llamar encender todos
00:11:40
Y en lugar de ponerlo a nivel bajo
00:11:42
Tendré que ponerlo a nivel alto
00:11:46
veis que estoy todo el rato copiando código
00:11:48
como si fuera un juego de lego
00:11:51
cogiendo piezas y poniéndolas en el lugar adecuado
00:11:53
bueno, en este caso
00:11:56
el código se va a parecer mucho al de secuencia 1
00:11:58
pero cambiando cosas, así que para qué voy a escribir
00:12:00
me cojo este de aquí
00:12:02
lo pego
00:12:04
y cambio las cosas
00:12:06
en lugar de apagar todos
00:12:10
pues en nuestro caso era encender todos
00:12:12
en lugar de ponerlo a nivel alto
00:12:14
hay que ponerlo a nivel bajo
00:12:19
porque vamos a ir apagándolo
00:12:20
y si probamos esto
00:12:22
vamos a ver que no va a funcionar tal y como
00:12:31
nosotros queremos, vamos a probarlo
00:12:33
¿vale? porque
00:12:34
se están apagando de izquierda
00:12:39
a derecha y yo quiero de derecha a izquierda, claro
00:12:42
porque no me he dado cuenta cuando he copiado este código
00:12:44
de que en lugar de ser 1, 2, 3
00:12:46
4, 5, tiene que ser
00:12:48
5
00:12:50
4, 3
00:12:51
2
00:12:54
1, vamos a probarlo
00:12:55
ahora
00:12:58
Ahora sí
00:12:58
Bueno, y vamos con la última
00:13:02
Secuencia 3
00:13:05
Así que me vengo a mi algoritmo
00:13:07
Y veo que aquí apaga todos
00:13:08
Espera un tiempo, enciende todos
00:13:11
Y espera un tiempo
00:13:13
Venga, vamos a probarlo
00:13:15
Apaga todos
00:13:17
Voy a coger y lo voy a copiar
00:13:20
Que está en plan pago
00:13:21
Espera un tiempo
00:13:22
Copio y lo pego
00:13:27
Enciendo todos
00:13:34
y espero un tiempo
00:13:36
vamos a ver si ahora
00:13:42
quiere funcionar
00:13:51
bien, las dos primeras bien
00:13:52
y perfecto, un parpadeo
00:13:55
bueno, ya tenemos escrito
00:13:57
nuestro código, lo único que esto de aquí
00:13:58
este código que comentamos ya no lo necesitamos
00:14:01
así que lo vamos a limpiar por un poco
00:14:03
de higiene, de que no aparezcan en nuestro
00:14:04
programa cosas que no
00:14:07
se necesitan
00:14:08
y también os quiero mostrar la ventaja de utilizar
00:14:09
funciones, porque yo ahora
00:14:12
por ejemplo, si en lugar de parpadear
00:14:14
una vez cada secuencia, pues quiero que
00:14:16
parpadee dos veces
00:14:18
pues por ejemplo me puedo poner
00:14:20
otra función aquí
00:14:22
fijaros que sencillo, ¿no?
00:14:26
y ahora, antes de empezar
00:14:27
una nueva ronda
00:14:29
pues parpadea dos veces
00:14:31
bueno, y también
00:14:34
os quiero mostrar la ventaja
00:14:36
de utilizar variables, si yo quiero que esto vaya más rápido
00:14:38
pues aquí le cambio el tiempo, le pongo a la mitad
00:14:40
¿no? y automáticamente
00:14:42
todo va a ir más rápido, fijaros, con muy pocos
00:14:44
cambios, como consigo que el
00:14:46
programa funcione de otra manera distinta
00:14:48
bueno, pues nada
00:14:51
ánimo, aquí tenéis trabajo
00:14:52
os van a aparecer errores de compilación, tenéis que ir
00:14:54
viendo donde están los errores y corrigiéndolos
00:14:57
y poquito a poco, pues vamos a ir
00:14:59
cogiendo el truco a esto de la programación
00:15:01
y vamos a poder hacer cosas muy creativas
00:15:02
pues nada, chicos, ánimo
00:15:04
y a programar
00:15:06
- 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:
- 130
- Fecha:
- 30 de enero de 2023 - 11:31
- Visibilidad:
- Público
- Centro:
- IES EL ALAMO
- Duración:
- 15′ 09″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 173.65 MBytes