Autor Tema: ayuda con ldr  (Leído 3671 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado condenao

  • PIC10
  • *
  • Mensajes: 5
ayuda con ldr
« en: 13 de Noviembre de 2008, 20:09:43 »
hola

veréis, tengo que hacer un proyecto para la universidad, y lo que tengo que hacer es iluminar mas o menos leds (3 como máximo) en función de la luz solar que se reciba (si hay luz solar, no se necesitaría ningún led, y así). la cosa es que no se ni por donde empezar, y la filosofía del profesor es la de buscaros la vida, que es lo que os vais a encontrar ahí fuera. y buscando he llegado hasta aquí.

se que necesito una resistencia junto al ldr, pero no tengo ni idea de cuantos omnios debe ser. la demostración sera en un aula sin ventanas, y con bastante luz, y si quiero que ahí dentro, pueda variar lo que el ldr reciba, pues supongo que dependerá de la resistencia que le ponga...

no se, espero que podáis echarme un cable


1 saludo

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: ayuda con ldr
« Respuesta #1 en: 13 de Noviembre de 2008, 20:15:57 »
Bienvenido condenao...
 ¿tienes que hacerlo con un microcontrolador? ¿o tienes que hacerlo obligatorioamente sin usar un microcontrolador?

Desconectado condenao

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda con ldr
« Respuesta #2 en: 13 de Noviembre de 2008, 20:39:59 »
hola, gracias por responder tan rápido

tengo que hacerlo con un 16f876

Desconectado Javicho

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 570
Re: ayuda con ldr
« Respuesta #3 en: 13 de Noviembre de 2008, 20:44:11 »
Para algo asi no se requiere pic, basta un transistor o en todo caso un opamp y listo, si te obligan a usar pic, pues conectalo al modulo comparador de cualquier pic que lo tenga y al llegar al nivel enciende el o los leds que necesites.

Javicho.

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: ayuda con ldr
« Respuesta #4 en: 13 de Noviembre de 2008, 21:21:15 »
Que tal condenao!
Mira mide el valor de la ldr cuando esta tapada (no le incide luz) debe ser de varios kilo ohm y luego cuando le pegue bastante luz, asi puedes estimar el valor de la resistencia que deberas colocar en serie  :mrgreen:
Seria de ayuda saber los valores sino para probar coloca una resistencia de 1kohm en serie con la ldr, creas un divisor de voltaje, coloca el positivo de la fuente a la ldr el otro extremo a la resistencia de 1k y el otro terminal a tierra, luego mide la caida de tension que se produce en la resistencia de 1k cuando tienes luz y luego cuando esta tapada la ldr asi puedes estimar tres voltajes dependiendo de la luz.
Despues utiliza el adc del pic para leer esos voltajes, de los cuales tomaras solo tres para iluminar los led, asi por ejemplo si el voltaje > 1v enciendo led1, si el voltaje es > 3 enciendo led1 y 2 y si el voltaje es 5V enciendo los tres led  :mrgreen:

No se si me explique o si lo quieres hacer asi.
La otra forma es utilizando comparadores que posee el pic16f876A y tambien seria valido  :mrgreen:

Bueno y nos diras que resolvistes hacer (pero a mi me gusta lo del adc  :D)

Saludos

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: ayuda con ldr
« Respuesta #5 en: 13 de Noviembre de 2008, 21:26:31 »
Bien condenao, y ¿qué lenguaje de programación piensas utilizar para programar el PIC: Basic/C/ASM?

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda con ldr
« Respuesta #6 en: 13 de Noviembre de 2008, 23:17:06 »
Hola.

Los LDR responden logaritmicamente en el valor a la resistencia.

Saludos
El papel lo aguanta todo

Desconectado condenao

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda con ldr
« Respuesta #7 en: 14 de Noviembre de 2008, 16:28:46 »
hola de nuevo

el lenguaje que utilizamos para programar los pics es C

lo que no se, es como tengo que conectar las 2 patitas del LDR, ni como puedo averiguar los resultados que capta este

no se, no tengo mucha idea, o ninguna.


1 saludo y gracias a todos

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: ayuda con ldr
« Respuesta #8 en: 14 de Noviembre de 2008, 16:33:03 »
Hola.

Debes hacerte un divisor de tension, asi que conectas en serie el LCR con otra resistencia y conectas la pata que va unida a la otra resistencia al ADC del PIC.

Saludos
El papel lo aguanta todo

Desconectado jfmateos2

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3145
Re: ayuda con ldr
« Respuesta #9 en: 14 de Noviembre de 2008, 17:08:50 »

Desconectado RALF2

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2060
Re: ayuda con ldr
« Respuesta #10 en: 15 de Noviembre de 2008, 00:33:07 »
Que tal amigos!
Condenao te explique como era, es super sencillo mira aqui para que lo tengas mas claro  :D

Saludos

Desconectado condenao

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda con ldr
« Respuesta #11 en: 17 de Noviembre de 2008, 16:06:21 »
muchas gracias a todos

ya tengo claro como tengo que hacer el montaje, pero, como habéis comentado algo de que se puede hacer sin necesidad de ningún pic, me gustaría probarlo antes de grabar el pic, para saber si todo marcha bien

como puedo probarlo sin pic ?

y ya que estamos, algún programa muy sencillo (pero que MUY sencillo) donde pueda entender que código tengo que usar para coger y comparar la señal del ldr ??
« Última modificación: 17 de Noviembre de 2008, 18:20:05 por condenao »

Desconectado condenao

  • PIC10
  • *
  • Mensajes: 5
Re: ayuda con ldr
« Respuesta #12 en: 06 de Enero de 2009, 18:52:27 »
hola a todos

ya tengo el montaje y todo funcionando, solo que ahora necesito hacer una conversion de analogico a digital, y me esta dando algunos errores el codigo

os dejo el codigo que tengo para ver si podeis echarme una mano por favor

Código: [Seleccionar]
List p=16F876 ;Tipo de procesador
include "P16F876.INC" ;Definiciones de registros internos

org 0x00 ;Vector de Reset
goto Inicio

org 0x05 ;Salva el vector de interrupción

Inicio clrf PORTA ;Borra los latch de salida
bcf STATUS,RP0 ;Selecciona banco 0
movlw b'00000001' ;solo configura como entrada la RA0
movwf TRISA ;Puerta A se configura como entrada
bsf STATUS,RP0 ;Selecciona banco 1
movlw b'00000000' ;pongo el RA0 como entrada analogica, ultimos 4 bits como sensor es analogico entrada debe ser analogico
movwf ADCON1 ;configurar la pata de entrada RA0 para poner A/D
bcf STATUS,RP0 ;Selecciona banco 0
movlw b'01000001' ;seleccionar reloj de conversion valen todos menos valor= 2*Tosc
movwf ADCON0 ;seleccionar canal de entrada A/D, activar el Conversor A/D,  Activar ADON
bcf PIR1,ADIF ;Borra el ADIF
bsf STATUS,RP0 ;Selecciona banco 1
bsf PIE1,ADIE ;Poner 1 bit ADIE
bsf INTCON,GIE ;Habilitar GIE
  bsf INTCON,PEIE ;Habilitar PEIE
sleep ;tiempo de espera para q transcurra el tiempo de adquisicion
bcf STATUS,RP0 ;Selecciona banco 0
bsf ADCON0,GO ;Activar GO/DONE#, Pero solo pongo la accion GO q es la q va hacer Iniciar conversion A/D
btfsc ADCON0,GO
goto $-1
;bcf STATUS,RP0 ;Selecciona Banco0
;leer ADRESH ;leer el resultado en ADRESH
;leer ADRESL ;leer el resultado en ADRESL

bcf PIR1,ADIF ;Borra el ADIF
goto Inicio
end ;Fin del programa fuente

el codigo lo he conseguido por ahi, asi que no se si tendra alguna barbaridad o no

hasta cierto punto consigo seguirlo, pero llega un momento en el que me pierdo


1 saludo y gracias