Autor Tema: mal funcionamiento del adc pic12f675  (Leído 2668 veces)

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

Desconectado R-a-ú-l

  • PIC10
  • *
  • Mensajes: 6
mal funcionamiento del adc pic12f675
« en: 18 de Enero de 2014, 22:45:40 »
Estoy haciendo un control de temperatura con un sensor termopar que tiene una tension de 5v y conforme la temperatura aumenta dicha tension disminuye.

estoy utilizando el pic 12f675 en el cual hago 2 conversiones analogicas a digitales una de un sensor de temperatura y otra de un potenciometro
lo que hago es que cuando la tension del sensor es igual o mas pequeña que la del pot(que significa que la temp es mayor a la deseada) se encienda un ventilador mediante un transistor y un rele.

el problema que tengo es que al polarizar el pic el ventilador funciona siendo que aun la temperatura es muy bajaa y esto pasa unas 4-5 veces es decir enciende y apaga con la temperatura baja, como la temperatura va aunmentando desaparece el problema y despues de un rato todo funciona bien enciende y apaga el ventilador como debe, pero si "apago" y enciendo el sistema aun con la temperatura alta el pic presenta este problema.

supongo que el problema esta en las lecturas de sensor como señal analogica pero no estoy muy seguro, espero me puedan dar sugerencias de como solucionarlo y sobre todo espero haber si lo suficientemente claro.

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: mal funcionamiento del adc pic12f675
« Respuesta #1 en: 18 de Enero de 2014, 23:28:49 »
El código que estas probando? el esquemático que has armado? algo que podamos analizar?

Saludos
-
Leonardo Garberoglio

Desconectado R-a-ú-l

  • PIC10
  • *
  • Mensajes: 6
Re: mal funcionamiento del adc pic12f675
« Respuesta #2 en: 18 de Enero de 2014, 23:50:09 »
void main()
{
   int16 sen=0,t=0;


   setup_adc_ports(sAN0|sAN1|VSS_VDD);
   setup_adc(ADC_CLOCK_INTERNAL);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_comparator(NC_NC);
   setup_vref(FALSE);
   
while(1)
   {
   
   set_adc_channel(adc1);
   delay_us(50);
   sen=read_adc();
   delay_us(50);
   
   set_adc_channel(adc2);
   delay_us(50);
   t=read_adc();
   delay_us(50);
   
   
   if(t >= sen)
   
  {
  output_high(sal);
  delay_ms(2000);
  }
   else
   {
   output_low(sal);
   delay_ms(200);
   }
   }

}

el codigo creo es demasiado basico supongo.
sen    es la señal de entrada del sensor
t       es la señal del potenciometro

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: mal funcionamiento del adc pic12f675
« Respuesta #3 en: 19 de Enero de 2014, 10:01:36 »
no soy experto en ccs, pero he usado varias veces el adc del 12f675 y he tenido problemas que no pude resolver, he tenido que programar en xc8 para que funcione. esperemos que este no sea el caso.
yo probaría aumentar el tiempo que pones despues de cambiar de puerto adc, a 1mseg, por las dudas.
veo tambien un problema típico de comparacion de lectura de sensores y es no poner una pequeña histeresis. imaginate que cuando la temp. esta cerca del valor del pote pequeñas varkaciones en la lectura del adc harán que una vez la comparacion de a mayir que b y la proxima a la inversa, así varias veces. con el delay de 2seg puede que eso se solucione o puede que no. fijate que abajo tenes un delay de 200mseg nada mas.

para ver porqué el ventilador comienza funcionando deberiamos ver el esquemático, quiza tu transistor este como inversor... por las dudas, postea el codigo completo del micro y el esquemático, aunque sea a mano y escaneado o una foto....

saludos!
-
Leonardo Garberoglio

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: mal funcionamiento del adc pic12f675
« Respuesta #4 en: 19 de Enero de 2014, 15:03:32 »
Complementando a lo que dice elgarbe, podrías tomar varias mediciones y promediarlas o aplicar algún filtro por software, para impedir que una lectura falsa encienda el ventilador.

Saludos
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado rivale

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1707
Re: mal funcionamiento del adc pic12f675
« Respuesta #5 en: 20 de Enero de 2014, 13:11:59 »
otra sugerencia además de las que ya te hicieron es que al incio configures tus pines de entrada y salida como sea el caso y apagues el pin correspondiente a tu ventilador, tal vez cuando enciende tu pic ese pin esta en alto.
"Nada es imposible, no si puedes imaginarlo"