Activa JavaScript para disfrutar de los vídeos de la Mediateca.
Arduino: salida analógica - 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:
Hola, en esta práctica vamos a ver cómo generar salidas analógicas.
00:00:01
En la anterior vimos cómo utilizar una entrada analógica, cómo podíamos leer un valor analógico,
00:00:07
es decir, un valor que estuviera comprendido en un rango de valores, en este caso entre 0 y 5,
00:00:13
cualquiera de los valores intermedios, entre 0 y 5 voltios, podemos leerlo utilizando las entradas analógicas
00:00:18
estas que están aquí abajo, ¿vale? Que ya lo escuchamos en su momento, en la práctica
00:00:26
anterior, quiero decir, utilizamos este potenciómetro para generar esos valores entre 0 y 5 y el
00:00:31
Arduino los leía. Bueno, ¿cómo generar salidas analógicas? Pues lo primero que necesitamos
00:00:36
saber es dónde estarían esas salidas analógicas, porque las salidas analógicas tienen sus
00:00:43
propios conectores. Y si uno echa un vistazo a la placa de Arduino, pues no ve unas salidas
00:00:48
que ponga analógicas. Bueno, pues sí que están. Son estos, en los pines estos digitales
00:00:53
del 0 al 13, si os fijáis, hay unos que tienen a la izquierda del número una línea ondulada.
00:00:59
Esos conectores, el 11, el 10, el 9, el 6, el 5 y el 3, permiten generar señales pseudoanalógicas,
00:01:06
es decir, no son analógicas del todo, pero se comportan como si lo fueran. Utilizan una
00:01:18
técnica que pone aquí PWM que son las siglas en inglés de modulación por
00:01:23
anchura de pulso, Pulse Modulation, Width Modulation y esa técnica en qué consiste
00:01:28
bueno pues tengo aquí una página web donde lo vais a ver muy bien la idea es que esos
00:01:34
esos pines sólo pueden en principio sacar y generar valores entre 0 y de 0 o 5
00:01:38
voltios pero lo que sí hacen es modificar generan señales periódicas y
00:01:43
lo que van haciendo es modificar el ciclo de trabajo que se llama aquí vale
00:01:48
duty cycle. Cuanto más tiempo esté la señal arriba, ese valor medio, que viene aquí en
00:01:52
verde como promedio, más alto será. Si tengo solo un 10%, pues la señal será un 10% de
00:01:59
5 voltios. Si tengo al 30%, este ciclo de trabajo, la señal media, el promedio será
00:02:04
un 30% de los 5 voltios y así sucesivamente. Acordaros que cuando estudiamos la alterna
00:02:11
dijimos que el valor medio era el valor de la corriente continua precisamente
00:02:18
entonces, jugando con estos ciclos
00:02:22
en los que la anchura del pulso varía
00:02:25
podemos hacer que el valor medio suba o baje
00:02:28
y eso es la técnica de modulación por anchura de pulso
00:02:31
entonces, si volvemos a la simulación
00:02:35
¿cómo puedo sacar yo señales?
00:02:38
¿cómo puedo controlar qué bloques necesito?
00:02:41
¿qué bloques puedo usar para generar esas salidas?
00:02:44
Bueno, lo primero de todo es que este LED no va a estar conectado al 13, sino al 11, porque el 11 es uno de los que me permite generar salidas analógicas.
00:02:46
Entonces, si me voy al código, quito los bloques que vienen por defecto, como siempre, y en las salidas tengo aquí uno que pone definir pasador, el que sea, en 0.
00:02:56
Fijaros que no me deja coger cualquier pasado, solo unos muy concretos que coinciden con los que tienen el guión este ondulado delante.
00:03:07
Entonces, como mi LED está conectado al 11, pues le pongo aquí el 11.
00:03:18
Entonces, yo puedo sacar valores, puedo mandar, aquí no voy a escribir en este bloque, no voy a escribir valores,
00:03:22
no voy a escribir 3.3, ni 4.2, ni 1.7, ahí no escribo el voltaje.
00:03:29
Porque de nuevo, igual que cuando leíamos voltajes, el Arduino nos lo codificaba en valores que iban comprendidos del 0 al 1023, aquí el valor que yo le doy lo voy a codificar entre 0 y 255 y él ya lo traducirá, entre comillas, a valores entre 0 y 5 voltios.
00:03:33
Por ejemplo, si aquí escribo 2.55 y le doy a iniciar simulación, vais a ver que el LED brilla al máximo.
00:03:52
Si pongo la mitad, que es el número redondo, el 128, y le doy a iniciar simulación, pues ya no brilla al máximo.
00:04:01
Brilla una cosa, tiene un brillo intermedio.
00:04:09
Si tengo la simulación y pongo, yo que sé, por ejemplo, 50, va a brillar, pero muchísimo menos.
00:04:13
¿Veis? Cuando los valores son bajos se nota un poquito menos, pero bueno, se va notando que brilla cada vez menos cuanto más bajo sea este valor.
00:04:18
Y el valor máximo que puede tener es 255, eso es lo que corresponde a los 5 voltios.
00:04:30
Entonces, en este ejercicio que tengo aquí, lo que yo quiero es leer un valor analógico en acero, lo que viene del potenciómetro,
00:04:36
y a partir de ese valor voy a mandar el valor correspondiente al LED para que brille.
00:04:45
Es decir, yo con mi potenciómetro voy a controlar el brillo, la intensidad del brillo del LED.
00:04:51
¿Y eso cómo se hace?
00:04:56
Pues muy fácil. Vamos a necesitar dos bloques.
00:04:58
Bueno, lo primero antes de eso, vamos a necesitar una variable que ya la tenemos aquí creada,
00:05:02
que se llama input, para guardar el valor de la lectura.
00:05:06
Y lo vamos a leer igual que antes. Antes teníamos un bloque para leer el pasador analógico a cero, porque está conectado aquí al a cero, y lo que hacíamos era guardar esa variable, esa lectura en la variable input.
00:05:09
Y ahora, a partir de esa lectura que tenemos guardada en la cajita input, lo que vamos a hacer es generar un valor que mandaremos al conector 11.
00:05:29
Lo que pasa es que tenemos que tener en cuenta una cosa, que estamos leyendo valores entre 0 y 1023, o sea, 1024 valores.
00:05:41
Y los valores que yo tengo aquí son 256 valores, es decir, entre 0 y 255.
00:05:48
Bueno, pues lo que tengo que hacer para adecuar esto al rango de valores es los 1024 valores que tengo aquí, voy a dividirlos entre 4.
00:05:54
Así paso de tener valores de 0 a 1023 a tenerlos de 0 a 255, más o menos.
00:06:06
Ya redondará el Arduino cuando haga la división, ¿vale?
00:06:14
Entonces, con estos dos bloques, uno que me lee la entrada analógica en acero, la guarda en la entrada, y este que lo que hace es divide eso que tengo en la variable entrada, en esa cajita, entre comillas, lo divide entre cuatro y lo manda al pasador.
00:06:17
Entonces, con estas dos instrucciones, ya estaría leyendo un valor analógico con el primero y sacando ese valor analógico directamente hacia el LED. Vamos a ver la simulación. Le damos a iniciar simulación.
00:06:33
Y efectivamente el LED está brillando al máximo porque tenía yo el carril colocado ahí.
00:06:47
A medida que lo voy llevando hacia la izquierda, vais a ver que el LED se va a ir apagando.
00:06:55
O debería irse apagando.
00:07:00
Y efectivamente se va apagando.
00:07:02
Va a estar que se apague del todo cuando está en el cero, ¿vale?
00:07:05
Pues así, con esos simplemente dos bloques y utilizando una variable, ya podemos controlar.
00:07:07
estamos leyendo una variable analógica y generando una salida analógica
00:07:13
y estamos controlando el brillo del LED
00:07:17
bueno, pues este es el ejemplo que os acabo de mostrar
00:07:20
este no es el ejercicio, el ejercicio que vamos a hacer es distinto
00:07:25
pero es muy parecido, vamos, voy a guardar el código un momento
00:07:29
y en los componentes voy a buscar uno que se llama
00:07:33
LED RGB, es un LED con cuatro patitas
00:07:37
Aquí está. Voy a hacer zoom. Se llama LED RGB porque combina cuatro colores. RGB, red, green and blue. Rojo, verde y azul.
00:07:41
Entonces, este es el verde, este es el azul y este es el rojo.
00:07:53
Entonces, con estos tres patitas puedo generar cualquier color, porque cualquier color es combinación de rojo, verde y azul.
00:07:57
Por cada una de las patitas lo que vamos a hacer es meter la intensidad con la que queremos que brille el rojo, que brille el verde o que brille el azul.
00:08:04
Esta patita es el cátodo, sería el equivalente al cátodo de un LED normal,
00:08:11
es el que lo que podemos hacer es conectar a la resistencia de protección.
00:08:19
Entonces, lo que haríamos, por ejemplo, es quitamos este LED, conectaríamos nuestro LED aquí,
00:08:25
el cátodo conectado a la resistencia, y aquí entraría una salida analógica procedente del Arduino
00:08:30
con la que controlaríamos el azul, esta del 9, del 10, por ejemplo, controlaría el verde,
00:08:40
y una viniendo del 9 iría aquí y controlaría, por ejemplo, la intensidad del rojo.
00:08:47
Entonces tendríamos esas tres salidas conectadas a estos tres.
00:08:53
Y luego tendríamos, igual que tenemos aquí un potenciómetro,
00:08:57
necesitaríamos un segundo y un tercero, y estaríamos leyendo tres valores,
00:09:00
uno en A0, otro en A1 y otro en A2.
00:09:04
entonces tendríamos tres variables
00:09:07
en una guardaríamos la intensidad del rojo
00:09:10
en otra guardaríamos la intensidad del verde
00:09:13
y en otra guardaríamos la intensidad del azul
00:09:15
que los estaríamos controlando, mandando desde estos tres potenciómetros
00:09:17
y a su vez nosotros los reenviaríamos al RGB
00:09:21
y lo que veríamos es que
00:09:24
se combinarían distintos
00:09:27
aparecerían distintos colores
00:09:31
para que os hagáis una idea
00:09:33
voy a salir de aquí y os voy a enseñar
00:09:34
ya una práctica ya hecha, pero sin
00:09:37
el código, para dejaros algo que hacer
00:09:39
la tengo por aquí
00:09:41
entrada analógica
00:09:43
tal, tal, tal
00:09:45
a ver si la encuentro
00:09:46
vale, para que veáis el resultado
00:09:48
aquí está
00:09:50
entonces, este
00:09:57
voy a ver si me deja simular
00:09:59
lo voy a simular, para que veáis la simulación
00:10:01
este es el resultado
00:10:04
esto es lo que vosotros deberíais obtener
00:10:06
Entonces, si le doy a iniciar simulación
00:10:08
Lo que estoy haciendo es
00:10:15
Controlando
00:10:16
Bueno, fijaros que aquí he puesto resistencias
00:10:17
En cada una de las
00:10:21
De los LEDs
00:10:22
Es mejor, es más seguro hacerlo así, ¿vale?
00:10:23
No hagáis como lo he hecho antes
00:10:26
Poner una resistencia de protección en una, otra en otra y otra en otra
00:10:27
Y luego los tres potenciómetros
00:10:29
Entonces yo, por ejemplo, voy a poner los tres a cero
00:10:31
¿Qué ocurre si tengo los tres a cero?
00:10:34
Que estoy mandando cero de rojo
00:10:37
0 de verde y 0 de azul
00:10:40
el led se apaga
00:10:43
la simulación aquí va un poco lenta
00:10:44
si muevo este led al máximo
00:10:46
perdón, este potenciamiento al máximo
00:10:49
se pone rojo, este es el control de los rojos
00:10:51
si yo muevo este
00:10:53
y pongo este al máximo
00:10:57
este es el de los azules, vais a ver
00:10:58
se pone azul
00:11:00
es el único que está al máximo
00:11:01
lo pongo a 0
00:11:03
tarda un poquillo en apagarse
00:11:06
Porque lleva retardos
00:11:08
Como estas resistencias creo que me equivoqué
00:11:10
Que no son de 220
00:11:12
Pero bueno, poned resistencias de 220 vosotros y ya está
00:11:13
Y ahora esta
00:11:16
Es el green
00:11:17
El verde, ¿vale?
00:11:20
Yo con esto estoy controlando
00:11:21
Entonces, por ejemplo, si mezclo
00:11:22
Voy a poner este a cero
00:11:24
Si mezclo rojo y azul
00:11:27
¿Qué harán estos dos? ¿Qué debería obtener? Morado
00:11:29
Bueno, pues voy a poner, subo el rojo
00:11:31
Subo el azul
00:11:33
Y debería obtener un morado
00:11:35
y efectivamente lo que estoy obteniendo, estoy combinando
00:11:37
colores, si pongo todos
00:11:40
al máximo, debería tener
00:11:41
una luz blanca que combine
00:11:43
todos los colores, vamos a esperar que coja un poco
00:11:45
de, ahí está, la luz blanca
00:11:47
que combina todos los colores, bueno, pues
00:11:49
ese es el resultado, ese es el montaje que tenéis
00:11:51
que hacer y el cómo tenéis que
00:11:53
programarlo lo dejo
00:11:55
a vosotros, si sabéis controlar
00:11:57
un LED de un color, sabéis repetir
00:11:59
esto tres veces para un LED
00:12:02
de RGB como este, vale
00:12:04
bueno, pues es el ejercicio, fácil, fácil, fácil
00:12:05
- Autor/es:
- David Gonzalez Arroyo
- Subido por:
- David G.
- Licencia:
- Reconocimiento - No comercial - Compartir igual
- Visualizaciones:
- 197
- Fecha:
- 8 de enero de 2021 - 21:29
- Visibilidad:
- Público
- Centro:
- IES MARIE CURIE Loeches
- Duración:
- 12′ 11″
- Relación de aspecto:
- 1.78:1
- Resolución:
- 1920x1080 píxeles
- Tamaño:
- 44.23 MBytes