Webcervices. Con la tecnología de Blogger.
RSS

Unete a nuestro grupo de facebook

Unete a nuestro grupo de facebook
Hola que tal lectores de esta pagina tan maravillosa que es arduino Tec ...Los invito a que amplíen mas sus conocimientos en Arduino y Raspberry Pi Uniéndose a mi grupo Arduino Tec

Tutorial Arduino # 0004 – Sensor LDR

Arduino, LDR, Tutorial, Proyecto, Arduteka

# Tutorial Arduino 0004 – Sensor LDR

Bienvenidos a un nuevo tutorial para sacar el máximo partido a vuestro Arduino, comenzamos a introducir en nuestros proyectos sensores que responderán a situaciones físicas concretas, empecemos por el LDR!!
  • Nivel: Básico
  • Coste: < 30 €
  • Tiempo: 25′

Parte 1: ¿Qué vamos a hacer?


En este proyecto, vamos a utilizar un LDR (Light Dependent Resistor o resistencia dependiente de la luz) para simular una hipotética compensación lumínica de 5 niveles, es decir, a través de una resistencia que varia su valor dependiendo de la luz recibida, aprovecharemos dicha variación para hacer un programa que nos encienda o apague una serie de LED dependiendo de si hay más luz o menos luz, esto podríamos extrapolarlo a un sistema de regulación de luz de un jardín con cinco lineas de luz que se vayan encendiendo según va cayendo la noche compensando progresivamente la deficiencia de luz.
Además le hemos implementado un potenciómetro para ajustar el nivel crítico mínimo de luz que queremos soportar, a partir del cual se activará nuestro circuito y empezará a aumentar la luz del lugar progresivamente.
Veamos un video con el resultado final!







Material necesario para este proyecto:

Parte 2: Diseñando el hardware…


En este proyecto lo que queremos conseguir es que, a partir de una resistencia que varía su valor óhmico en función de que haya más o menos luz, controlar 5 salidas de nuestro Arduino, a las que podríamos conectar líneas de iluminación para un jardín por ejemplo, de manera que según va anocheciendo, nuestra iluminación artificial va aumentando.
Además, vamos a colocar un potenciómetro para regular el umbral de luz mínima, a partir del cual, comenzará a funcionar nuestro circuito de luz artificial para que sea adaptable a cualquier entorno.
Dividamos el circuito en tres partes:
  • Salidas
  • LDR
  • Regulador

Para las salidas, ya hemos aprendido en otros tutoriales como conectar unos diodos LED y como calcular su resistencia óptima.
En cuanto al LDR, es nuevo para nosotros, en breve tendréis disponible un tutorial sobre este componente, así que de momento nos vamos a quedar en que funciona como una resistencia variable de manera que, cuanta más cantidad de luz reciba, menor será su resistencia, para que quede claro, si en un potenciómetro variábamos la resistencia deslizando un patín por la pista de material resistivo, aquí lo hará la cantidad de luz que reciba la foto-resistencia.
¿Qué podemos deducir con esto?
Que si añadimos una resistencia más, podemos utilizar el LDR para hacer el ya conocido divisor de tensión de donde sacaremos la señal para conectar a nuestra entrada analógica de Arduino.
Podemos conectarlo de dos maneras diferentes:
Arduino, LDR, Tutorial, Proyecto, Arduteka
Si utilizamos el LDR como resistencia inferior del divisor de tensión, nos dará la tensión máxima cuando tengamos el LDR en plena oscuridad, ya que estará oponiendo el máximo de su resistencia al paso de la corriente derivándose esta por Vout al completo, si lo utilizamos como resistencia superior, el resultado será el inverso, tendremos la tensión máxima cuando esté completamente iluminado, ya que se comportará prácticamente como un cortocircuito, con una resistencia de 50Ω o 100Ω.
En este caso lo hemos utilizado como resistencia superior, de manera que cuanta más luz haya, más tensión tendremos a la entrada de nuestra entrada analógica pudiendo ajustar así, de una manera muy intuitiva, la tensión de referencia que ahora explicaré.
Como tercera parte del circuito, hemos colocado un potenciómetro configurado como divisor de tensión para hacer las funciones de regulación del rango de iluminación a partir del cual se activará nuestro circuito de iluminación.
¿Como hemos conseguido esto?
Primero hay que pensar un par de cosas, nuestra foto-resistencia configurada como divisor resistivo, nos va a dar 0v cuando este COMPLETAMENTE a oscuras, y +5v cuando esté COMPLETAMENTE iluminada, situaciones que pueden ser difíciles de conseguir dependiendo del entorno en el que trabajemos, y por otra parte, ese rango de 0v a 5v habrá que dividirlo en 1024 “pasos” que va a leer nuestro Arduino, pero quizás solo vayamos a trabajar en 500 o 600 pasos, desperdiciando mucha resolución.
Para solucionar esto, además de evitar cambiar el programa de Arduino cada vez que lo cambiemos de entorno, he decido usa una función que nos proporciona Arduino muy internaste, el pin “Aref”
¿Qué es el pin AREF?
Cuando Arduino toma una señal analógica y la convierte a digital en 1024 cachitos, lo hace por defecto pensando que la señal que va a recibir puede variar entre 0v y 5v lo que nos da aproximadamente un valor por cada 4,88 mV, pero nosotros podemos decirle que no, que realmente va a trabajar entre 0v y 3v, obteniendo así 1024 cachitos distribuidos entre 0v y 3v, lo que nos da un valor por cada 2,9 mV, es decir una resolución mucho mayor.
Debemos tener en cuenta que este pin lleva internamente una resitencia de 32KΩ para evitar dañar el chip, de manera que si vamos a conectar el pin mediante una resistencia fija, se va a producir un nuevo divisor de tensión, con lo que habrá que calcular la resistencia adecuada para la tensión exacta que queremos introducir mediante una sencilla fórmula:
Arduino, LDR, Tutorial, Proyecto, Arduteka
Donde:
  • Vin = Tensión que introducimos a Vref
  • Rinterna = Resistencia interna de Arduino de 32KΩ
  • Rexterna = Resistencia mediante la cual alimentamos Vref
  • Vrefencia = La tensión sobre que tomará referencia nuestro programa.

