TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: jhozate en 18 de Octubre de 2018, 10:48:34

Título: Duda sencilla Histéresis
Publicado por: jhozate en 18 de Octubre de 2018, 10:48:34
hola a todos , tengo una lectura de adc para una fotoresistencia, cuando esta iluminada la conversión alcanza valores(decimal ) inferiores a 50, sin presencia de luz directa la conversión da superior a 400, tengo una histéresis como se muestra a continuacion, TH_OFF = 300  TH_ON= 100  y luminaria.old_state=ON en condiciones de inicializacion
Código: C
  1. if(luminaria.adc_ldr > TH_OFF){
  2.                         luminaria.state = OFF;
  3.                 }
  4.                 else if(luminaria.adc_ldr < TH_ON){
  5.                         luminaria.state = ON;
  6.                 }
  7.  
  8.                 if(luminaria.old_state != luminaria.state){
  9.                         luminaria.old_state = luminaria.state;
  10.                         send_fg = 1;
  11.                 }
mi duda es qué hacer si por alguna razón la conversión este dentro de la ventana de histéresis? o esto debería asegurarlo la instalación física del sistema?
Título: Re:Duda sencilla Histéresis
Publicado por: Eduardo2 en 18 de Octubre de 2018, 11:40:58
....}
mi duda es qué hacer si por alguna razón la conversión este dentro de la ventana de histéresis? o esto debería asegurarlo la instalación física del sistema?

La ventana de histéresis se ajusta de acuerdo a límites de iluminación que fijás vos . Normalmente es una ventana generosa para evitar falsos apagados cuando se enciende una luz.  Es el instalador quien debe tomar las precauciones correspondientes a ubicación, orientación,apantallamiento...

Si por limitaciones en la instalación las variaciones de iluminación fueran menores que la ventana o muy extremos no queda otra que hacer los umbrales ajustables.
Título: Re:Duda sencilla Histéresis
Publicado por: Picuino en 18 de Octubre de 2018, 11:45:38
No entiendo la pregunta.
Los valores dentro de la ventana se ignoran. En eso consiste la histéresis, ignorar valores dentro de un rango y eso es lo que hace tu programa.
Título: (solucionado)Duda sencilla Histéresis
Publicado por: jhozate en 18 de Octubre de 2018, 11:56:59
si, lo que pasa es que en un momento cambiaron las condiciones de luz tal que la conversión quedo dentro de ventana de histéresis, apagaron la lampara y en un dashboard se seguía notificando como encendida, tal como lo dice Eduardo es un tema de instalación.
Gracias ;-)
Título: Re:Duda sencilla Histéresis
Publicado por: Robert76 en 18 de Octubre de 2018, 12:15:33
Hola, además de añadir histéresis, en mi caso cuándo hice algo similar, le añadí la función de retardo a la conexión y también a la desconexión. Con ésto salvé muchos problemas.
Título: Re:Duda sencilla Histéresis
Publicado por: Picuino en 18 de Octubre de 2018, 13:07:30
También puedes intentar detectar flancos. Cambios grandes y duraderos en el nivel de luz.
Título: Re:Duda sencilla Histéresis
Publicado por: KILLERJC en 18 de Octubre de 2018, 16:12:17
Suponiendo que es para una luz de interior.

Lo que haria es buscar una habitacion, supongamos que tenes unicamente una ventana y la puerta esta cerrada. Abris la ventana para que entre luz solar y se pueda ver bien adentro.
A partir de aca comenzas a cerrar poco a poco la ventana dejando cada ves menos iluminacion, cuando llegue al nivel que vos queres que se active la luz, lees el valor del ADC y lo anotas, este valor es tu valor de ON (encendido). Luego comenzas a abrir lentamente la ventana hasta que consideres que la iluminacion ( la solar ) sea suficiente como para trabajar sin necesidad de luz artificial. Lees tu ADC y ahi tenes tu valor de OFF, seguramente tengas una diferencia entre estos valores que va a ser tu histeresis. De no poseer mucha diferencia vas a tener que buscar la forma de "ampliar" la lectura donde mas te interesa.

Cambies donde cambies la localizacion de dispositivo, va a seguir actuando a los mismos niveles de luz que definiste en ese momento.
Título: Re:Duda sencilla Histéresis
Publicado por: Picuino en 18 de Octubre de 2018, 18:10:26
Si es para detectar un cambio, como la detección de un objeto, es mejor utilizar rangos variables.

Vas calculando el nivel medio y esa es la referencia. Si sube por encima del valor medio cierta cantidad durante cierto tiempo, entonces detectas objeto.
Esos dos valores tienes que ajustarles.
Título: Re:Duda sencilla Histéresis
Publicado por: jhozate en 18 de Octubre de 2018, 19:36:03
Es para detectar correcto encendido de luminarias, como las de los postes en las calles y centros deportivos. Al final he asegurado la instalación de la fotocelda para que su valor baje a casi cero cuando la luz esta encendida. Con esto no hay problema en la detección de encendido.

Gracias