Autor Tema: CONTADOR DE PULSOS O FRECUENCIA  (Leído 2884 veces)

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

Desconectado nestor-06

  • PIC10
  • *
  • Mensajes: 4
CONTADOR DE PULSOS O FRECUENCIA
« en: 30 de Junio de 2016, 14:35:59 »
Buenas tardes, soy nuevo en el mundo de la programación estoy dando mi primero paso, recurro a ustedes a ver si pueden ayudarme con un proyecto, tengo 555 en su configuración astable pero con un sensor de humedad capacitivo entre los pines 2 y 6, todo sabemos el funcionamiento del 555, la cuestión es con el sensor de humedad en esa configuración del 555 la frecuencia (o pulso) de salida varia proporcionalmente a los cambios en % de HR (humedad relativa), es decir cada vez que la frecuencia aumenta o disminuye en la salida (ping 3) del 555 quiere decir que en el ambiente hubo cambios en los porcentaje de humedad relativa del ambiente.
Ahora bien, dicho esto el proyecto consiste en que utilizando el PIC16F877A debo transformar esa frecuencia (o pulso ) en los porcentajes de humedad, creo que debo utilizar el timer1 para que me cuente los pulsos en un determinado tiempo, los rango de salida de frecuencia  van desde 7642 hz a 6500 hz.
Como haría para que el micro me cuente los pulsos que ve en un ping en un segundo?

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:CONTADOR DE PULSOS O FRECUENCIA
« Respuesta #1 en: 30 de Junio de 2016, 15:04:50 »
El sensor de humedad es una simple resistencia ? O da una voltaje de salida? Si es asi se puede usar el ADC y no incorporar el 555. Y simplificaria muchisimo la operacion

Si aun asi quisieras seguir por ese camino de contar los pulsos, entonces tenes 2 formas:

1era-

poner la entrada en el pin designado para el Timer1, configurarlo para que reciba pulsos externos.

Eso va a aumentar en 1 por cada pulso que llegue, el problema es que necesitamos ahora un espacio de tiempo. Por lo cual vas a necesitar de otro timer y configurarlo para que cada X segundos tome el valor y lo procese.

Supongamos que el pulso entra directo, es decir con preescaler 1:1, Y que tenemos otro timer que cada 200ms activa una interrupcion en la cual leemos el Timer1 y lo ponemos a 0.
Ese valor multiplicado por 5 seria tu frecuencia.

Un poco complicado y poco preciso. Ademas 2 timers solo para eso

2da-

Usar el CCP, en modo capture, El timer1 que reciba la señal del oscilador,
Supongo que medimos la parte en alto. Comenzariamos con el CCP configurado en flanco ascendente, entra a la interrupcion del CCP guardamos el valor que se copio del Timer1 que ahora estan en los registros del CCP. Cuando entre nuevamente, usamos el nuevo valor guardado por el CCP y el valor que guardamos antes. La diferencia es el tiempo entre los 2 flancos o todo un ciclo o lo que es igual a la cantidad de ciclos de instrucciones * Preescaler. Asi conoces el periodo de la señal, y por ende la frecuencia.

Uso timer y CCP, y mas simple de realizar.

Desconectado nestor-06

  • PIC10
  • *
  • Mensajes: 4
Re:CONTADOR DE PULSOS O FRECUENCIA
« Respuesta #2 en: 30 de Junio de 2016, 19:25:02 »
Gracias  KILLERJC por tu respuesta, específicamente el sensor de humedad es el HS1101 puedes ver el datassheet aquí (https://www.parallax.com/sites/default/files/downloads/27920-Humidity-Sensor-Datasheet.pdf), la recomendación del fabricante es usar el sensor con un 555 en su configuración astable, el fabricante da datos especificos como las resistencias y potenciometros a usar para que funcione, osea no hay otra opción.
Creo que la opción que mencionas para trabajarlo con el timer1 y timer0 es la mas factible para mi por ahora porque honestamente "CCP" no se lo que es, el proyecto mas adelante lo puedo rediseñar, osea que después que vea y domine otras herramientas lo puedo modificar, es para un prototipo universitario.
Honestamente estoy utilizando este sensor porque fue el único que conseguí en mi país Venezuela, se que hay otros mejores y mas faciles de interactuar con ellos pero me toca trabajar con lo que tengo a la mano.

 Voy a ver como puedo configurar y darle forma a tu idea amigo, yo utilizo Mplabx y Proteus para hacer pruebas virtuales, ojala pueda : ).