De manera que si por ejemplo, estamos introduciendo una tensión de +3v a través de una resistencia de 5KΩ, la tensión real de referencia en nuestro Arduino será de:
(32000/(32000+5000)) x 3 = 2,59v
¿Porqué evita cambiar el programa continuamente?
Por que variando la señal de referencia, le estamos diciendo que nos tome 1024 valores entre 0v una determinada tensión máxima, y el reparto de esos valores ya los hemos fijado equitativamente en nuestro programa para que haga una activación progresiva de las líneas de iluminación, por tanto, aunque tengamos un rango muy bajo de iluminación con el que jugar, de 1v por ejemplo, nos va a distribuir siempre proporcionalmente la activación de las salidas.
Esa tensión de referencia, será el punto de iluminación a partir del cual, si decrece la luz ambiente, empezará a decrecer los valores obtenidos en la señal analógica de entrada.
Si ponemos esa referencia muy baja, empezará a funcionar los led con menos luz ambiente que si ponemos una señal muy alta, recordemos:
  • Más luz = Menos Resistencia = Mayor Vout
  • Menos luz = Mayor resistencia = Menor Vout
Veamos el esquema eléctrico del circuito al completo:
Arduino, LDR, Tutorial, Proyecto, Arduteka
Y aquí un a posible distribución del circuito en vuestra protoboard:
Arduino, LDR, Tutorial, Proyecto, Arduteka

Parte 3: Programando…

Este programa es algo más largo que los anteriores, pero desgranándolo poco a poco seguro que seremos capaces de entenderlo.
Primero veamos el código al completo:
?
En este programa os tiene que resultar casi todo conocido de los anteriores proyectos, si no, os recomiendo echar un vistazo alos anteriores tutoriales Arduino que tenemos en la despensa. La instrucción que no hemos visto nunca es la siguiente:
?
Con esta instrucción le estamos diciendo a nuestro Arduino, que no use su tensión de referencia por defecto (+5v) sino la que nosotros introduzcamos por el pin AREF de nuestra placa, como explicamos en la sección de hardware.
A continuación podemos ver que en el loop, lo primero que hacemos es almacenar la lectura de la entrada analógica en una variable para luego, dependiendo de los datos obtenidos, hacer una cosa u otra.
?
Y una vez obtenida la lectura empezamos la discriminación mediante sentencias if.. if else.. else.. Utilizamos if else para añadir varias condiciones seguidas, y un último else para cerrar las condiciones.
En el siguiente diagrama de flujo de programa podemos ver como actuará Arduino a nuestras comparaciones:
Arduino, LDR, Tutorial, Proyecto, Arduteka
Podríamos haber acortado alguna línea de programa con un par de cambios, pero creo que de esta manera se entiende mejor dado que estamos empezando, ya habrá tiempo de complicar el tema!
Y eso es todo por hoy!
Y si hay algún resquicio del proyecto que no acabéis de entender, escribir un comentario con vuestras dudas.
Hasta pronto!!
SI QUIERES DESCARGAR ESTE DOCUMENTO AS CLICK AQUI

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentarios:

Publicar un comentario

Objetivo Y Reclamaciones

Este blog es un portal en el cual se publican contenidos de diferentes blogs.En los cuales se les anexa al pie de pagina un enlace a su pagina original aquí encontraran toda clase de proyectos de arduino y linux
Espero tengan una gran experiencia en este blog un Gran Saludo
de parte de la organización WebCervices..
objetivo
O del grupo ArduinoTec De arduino
Cualquier reclamación o petición comunicar al Administrador principal o hacer un comentario en la publicación que se sientan inconformes en los correos
electriarias@gmail.com
y para temas de suma importancia mi correo personal
pabioarias@hotmail.com

Siguenos en Twitter

Like

Unete a nuestro grupo de facebook

Hola que tal lectores de esta pagina tan maravillosa que es arduino Tec ...Los invito a que amplíen mas sus conocimientos en Arduino y Raspberry Pi Uniéndose a La mi grupo Arduino Tec

Unete Al Grupo De facebook

Unete Al Grupo De facebook
Amplia tus conocimientos debatiendo temas de Arduino y Raspberry pi