Un sensor es un dispositivo capaz de transformar una magnitud física ( luz, movimiento, temperatura....) en una señal eléctrica. Esta señal llegará al controlador, que utilizará esta información para tomar las decisiones para las que esté programado.
Atendiendo a la información que aportan, podemos clasificar los sensores en dos categorías:
Sensores digitales : Solo leen dos estados LOW/ HIGH o 0/1. Un pulsador o un interruptor son sensores digitales.
Sensores analógicos: Leen más de dos estados. Arduino integra ADC ( Analog to Digital Converter, conversor de analógico a digital) de 10 bits que transforma los valores de un sensor analógico en un rango de 0 a 1023. Un LDR o un Ultrasonido son sensores analógicos
En esta actividad vamos a programar que un led permanezca apagado y se encienda solo cunado pulsemos el pulsador.
Un pulsador es un componente electrónico que nos permite cerrar y abrir un circuito eléctrico pulsando sobre un botón . Existen dos tipos:
-Normalmente abierto (NO -Normally Open ): cuyo circuito permanece abierto hasta que lo pulsamos.
-Normalmente cerrado (NC- Normally Closed): su circuito permanece cerrado hasta que pulsamos.
Este componente no tiene polaridad y puede presentar dos o cuatro patas.
Para conectar un pulsador a un pin de entrada digital vamos a utilizar una RESISTENCIA de PULL UP, para evitar interferencias o cortocircuitos.
Una RESISTENCIA de PULL UP conssten en situar la resistencia de 10K entre 5V y el pin digital, cuando el pulsador no esté pulsado, el nivel de entrada en el pin será lato (HIGH). Cuando pulsemos, la entrada digital se conecta al GND y leemos el nivel bajo (LOW).
Este diagrama de flujo representa el funcionamiento de nuestro programa.
El rombo describe la toma de decisiones, representa el punto en el que programa utiliza información ( que normalmente obtiene de un sensor o una variable) para decidir entre dos caminos.
Dentro del rombo escribiremos una condición a partir de la que tomar una decisión. De este rombo saldrán dos caminos: el que tomar cuando se cumple la condición ( el camino Sí) y el que tomar cuando no se cumple ( el camino No).
La traducción más directa del rombo de un diagrama de flujo a la programación de Arduino es la sentencia condicional if/else.
Revisa el siguiente documento en caso de duda.
Invierte el sentido del programa anterior. programa que el led esté encendido y se apague cuando pulses el pulsador.
Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
Utiliza el montaje eléctrico de la actividad anterior. Programa que el led permanezca apagado y que cuando pulses el pulsador, el led parpadee. Recuerda utilizar constantes para definir el pin del pulsador, el pin del led y el tiempo de espera entre estados al parpadear,
Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
Una fotorresistencia o LDR (por sus siglas en inglés “light-dependent resistor”) es un componente electrónico cuya resistencia varía en función de la luz.
Se trata de un sensor que actúa como una resistencia variable en función de la luz que capta. Necesitamos un mecanismo para medir las variaciones de la resistencia por ser estas proporcionales a las variaciones de luz. La forma más sencilla de medir el cambio de resistencia es usar un circuito conocido como divisor de tensión.
Divisor de tensión.
El divisor de tensión que vamos a montar en este circuito estaá constituidos por dos resistencias: una variable ( la LDR) y otra de valor fijo (4K7 en nuestro montaje).
El voltaje a medir es el que se encuentra en en punto medio entre ambas resistencias (Salida). Este voltaje disminuirá al bajar la resistencia de la LDR y aumentará cunado crezca ésta, es decir, que el voltaje de salida sigue a las variaciones de la luz en el mismo sentido de ésta.
Si queremos que el circuito se comporte de forma inversa, que el voltaje suba al bajar el nivel de luz, solo tenemos que intercambiar la LDR por la resistencia R1 en nuestro montaje.
En esta actividad vamos a monitorizar el valor leído por una LDR conectada a una entrada analógica mediante un divisor resistivo.
A continuación el programa que implementa el diagrama de bloque. Empieza por teclear el programa en la IDE de Arduino. Luego procedemos a su análisis.
La forma de hacer funcionar el programa es el siguiente:
Carga el programa a la placa
Abre el Monitor Serial para ver en la pantalla del ordenador, la información que nos envía la placa de Arduino.
En el primer momento, la pantalla del ordenador nos mostrará una medida constante que corresponde al nivel de luz ambiente que tengamos en ese momento. Para ver las variaciones del sensor , solo tenemos que pasar la mano sobre el LDR, tapándolo un poco.
En este ejercicio tienes que modificar el circuito que hemos montado, añadiendo un LED ( con su resistencia) a cualquiera de las salidas digitales. El LED se encenderá cuando el nivel de luz esté por debajo del 30%. En este ejercicio, tienes que eliminar toda la parte de envío de información al ordenador.
Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
En esta ocasión tienes que conectar 3 LEDs (rojo, verde y amarillo) que se encenderán en función del nivel de luz acuerdo con la siguiente tabla:
Ayuda: la estructura if....else puede ampliarse con else if. Busca información sobre esto e intenta aplicarlo al ejercicio propuesto.
Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
En la actividad anterior trabajamos por primera vez con un sensor analógico con un LDR . Realizasteis un indicador de luz con tres ledes.
Hoy vamos a realizar lo mismo que en RETO 4 indicador de luz, pero en lugar de utilizar tres ledes distintos vamos a utilizar un LED RGB para indicar la intensidad de luz.
Para ello vamos a ver que era un led RGB.
Un led RGB, se llama así porque en su interior encontramos tres ledes distintos : uno rojo (R), uno verde (G) y uno azul (B). Los ledes se pueden controlar independientemente y con ellos podemos hacer numerosas combinaciones de colores.
Un led RGB tiene cuatro patas de distintos tamaños. La más larga indica el terminal común (el cátodo en nuestro caso) para todos los ledes. Las otras tres son el ánodo de los tres ledes.
El montaje supone sencillamente conectar el negativo (el pin más largo) a Ground mediante una resistencia que limite la intensidad, y luego identificar los pines de colores:
El pin más largo en estos LED es el GND.
Al lado de GND hay dos pines a un lado y uno solitario al otro. Por lo normal el solitario es el rojo R.
Así pues el pin out (patillaje) de un RGB LED suele ser R, GND, G, B.
Cada LED interno del LED RGB requiere su propia resistencia de polarización de entre 220 y 330 Ohmios.
Diagrama eléctrico
En esta ocasión tienes que conectar LED RGB el cual se encenderán en un color determinado en función del nivel de luz ambiente acuerdo con la siguiente tabla: Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
¡¡¡Ayudate de la siguiente imagen de teoría del color para realizar la actividad!!!
Ayuda: la estructura if....else puede ampliarse con else if. Busca información sobre esto e intenta aplicarlo al ejercicio propuesto.
Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
En esta actividad vamos a ver otro sensor analógico, el potenciómetro. Es una resistencia variable, cuyo valor varía según vayamos modificando su posición. Si está totalmente cerrado obtendremos como salida el máximo voltaje (el de entrada), si lo tenemos totalmente abierto, obtendremos 0 voltios y si lo tenemos en una posición intermedia obtendremos una fracción del voltaje de entrada proporcional a la posición en la que se encuentre. Este comportamiento se llama divisor de tensión.
Existen diferentes tipos de potenciómetros, en nuestro caso vamos a utilizar un potenciómetro lineal, es decir, que el valor de la resistencia es directamente proporcional al ángulo de giro. Encontraremos potenciómetros de diferentes resistencias, la más típica es la de 10 kΩ.
Normalmente tienen 3 patillas, según el potenciómetro que utilicemos, deberemos identificar la funcionalidad de cada patilla. Una patilla irá conectada a la fuente de alimentación, otra a tierra o GND y por último la tercera patilla será la salida del potenciómetro.
Y como la mejor manera de entender algo son los ejemplos, empezamos con uno que mediante el monitor serie podremos ir viendo que valores vamos obteniendo en un pin analógico según vayamos modificando la posición del potenciómetro.
En el siguiente esquema te muestro el conexionado.
Una vez hayas subido el código del potenciómetro a la placa, abre el monitor serie. La salida dependerá donde la posición del potenciómetro, ves girando la rueda y verás como el valor se va modificando.
Vamos con un nuevo reto, en el cual vamos a controlar CUATRO LEDs con un POTENCIOMETRO. Así según vayamos modificando la posición del potenciómetro iremos encendiendo un LED u otro.
Hemos visto que podemos leer 1024 valores diferentes, desde 0 hasta 1023. Si dividimos entre 4 este rango y asignamos un rango a cada LED, podremos controlar que LED encender dependiendo del valor a la entrada del pin analógico.
Para ello recuerda los comparadores:
Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
En esta actividad vamos a aprender a regular dicha luminosidad haciendo uso de la función analogWrite (pin, valor) , control de una salida digital y la función map().
analogWrite, el control PWM de una salida digital
Una salida PWM, permite controlar la energía que aplica al actuador, regulando el tiempo que dicha salida permanece activa. La señal con PWM al 100% es equivalente a na salida digital en la que está activa todo el rato. Pero con un PWM al 50% tenemos una señal que esta activa la mitad del tiempo y desactiva la otra mitad. Si hacemos estolo suficientemente rápido tenemos el efecto a que un LED brilla la mitad o un motor gira a la mitad de su velocidad máxima.
No todas las salidas digitales son de control de PWM, nos debemos de fijar en en que empiezan con el símbolo -.
La función analogWrite no necesita configurar el pin den modo alguno antes. Su sintaxis es la siguiente:
analogWrite (pin, valor)
pin: El número de pin digital con soporte PWM, que queremos modificar.
valor: Es un número comprendido entre 0 y 255 donde 0 representa siempre apagado y 255 siempre encendido. Por ejemplo, un valor de 127 representaría una señal con 50%del tiempo encendido y el resto apagado.
Mediante este ejemplo vamos a ver como controlar el encendido de un LED y regular su brillo o luminosidad. Tenemos un dispositivo de entrada, el potenciometro y otro de salida, el LED. La información del dispositivo de entrada, el sensor, nos servirá para regular de forma continua la luminosidad del dispostivo de salida, el LED.
Tal y como hemos visto en el apartado anterior, la función analogWrite tiene un rango de funcioamiento de 0 a 255. Y las entradas analógicas tienen un rango de medida de 0 a 1023.
Para realizar camios de un rango a otro o conversiones de rango sencillas, el core de Arduino dispone de la función map, que nos hará más sencillo el proceso. Su sintaxis es la siguiente:
map ( valor, minEntrada, maxEntrada, minSalida, maxSalida)
valor: número entero que queremos cambiar de rango.
minEntrada: valor mínimo del rango de entrada.
maxEntrada: valor máximo del rango de entrada.
minSalida: valor mínimo del rango de salida.
maxSalida: valor máximo del rango de salida.
La función map solo trabaja con números enteros.
En esta actividad hemos usado la función map para ajustar el rango de la entrada analógica ( de 0 a 1023) con el rango de la salida pwm ( de 0 a 255) . De esta forma, por ejemplo, cuando el mando del potenciómetro esté a la mitad de su recorrido, la salida PWM estará proporcionando una señal cuadrada deon el mismo tiempo de encendido que de apagado. Esto ocurrirá de forma proporcional con cualquiera de las posiciones en las que pongamos el control del potenciómetro.
En nuestra vivienda domótica puede resultarnos de gran utilidad tener un sistema inteligente que nos ayude a regular el brillo o luminosidad de un LED, en función de las necesidades lumínicas ambientales.
Para ello en el reto de hoy, vamos a regular la luminosidad de un LED en función de la luz ambiente con un LDR. Para ello recuerda revisa el ejemplo y la actividad del LDR.
Entrega en tú CUADERNO DIGITAL, el título de la actividad, el objetivo, la programación , el circuito y el diagrama de flujo. Además de un vídeo con el simulador Tinkercad.
¿Qué es un buzzer?
Un zumbador o mejor conocido como buzzer (en ingles) es un elemento electrónico capaz de convertir la energía eléctrica en sonido. Para hacerlos funcionar solo basta conectar el positivo con el + y la tierra o negativo con el – de una batería o cualquier fuente de corriente directa.
¿ Como funciona un buzzer?
Está formado por dos discos unidos de materiales distintos: uno metálico y el otro cerámico.
Cuando se aplica un voltaje a estos materiales, se deforman y producen un chasquido audible.
Al cesar este voltaje, vuelven a su posición de reposo produciendo un nuevo sonido. Enviando 5V 0V alternativamente conseguimos que vibre y emita un sonido.
Reproduce este programa y veras como suena.
Para variar el tono del sonido generado por el buzzer, solo tendrás que cambiar la frecuencia de oscilación:
A altas frecuencias se reproducen más oscilaciones por segundo (delay menores) y se obtendrán sonidos más agudos.
A bajas frecuencias se producen menos oscilaciones por segundo (delay mayores) y se obtendrán sonidos más graves.
Imagina componer una melodia con tanto microsegundo suelto. Seria para volverse loco. Por suerte, existe una función que te va a facilitar el trabajo: es la función tone( ). La instrucción tone tiene como argumentos el pin de salida al cual tenemos conectado el zumbador, la frecuencia de la señal que vamos a generar y que es la que variará la nota y la duración en milisegundos (opcional). Con varias instrucciones tone podremos hacer música con Arduino.
tone(pin, frecuencia)
tone(pin, frecuencia, tiempo)
En este tarea no voy a ser yo la defina la actividad, os toca a vosotros determinar el uso de este elemento electrónico COMBINADO con otro u otros elementos electrónicos vistos durante este curso, y que sea funcional en vuestra vivienda domótica. En clase haremos un brainstorming para entre todos generar ideas.
Debéis entregar:
_El cuaderno digital explicaréis la combinación de elementos elegida, así como su función en la vivienda domótica. Además de la programación y el circuito electrónico.
_Vídeo con la simulación.