Gracias KILLERJC.

Desconectado Picuino

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:CONTADOR DE PULSOS O FRECUENCIA
« Respuesta #3 en: 30 de Junio de 2016, 19:55:22 »
Para tener precisión necesitas trabajar con un oscilador de cuarzo.
Debes contar con un timer los pulsos de reloj y con otro contador los pulsos. Empiezas la cuenta cuando llegue un pulso y terminas la cuenta cuando llegue otro pulso al cabo de un segundo.
La frecuencia la calculas dividiendo las dos cantidades (pulsos / ciclos de reloj) y multiplicando por los ciclos de reloj que hay en un segundo.

Saludos.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:CONTADOR DE PULSOS O FRECUENCIA
« Respuesta #4 en: 30 de Junio de 2016, 19:56:27 »
Citar
la recomendación del fabricante es usar el sensor con un 555 en su configuración astable, el fabricante da datos especificos como las resistencias y potenciometros a usar para que funcione, osea no hay otra opción.

Si la hay, es una capacidad variable, podrias medir el tiempo de carga de la misma, el tiempo seria proporcional a la capacidad y por ende con unas 3 resistencias + sensor, y tal ves usando 2 pines tengas tu medicion, el problema esta en que tenes que ponerte a hacer "un poco" de formulas nomas.

Citar
Creo que la opción que mencionas para trabajarlo con el timer1 y timer0 es la mas factible para mi por ahora porque honestamente "CCP" no se lo que es

No hay problema usa lo que tengas a mano e ingeniatela, yo te daba una solucion, vos podes hacerlo como desees.

---------------------------------

Alli Picuino te dio otra idea

Desconectado nestor-06

  • PIC10
  • *
  • Mensajes: 4
Re:CONTADOR DE PULSOS O FRECUENCIA
« Respuesta #5 en: 06 de Julio de 2016, 00:08:39 »
Citar
la recomendación del fabricante es usar el sensor con un 555 en su configuración astable, el fabricante da datos especificos como las resistencias y potenciometros a usar para que funcione, osea no hay otra opción.

Si la hay, es una capacidad variable, podrias medir el tiempo de carga de la misma, el tiempo seria proporcional a la capacidad y por ende con unas 3 resistencias + sensor, y tal ves usando 2 pines tengas tu medicion, el problema esta en que tenes que ponerte a hacer "un poco" de formulas nomas.

Citar
Creo que la opción que mencionas para trabajarlo con el timer1 y timer0 es la mas factible para mi por ahora porque honestamente "CCP" no se lo que es

No hay problema usa lo que tengas a mano e ingeniatela, yo te daba una solucion, vos podes hacerlo como desees.

---------------------------------

Alli Picuino te dio otra idea


Hola amigos, disculpen que he estado desconectado para publicar avances con respecto a las ideas que me dieron,  bueno, configure el timer1 como contador para que reciba los pulsos de la salida del circuito de humedad, configure el Timer0 para que cada 1 segundo me  lea cuantos pulsos recibe el Timer1, creo que asi te entendí la idea, hasta ahí vamos bien, ahora la  llegue a un escollo porque como convierto esos pulsos a porcentajes de humedad?, verifique  atravez de el coeficiente de correlación de pearson, haber si la respuesta del sensor era lineal y poder aplicar una ecuación sencilla, el coeficiente de correlación de pearson me dice que puedo aplicar la ecucion de recta, pero no he podido, alguna idea de como convertir esos pulsos a %HR?