Saltar navegación

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

Programación básica en Arduíno - 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 17 de diciembre de 2025 por Francisco J. G.

3 visualizaciones

Programación básica en Arduíno

Descargar la transcripción

Buenas tardes. Voy a explicar el paso 6 del aula donde hablamos de una iniciación a la 00:00:00
programación en Arduino. Entonces voy a ir explicando cada una de las imágenes que nos 00:00:14
aparecen en el aula lo que queremos lograr es una estructura lo que es una estructura básica de lo 00:00:23
que se llama un sketch en arduino que sería el código que vamos a implementar para que funcione 00:00:31
nuestro esquema entonces en todos los sketch tiene que haber como siempre dos métodos que son 00:00:36
indispensables uno sería el setup y otro es el loop ya he hablado en varios vídeos sobre ellos 00:00:45
Pero aquí lo vuelvo a explicar para que nos quede bien claro para qué se utilizan estos dos métodos y que son imprescindibles, siempre tienen que aparecer en nuestro código. 00:00:51
el setup solo ya lo he dicho muchas veces pero solo se va a ejecutar una sola vez donde se 00:01:07
pondrán aquí parámetros de configuración como aquí pues he puesto el pin mode que sería un 00:01:14
método que lo que hace es que configura el pin 13 como un pin de salida en cambio el loop se va a 00:01:19
ejecutar de manera repetitiva desde que iniciamos la ejecución del propio programa se va a estar 00:01:27
repitiendo y repitiendo y repitiendo hasta que lo paremos aquí se pondrán pues otro tipo de 00:01:33
lógica la lógica en definitiva la lógica principal del programa es la que se pondrá en el loop aquí 00:01:38
no está diciendo que le está concediendo o le está aportando al pin 13 un valor alto un valor 00:01:44
de 1 para que pues esto será un led para que se encienda bien una vez que hemos visto los dos 00:01:51
componentes principales de todo programa es el método setup y el método loop, cómo se crea una 00:02:01
variable en Arduino, tanto si la variable está fuera de esos dos métodos que serían variables 00:02:07
globales y que valdrían para todo el programa, todo el programa incluidos los métodos podrían 00:02:14
leer dichas variables o bien dentro de un método como dentro del setup o dentro del loop o dentro 00:02:21
de otra función que nosotros creemos que serían a nivel local 00:02:25
y solo se tendrían valor dentro 00:02:28
del propio método. Hay distintos tipos en temas 00:02:31
más de creación de variables, pero que sepáis que primero 00:02:34
se tiene que poner el tipo de la variable 00:02:37
luego el nombre y luego se inicializa si queremos 00:02:40
como veis aquí 00:02:43
una variable realmente no es nada más que un cajón 00:02:45
que tiene un nombre, en ese cajón tú guardas algo 00:02:49
en función del tipo de cajón, del tipo de variable 00:02:52
que nosotros queramos, podremos guardar una cosa u otra. 00:02:55
Si la variable es de tipo entero, en ese cajón 00:02:59
solo podremos meter números enteros. 00:03:01
Si es de tipo float, solo números decimales. Si es de tipo 00:03:04
bool, solo verdadero o falso. Y si es de tipo char, 00:03:07
solo caracteres. Pero que sepáis que una variable 00:03:10
es un contenedor de algo en el que 00:03:13
lógicamente tiene que tener un nombre para luego ser 00:03:16
identificado. Y se le iguala 00:03:19
al valor que nosotros queremos almacenar, que sería la inicial 00:03:22
de la propia variable con respecto a la creación de constantes en c++ se hace de dos modos bien 00:03:25
añadiendo una palabra const delante del esto sería si nos olvidamos la palabra const esto sería como 00:03:37
la creación de una variable si nosotros le ponemos previo a ella le ponemos la palabra const estamos 00:03:43
diciendo que es una constante una constante también va a ser un contenedor que va a contener 00:03:49
algo, pero ese algo nunca va a cambiar. Si tenemos la constante LED, como es esta, va a tener siempre 00:03:53
un 13 y no puede cambiar ese valor. Ese cajón siempre va a tener un 13, ese número entero que 00:03:59
es el número 13. La otra manera es a través de una cláusula que se pone al principio del programa, 00:04:06
como sucede con los includes, que luego veremos, que se pone con esta estructura, en el que estamos 00:04:11
definiendo que LED va a tener un valor constante de 13. La otra cláusula que se puede poner al 00:04:15
principio del programa sería la de include que es para incluir librerías externas y por tanto 00:04:26
serán las primeras líneas que se pondrán en el programa aquí veis se hace con estos ángulos 00:04:30
invertidos en el que se pone dentro la librería la librería generalmente la librería es una 00:04:36
librería con una extensión punto h h de head de cabecera el archivo cabecera es el enlace a una 00:04:42
librería esta sería por ejemplo la librería de servo está la del lcd etcétera entramos en dentro 00:04:50
de un programa para el que no lo conozca podemos utilizar condicionales un condicional se va a 00:05:03
utilizar con esta estructura que aparece aquí siempre con un if luego entre paréntesis dentro 00:05:10
va una condición y luego hay un bloque con una apertura de una llave y una llave de cierre donde 00:05:15
dentro tenemos una serie de comandos que vamos a ejecutar o no dependiendo si se cumple esta 00:05:21
condición pero un condicional tiene que cumplirse esta condición para que pueda leer esta línea si 00:05:25
esta condición no se cumple se lo saltará y seguirá con las siguientes líneas del programa 00:05:31
hay otra versión veis aquí este ejemplo nos dice si se cumple la condición escribirá en el 13 en 00:05:35
el pin 13 un valor de high o de 1 si no se cumple pues se nos salta y no haría esta línea el if else 00:05:43
sería la otra posibilidad y es cuando tenemos un if 00:05:50
y se cumple la condición, pues leería 00:05:53
esta línea. Pero si no se cumple, ahora 00:05:56
no seguiría el programa, pero tenemos 00:05:58
otra posibilidad que es el else, que se pondría así, también con 00:06:02
una llave de apertura y una de cierre y leería esta 00:06:05
otra línea. Entonces, si se cumple la condición, valor mayor de 00:06:08
500, escribiría en el pin 13 un valor de alto. 00:06:11
Pero si no, ahora ya no lo perderíamos, sino que 00:06:15
también hay otra línea que, en el caso de que no se cumpla, lo que hace es que al pin 13 le va a 00:06:17
conferir un valor de low o de cero. Hemos visto los condicionales, vamos a ver los bucles for. Un 00:06:24
bucle for se utiliza para repetir un conjunto de instrucciones, el número de veces que nosotros 00:06:38
indiquemos, y siempre tendrá tres partes. Una inicialización, veis el for, se pone entre paréntesis, 00:06:43
y entre paréntesis tiene tres partes separadas por puntos y coma. La primera parte sería esta, 00:06:49
que es una inicialización, la segunda sería una condición y la tercera sería un incremento. 00:06:54
Entonces esto lo que hará es que en un principio, veis, está en la inicialización, 00:07:00
está inicializando la variable i de tipo entero a cero 00:07:04
y nos está poniendo la condición de que i sea menor que 10 y luego aparecería el incremento. 00:07:07
Entonces el primer valor con el que pasaría entraría aquí y nos sacaría en el monitor en serie, 00:07:13
nos sacaría un cero, volvería otra vez para atrás y comprobaría la condición. 00:07:19
¿Cero es menor que 10? Sí. Entonces produciría el incremento, se formaría el valor de 1 y imprimiría 1 y así sucesivamente hasta el 9, porque cuando llegue al 9, le incremente y sea igual a 9, pasaría al monitor, lo imprimiría, pero cuando subiéramos otra vez, lo primero que hace es incrementarlo. 00:07:23
al incrementarlo nos daría un valor de 10 00:07:50
y él como ya no cumple la condición 00:07:52
porque i tiene que ser menor que 10 00:07:54
no lo imprimiría y saltaría y seguiría con las demás líneas 00:07:56
con lo cual este programa 00:07:59
lo que haría es que imprimiría en el monitor en serie 00:08:01
de manera vertical 00:08:03
0, 1, 2, 3, 4, 5, 6, 7, 8 y 9 00:08:06
¿para qué es usado? 00:08:09
para barridos, contadores, animaciones con LED, etc. 00:08:11
a continuación tenemos el apartado de funciones 00:08:19
Las funciones las utilizaremos también en los ejemplos y se utilizan para agrupar instrucciones, pero de una manera ordenada y más clara y que esté separado de lo que es en un lugar apartado del programa al que podamos llamar a esa función, nos haga una determinada tarea y después nos devuelva un valor. 00:08:22
Hay funciones en las que devuelven valores y otras en las que no. 00:08:43
En este caso tenemos una función que sería voidEncenderLed y dentro haría esta línea. 00:08:46
¿Cómo se la llama? Se la llama poniendo el nombre de la función y los doble paréntesis y punto y coma. 00:08:53
Esto se le llamaría desde otro lado del programa, a lo mejor dentro del void loop seguramente, 00:08:59
y diríamos en el encenderLed esta otra función estaría separada, 00:09:06
Pues dentro del programa tendría una función setup con su llave de apertura y de cierre, con sus líneas dentro. Luego tendríamos una loop y dentro del loop, por ejemplo, tendríamos encender LED. 00:09:09
Cuando llegue a esa línea, llamaría a otra función, que es la tercera que tendríamos en el programa, que sería voice encender con su llave de apertura y su llave de cierre. 00:09:22
la ejecutaría, le daría un valor de alto al pin 13 00:09:31
y una vez que terminara la función 00:09:35
volvería a la siguiente línea 00:09:37
desde donde ha sido llamada dicha función 00:09:39
o sea que seguiría leyendo debajo de la línea de encender LED 00:09:42
pasamos a las entradas y salidas digitales 00:09:46
a lo largo de todo el curso 00:09:56
he hablado de ello 00:09:59
pero lo vuelvo aquí a remarcar 00:10:00
primero en configuración dentro del setup 00:10:04
ya configurábamos los pines como de entrada o de salida 00:10:07
un pin entonces se encarga de configurar aquí 00:10:11
los pines 2 y 13, uno de entrada y otro de salida 00:10:15
la lectura digital como se hace 00:10:18
se hace con el digital red 00:10:21
aquí nos está diciendo que recojamos en esta variable entera 00:10:23
el estado fruto de la lectura digital del pin 2 00:10:26
eso sería al leerlo 00:10:31
Sería un pin de salida. En cambio, una escritura digital sería con digital write y le diríamos que le estamos confiriendo al pin 13 un valor alto. Entonces, sería lo que sería una escritura digital y, por tanto, esta sería de salida porque le estamos confiriendo al pin 13 un valor alto. 00:10:33
mientras que, lo he dicho mal antes, esta sería con el pin 2, sería un valor de entrada. 00:10:55
todo dependerá de lo que queramos utilizar 00:11:05
para lo que queramos utilizar el pin 00:11:11
si lo que queremos es que ese pin lea un dato 00:11:12
con lo cual sería entrada 00:11:15
o bien le proporcionaremos un voltaje 00:11:17
o le escribamos un voltaje a ese pin 00:11:23
y que sea de salida 00:11:25
y por ejemplo encienda un LED 00:11:27
en cuanto a las lecturas analógicas 00:11:28
la diferencia con las anteriores 00:11:36
es que ahora una lectura analógica se va a hacer a través de los pines analógicos 00:11:38
y el método va a ser con el analogRED en vez de con el digitalRED. 00:11:43
Este va a devolver, ahora ya no devuelve un valor de 0 o de 1 o de high o de low, 00:11:48
sino que devolverá valores entre 0 y 1023. 00:11:52
En cuanto al PWM, es la modulación por ancho de pulso, 00:12:00
es como si dijéramos un intermedio entre lo que es el digital y el analógico. 00:12:04
Esto es el pulse width modulation. Es una técnica que permite a Arduino simular una salida analógica utilizando pines digitales. Aunque el pin solo puede estar en high, encendido o apagado, con el PWM lo que vamos a conseguir es valores intermedios. 00:12:08
aquí tenemos un ejemplo de un control de billo del LED 00:12:23
en el que el análogo le está escribiendo un valor entre 9 y 128 00:12:28
un ciclo de trabajo bajo significa que el pin está encendido poco tiempo 00:12:34
y eso sería menos potencia 00:12:41
en cambio cuando el ciclo de trabajo es alto 00:12:42
lo que le estamos dando es un valor de más potencia 00:12:45
para acabar tenemos aquí un ejemplo completo 00:12:48
integrado en el que meto el include 00:12:56
meto los dos tipos de constantes, meto cómo creo un objeto y luego meto lo único que no ha introducido, sería una función. 00:12:58
Pero veis aquí lo que hace primero, importa la librería servo, a continuación lo que hace es que el define crea una variable llamada let con un valor de 13 00:13:08
y luego creamos otra variable de tipo entero llamada pot con un valor de a0. 00:13:17
Creamos un objeto servo que proviene de la librería que hemos importado y luego en el setup, que sería el que lee una vez, lo que hace es que configuramos el LED, o sea el 13, como de salida. 00:13:23
Al servo le unimos al pin 9 para indicar que el pin que gobierna el servo va a ser el 9 de la placa de Arduino. 00:13:36
Y ya entramos en el bucle loop que, acordaos, está continuamente leyéndolo. Lo primero que hace es que desde el pin analógico está leyendo el valor y lo está metiendo dentro de un valor entero y luego como es analógico y ese valor va a tener un valor comprendido entre 0 y 1023, nos dice que si ese valor es mayor de 512, 00:13:45
que al LED, o sea, al pin 13, le pase un valor de 1. 00:14:10
Si no, al LED le pasa un valor de 0. 00:14:16
Con lo cual, ¿qué le está haciendo? 00:14:20
Le está haciendo que cuando tenemos valores de mayor de 512, 00:14:21
lo está encendiendo. 00:14:25
Cuando tenemos valores menores de 512, lo está apagando. 00:14:26
A continuación, tiene un for que una vez que hemos obtenido 00:14:31
una vez que ya hemos obtenido el resultado del condicional 00:14:38
lo que hace es una lectura del for 00:14:45
y el for lo que hace es que crea una variable i con un valor 0 00:14:47
y va a recorrer desde 0 hasta un valor de 180 00:14:50
que serán de 0 a 180 grados del servo 00:14:53
y va a ir de 10 en 10 00:14:57
esto sería igual que i igual a i más 10 00:14:58
recorrerá el i 00:15:01
lo que hará es que en un principio 00:15:04
y escribirá en el servo un valor de 0, con lo cual le está comunicando 00:15:07
que se localice en la posición 0 grados, retrasará 100 milisegundos 00:15:10
y acordaos que delay es un comando que nos va a indicar que pause la ejecución, 00:15:17
la pausará 10-100 milisegundos, el parámetro que tiene dentro es milisegundos, 00:15:23
pausará 100 milisegundos y a continuación subirá otra vez a la for. 00:15:29
Se producirá el incremento de 10 y tendremos que ahora el valor de Y valdrá 10 y le pasará al servo o le escribirá en el servo un valor de 10 grados para que se gire 10 grados. 00:15:33
Esperará 100.000 segundos y subirá otra vez. 00:15:44
Pasará por 20, por 30, por 40, por 50, así hasta 180 grados. 00:15:47
Y cuando termine ese for, cuando haga todo el recorrido cada 10 grados del servo, saldrá del mismo y volverá a leer el loop. 00:15:53
Hará exactamente lo mismo y volverá a generar las distintas posiciones del propio servo. 00:16:01
Este analogRED es porque está unido a un potenciómetro, 00:16:11
entonces lo que vamos a hacer es que el potenciómetro con la ruedecita nosotros podemos modificarlo 00:16:17
y darle distintos valores de entre 0 y 1023, de tal manera que movamos el servo o no lo movamos. 00:16:21
Idioma/s:
es
Materias:
Informática
Niveles educativos:
▼ Mostrar / ocultar niveles
  • Formación Profesional
    • Ciclo formativo de grado básico
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado medio
      • Primer Curso
      • Segundo Curso
    • Ciclo formativo de grado superior
      • Primer Curso
      • Segundo Curso
Autor/es:
Francisco José González Constanza
Subido por:
Francisco J. G.
Licencia:
Todos los derechos reservados
Visualizaciones:
3
Fecha:
17 de diciembre de 2025 - 22:03
Visibilidad:
Público
Centro:
IES CIFP a Distancia Ignacio Ellacuría
Duración:
16′ 37″
Relación de aspecto:
1.78:1
Resolución:
1920x1080 píxeles
Tamaño:
344.51 MBytes

Del mismo autor…

Ver más del mismo autor


EducaMadrid, Plataforma Educativa de la Comunidad de Madrid

Plataforma Educativa EducaMadrid