PRÁCTICAS ARDUINO


Salidas digitales.

Control de un led.

Control de varios led.Semáforo.

Entradas digitales.

Control de un pulsador. El comando Si...

El sensor digital

Un sensor digital solo puede tener dos valores: 1 o 0, todo o nada. Un ejemplo de sensor digital es un pulsador, en el que cuando pulsamos el botón éste vale 1, y cuando no lo pulsamos 0.

¿Qué es una sentencia condicional? El bloque Si…ejecutar

Una sentencia condicional es plantearse una pregunta para actuar de una forma u otra según la respuesta. Por ejemplo, si llueve, abriré el paraguas. Si por el contrario no llueve, lo cerraré. Si hace frío, me pondré el abrigo. Si hace calor, me lo quitaré. Si es de noche, encenderé una luz. Si por el contrario es de día, la apagaré.

¿Qué es un pulsador?

Un pulsador es un sensor digital que al presionarlo se activa (1 o verdadero) y al dejar de pulsarlo se
 desactiva(0 o falso). En nuestra vida diaria estamos rodeados de pulsadores, desde los botones del ascensor a los botones de stop de los autobuses o las teclas del ordenador. Junto con las sentencias condicionales serán de gran utilidad para controlar nuestras máquinas y robots.


IMPORTANTE: Existen dos tipos de pulsadores en el mercado, los normalmente abiertos (Pulsado->1, No pulsado->0) y los normalmente cerrados (Pulsado->0, No pulsado->1). Si tienes un pulsador de Mi primer kit de Robótica o cualquier otro del mercado probablemente sea normalmente cerrado y los programas aquí descritos funcionen justo a la inversa, cambia el 1 por el 0 y viceversa a la hora de realizar tus programas.

Si se hace de noche… enciende la luz. Controlando un LED con el pulsador

Vamos a aprender a controlar un LED utilizando el pulsador. Utilizaremos el LED que viene en la placa de arduino, conectado al pin 13 y el pulsador al pin digital 7.

Queremos que el LED se encienda cuando presionemos el pulsador, y se apague cuando dejemos de pulsarlo:

El programa:


En la pestaña Control encontrarás el bloque Si…ejecutar. Si presionamos nuestro pulsador, es decir, si el valor que devuelve el bloque Leer Boton_1 es igual a 1, encenderemos el LED. Recuerda que tu placa controladora nunca hace nada que no le hayas dicho. Hay que programar todo lo que quieras que haga. Si solo programas que cuando el botón valga 1, el LED se encienda, y no le dices cuando debe apagarse, el LED nunca se apagará. Por ello el bloque Si…ejecutar dispone de dos opciones más: en cambio, si y de lo contrario, ejecutar

El montaje:


En cambio, si…

En cambio, si permite añadir más condiciones después de la primera. Un ejemplo: si queremos comer tarta, pero no hay tarta, en cambio sí hay helado también nos vale, ¿verdad? ¡Queremos comer helado! ¡Aunque preferimos la tarta! ¡Eso es muy importante! Solo comeremos helado si NO hay tarta. En el caso de nuestro LED, queremos comprobar si el pulsador está pulsado y vale 1. Si no vale 1 pero en cambio sí vale 0, apagaremos el LED.


De lo contrario, ejecutar

El bloque de lo contrario, ejecutar se ejecutará cuando no se cumpla ninguna de las condiciones anteriores, es decir, cuando nuestro pulsador no esté presionado.


Actividad:

Realiza un programa que cuando al pulsar el pulsador, el led cambie de estado. Si estaba apagado se encienda y al contrario. 

Entradas analógicas.

¿Qué es un potenciómetro?

Un potenciómetro es una resistencia variable, es decir, un componente que permite regular la intensidad de la corriente eléctrica de un circuito. Se utilizan en muchos dispositivos, como en lámparas para regular la intensidad de luz o en equipos de música para ajustar el volumen.

Como todos los sensores analógicos, el potenciómetro devolverá valores entre 0 y 1023.


Lectura de entrada analógica.

Para ver los valores que lee la placa Arduino, al mover el potenciómetro, utilizaremos el "Serial Monitor".
Las conexiones:
Realiza las siguientes conexiones a la placa.


El programa:
Escribe el siguiente programa.

El montaje:


Actividad

Control de parpadeo de un led controlado por potenciómetro.

¿Recuerdas cuando hicimos parpadear un LED cambiando los tiempos de espera? En este ejemplo modificaremos la velocidad de parpadeo utilizando el potenciómetro, de forma que el tiempo de espera sea el valor introducido al mover el potenciómetro.

Salidas analógicas.

Las salidas analógicas son algo más complicadas que las digitales (como ya pasaba con las entradas analógicas y digitales).

Lo primero que tenemos que entender es que la mayoría de automatismos (y Arduino no es una excepción) no son capaces de proporcionar una auténtica salida analógica

Para salvar esta limitación y simular una salida analógica la mayoría de los automatismos emplean un “truco”, que consiste en activar una salida digital durante un tiempo y mantenerla apagada durante el resto. El promedio de la tensión de salida, a lo largo del tiempo, será igual al valor analógico deseado.

Existe más de una forma de hacer esta aproximación. Una de las más sencillas, y por ello muy empleada en automatización, es la modulación de ancho de pulso (PWM). En esta modulación se mantiene constante la frecuencia (es decir, el tiempo entre disparo de pulsos), mientras que se hace variar la anchura del pulso.

PWM


La proporción de tiempo que está encendida la señal, respecto al total del ciclo, se denomina “Duty cycle”, y generalmente se expresa en tanto por ciento.

Arduino implementa por hardware salidas PWM en varios de sus pines, que aparecen identificados en la placa con el símbolo “~” junto al número del pin. 

Una resolución de 8bits en una salida PWM significa que tenemos 256 niveles. Es decir, indicamos el Duty cycle mediante un número de 0 a 255.

Variar el brillo de un led a través de la salida analógica.

Las conexiones:
Realiza las siguientes conexiones a la placa.



El montaje:

El programa:
Lo primero que vamos a hacer será enviar a la salida analógica distinto valores entre 0 y 255. De esta forma comprobaremos que cambia el brillo del Led.


Actividades:

1ºActividad:

Vamos a estudiar como funciona la estructura de control "Contar con.."
Para ver como funciona esta estructura de control realiza el siguiente programa:

Comments