Objetivos
Material requerido
Arduino Uno o compatible y con el firmware para S4A cargado. | |
Una Protoboard más cables. | |
Un diodo LED | |
Cuatro resistencia de 330 Ohmios. |
ANALÓGICO Y DIGITAL
Todas las señales que hemos manejado hasta ahora, tanto de entrada como de salida, han sido digitales. Como ya sabemos, este tipo de señales solo pueden tomar dos valores, HIGH o LOW, 0 o 1.
Hasta ahora hemos utilizado este tipo de señales para encender o apagar un LED o leer si un pulsador está presionado o no. De hecho, muchos de los elementos que existen son de este tipo, como una alarma o un sensor de presencia.
Sin embargo existen muchas otras cosas que pueden tomar cualquier valor dentro de unos límites. Si lo que queremos es, por ejemplo, leer la temperatura, controlar la intensidad del brillo de un LED o la velocidad de giro de un motor, necesitaremos de las señales analógicas.
En esta sesión utilizaremos una salida analógica para controlar la intensidad del brillo de un LED.
LAS SALIDAS ANALÓGICAS
En realidad, las placas Arduino (excepto la Arduino Due) carecen de salidas analógicas puras, pero utilizan un truco para conseguir que una salida digital se comporte como una analógica.
Es importante saber esto para que ahora no se nos haga raro saber que las salidas analógicas de Arduino en S4A corresponden a los pines digitales 5, 6 y 9.
CONTROLANDO EL BRILLO DE UN LED
El circuito electrónico es el mismo que el del blinking LED de la sesión 3, pero en este caso conectaremos el LED a una de las salidas analógicas. En este caso hemos elegido la 6.
Para asignar un valor a las salidas analógicas utilizaremos el bloque “analógico … valor …” de la categoría “Movimientos”. Seleccionaremos la salida analógica 6.
Vemos que podemos asignarle el valor que queramos. Si probamos a meter valores, entre 0 y 255, veremos como el LED se ilumina con mayor o menor intensidad en función del valor que le metamos.
Ahora vamos a hacer un programa que encienda y a apague el LED poco a poco, es decir, que haga tomar a la salida analógica todos los valores desde 0 a 255 y después haga lo mismo desde 255 a 0.
Para poder ir variando el valor de la salida crearemos una variable a la que llamaremos “i”. La idea es que la salida tome siempre el valor de esta variable e ir incrementándola de 1 en 1 hasta 255, para después ir disminuyéndola también de 1 en 1 hasta 0.
Lo primero que vamos a hacer es fijar las condiciones iniciales, fijamos el valor de la variable “i” a 0 y asignamos el valor de i la salida analógica 6.
Ahora tendremos que conseguir hacer una estructura que sume 1 a la variable y se lo asigne a la salida analógica. Como queremos que llegue hasta 255, tendremos que hacer que se repita 255 veces.
Para hacer que se vaya apagando poco a poco haremos lo mismo pero en vez de sumarle 1, le sumaremos -1.
Si probamos a ejecutar el programa ahora, veremos que el LED se ilumina poco a poco hasta llegar al máximo y luego va apagándose poco a poco una sola vez. Si queremos que haga esto continuamente sólo tenemos que meter todos los bloques, excepto las condiciones iniciales, dentro del conocido bloque “por siempre”.
Podéis descargar el programa completo desde aquí:
Resumen de la sesión
En esta sesión hemos aprendido varias cosas importantes: