En este proyecto vamos a interconectar LDR con microcontrolador ATMEGA8, y con esto podemos medir INTENSIDAD DE LUZ en el área. En ATMEGA8, vamos a utilizar la función ADC (conversión analógica a digital) de 10 bits para medir la intensidad de la luz.
Am LDR es un transductor que cambia su resistencia cuando la LUZ incide sobre su superficie cambia. El sensor LDR está disponible en diferentes tamaños y formas.
Los LDR están hechos de materiales semiconductores para permitirles tener sus propiedades sensibles a la luz. Se utilizan muchos tipos de materiales, pero uno que es popular es el SULFURO DE CADMIO (CdS). Estos LDR o FOTO REISTORES funcionan según el principio de "Fotoconductividad". Ahora bien, lo que dice este principio es que cuando la luz incide sobre la superficie del LDR (en este caso) aumenta la conductancia del elemento o, en otras palabras, la resistencia del LDR disminuye cuando la luz incide sobre la superficie del LDR. Esta propiedad de disminución de la resistencia para el LDR se logra porque es una propiedad del material semiconductor utilizado en la superficie. Los LDR se utilizan la mayoría de las veces para detectar la presencia de luz o para medir la intensidad de la luz.
Hay diferentes tipos de LDR como se muestra en la figura anterior y cada uno tiene diferentes especificaciones. Normalmente, un LDR tendrá 1MΩ-2MΩ en oscuridad total, 10-20KΩ a 10 LUX, 2-5KΩ a 100 LUX. El gráfico de resistencia típica a LUX de un LDR se muestra en la figura.
Como se muestra en la figura anterior, la resistencia entre los dos contactos del sensor disminuye con la intensidad de la luz o la conductancia entre dos contactos del sensor aumenta.
Ahora, para convertir este cambio de resistencia en un cambio de voltaje, usaremos un circuito divisor de voltaje. En esta red resistiva tenemos una resistencia constante y otra resistencia variable. Como se muestra en la figura, R1 aquí es una resistencia constante y R2 es un sensor de FUERZA que actúa como una resistencia.
El punto medio de la rama se toma para medir. Cuando la resistencia R2 cambia, Vout cambia con ella linealmente. Entonces con esto tenemos un voltaje que cambia con el peso.
Ahora, lo importante a tener en cuenta aquí es que la entrada que toma el controlador para la conversión de ADC es tan baja como 50 µAmp. Este efecto de carga del divisor de voltaje basado en la resistencia es importante ya que la corriente extraída de Vout del divisor de voltaje aumenta el porcentaje de error aumenta, por ahora no debemos preocuparnos por el efecto de carga.
Lo que vamos a hacer aquí es tomar dos resistencias y formar un circuito divisor de modo que para un Vin de 25 voltios, obtengamos un Vout de 5 voltios. Entonces, todo lo que tenemos que hacer es multiplicar el valor de Vout por “5” en el programa para obtener el voltaje de entrada real.
Componentes
Hardware: ATMEGA8, fuente de alimentación (5v), PROGRAMADOR AVR-ISP, JHD_162ALCD (16 * 2LCD), condensador de 100uF, condensador de 100nF (5 piezas), resistencia de 10KΩ, LDR (resistencia dependiente de la luz).
Software: Atmel studio 6.1, progisp o flash magic.
Diagrama de circuito y explicación de trabajo
En el circuito PORTD de ATMEGA8 está conectado al puerto de datos LCD. En 16 * 2 LCD hay 16 pines en total si hay una luz de fondo, si no hay luz de fondo, habrá 14 pines. Uno puede encender o dejar los pines de luz de fondo. Ahora en los 14 pines hay 8 pines de datos (7-14 o D0-D7), 2 clavijas de alimentación de alimentación (1 y 2 o VSS y VDD o GND y + 5V), 3 rd pin para el control de contraste (Vee-controla cómo de espesor los caracteres deben estar mostrado) y 3 pines de control (RS & RW & E)
En el circuito, se puede observar que solo he sacado dos pines de control. El bit de contraste y READ / WRITE no se utilizan con frecuencia, por lo que pueden cortocircuitarse a tierra. Esto coloca a la pantalla LCD en el modo de mayor contraste y lectura. Solo necesitamos controlar los pines ENABLE y RS para enviar caracteres y datos en consecuencia.
Las conexiones para LCD se dan a continuación:
PIN1 o VSS ------------------ tierra
PIN2 o VDD o VCC ------------ + 5v de potencia
PIN3 o VEE --------------- tierra (brinda el mejor contraste máximo para un principiante)
PIN4 o RS (Selección de registro) --------------- PB0 de uC
PIN5 o RW (lectura / escritura) ----------------- tierra (pone la pantalla LCD en modo lectura facilita la comunicación para el usuario)
PIN6 o E (habilitado) ------------------- PB1 de uC
PIN7 o D0 ----------------------------- PD0 de uC
PIN8 o D1 ----------------------------- PD1 de uC
PIN9 o D2 ----------------------------- PD2 de uC
PIN10 o D3 ----------------------------- PD3 de uC
PIN11 o D4 ----------------------------- PD4 de uC
PIN12 o D5 ----------------------------- PD5 de uC
PIN13 o D6 ----------------------------- PD6 de uC
PIN14 o D7 ----------------------------- PD7 de uC
En el circuito se puede ver que hemos usado comunicación de 8 bits (D0-D7) sin embargo esto no es obligatorio, podemos usar comunicación de 4 bits (D4-D7) pero con comunicación de 4 bits el programa se vuelve un poco complejo. Entonces, a partir de la mera observación de la tabla anterior, estamos conectando 10 pines de LCD al controlador en el que 8 pines son pines de datos y 2 pines para control.
El voltaje en R2 no es completamente lineal; será ruidoso. Para filtrar el ruido, los condensadores se colocan a través de cada resistencia en el circuito divisor como se muestra en la figura.
En ATMEGA8, podemos dar entrada Analógica a cualquiera de los CUATRO canales de PORTC, no importa qué canal elijamos ya que todos son iguales. Vamos a elegir el canal 0 o PIN0 de PORTC. En ATMEGA8, el ADC tiene una resolución de 10 bits, por lo que el controlador puede detectar un cambio mínimo de Vref / 2 ^ 10, por lo que si el voltaje de referencia es 5V obtenemos un incremento de salida digital por cada 5/2 ^ 10 = 5 mV. Entonces, por cada incremento de 5mV en la entrada, tendremos un incremento de uno en la salida digital.
Ahora necesitamos configurar el registro de ADC según los siguientes términos:
1. En primer lugar, debemos habilitar la función ADC en ADC.
2. Aquí obtendremos un voltaje de entrada máximo para la conversión de ADC de + 5V. Entonces podemos configurar el valor máximo o la referencia de ADC a 5V.
3. El controlador tiene una función de conversión de disparador que significa que la conversión de ADC se lleva a cabo solo después de un disparador externo, ya que no queremos que tengamos que configurar los registros para que el ADC se ejecute en modo de ejecución libre continuo.
4. Para cualquier ADC, la frecuencia de conversión (valor analógico a valor digital) y la precisión de la salida digital son inversamente proporcionales. Entonces, para una mejor precisión de la salida digital, tenemos que elegir una frecuencia menor. Para un reloj ADC normal, estamos configurando la preventa de ADC al valor máximo (2). Dado que estamos usando el reloj interno de 1 MHZ, el reloj de ADC será (1000000/2).
Estas son las únicas cuatro cosas que necesitamos saber para comenzar con ADC.
Las cuatro características anteriores se establecen mediante dos registros,
ROJO (ADEN): Este bit debe establecerse para habilitar la función ADC de ATMEGA.
AZUL (REFS1, REFS0): Estos dos bits se utilizan para configurar el voltaje de referencia (o voltaje de entrada máximo que le vamos a dar). Como queremos tener un voltaje de referencia de 5V, REFS0 debe establecerse, según la tabla.
AMARILLO (ADFR): Este bit debe establecerse para que el ADC funcione continuamente (modo de ejecución libre).
ROSA (MUX0-MUX3): Estos cuatro bits son para indicar el canal de entrada. Dado que vamos a usar ADC0 o PIN0, no necesitamos establecer ningún bit como se indica en la tabla.
MARRÓN (ADPS0-ADPS2): estos tres bits son para configurar el prescalar para ADC. Como estamos usando un prescalar de 2, tenemos que establecer un bit.
VERDE OSCURO (ADSC): este bit se establece para que el ADC inicie la conversión. Este bit puede desactivarse en el programa cuando necesitemos detener la conversión.
Entonces, con la resistencia de LDR en la pantalla LCD de 16x2, podemos combinarla con el gráfico LUX para obtener la intensidad de la luz.