Autor Tema: Comando COUNT en PBP PIC 16F84  (Leído 8397 veces)

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

Desconectado pabloavilad

  • PIC10
  • *
  • Mensajes: 6
Comando COUNT en PBP PIC 16F84
« en: 19 de Octubre de 2006, 17:45:59 »
Hola, soy bastante nuevo en esto, manejo bastante bien el C / C++ pero se me dio por largarme en Basic para programar los pic. Hice varios prototipos con el 16F84 y anda todo OK, pero ahora necesito tomar la frecuencia de una señal de entre 10 Hz y 50 Hz y lamentablemte no puedo mostrarla. El PIC lo uso como contador de pulsos y ademas para habilitar la multiplexacion de los displays 7 segmentos. Uso un CD4511 para convertir BCD a 7 segmentos. Un BC547 para habilitar los 2 display catodo comun. El problema que armandolo asi y programando asi, en el display solo veo la informacion entrecortada, solo 12mS y luego tengo que esperar a que el pic vuelva a contar los pulsos por 60 mS mas. Necesito si alguien me puede ayudar con una rutina que consuma menos tiempo de muestreo, o que en lugar de usar count, mida el tiempo entre pulso y pulso y determine el periodo del mismo para invertirlo y obtener la frecuancia. Es para medir las rpm de un motor a explosion (de 600 RPM a 2500 aprox.)

rpm var word

TRISA = %00000000   ´porta salida
TRISB = %11111100   ´portb 0 y 1 salida

inicio:

count portb.2,60,rpm   ´contar del portb.2 los pulsos en 120ms poner en rpm

high portb.0                ´habilitar transistor de la unidad de 7 segmentos
porta = rpm dig 0        ´colocar primer digito en bus del CD 4511
pause 6                      ´esperar que los leds del 7 segmento reaccionen
low portb.0                 ´apagar 7 segmento

high portb.1               ´habilitar transistor de la decena de 7 segmentos
porta = rpm dig 1       ´colocar primer digito en bus del CD 4511
pause 6                     ´esperar que los leds del 7 segmento reaccionen
low portb.1                ´apagar 7 segmento

goto inicio
end

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #1 en: 20 de Octubre de 2006, 00:30:16 »
Tal vez este articulo te acerque a algo que necesitas o te brinde una idea. Aunque no usa el count sino el pulsin que mide la duracion de un pulso de un IR.

Suerte
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado pabloavilad

  • PIC10
  • *
  • Mensajes: 6
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #2 en: 20 de Octubre de 2006, 09:53:25 »
Gracias Navaismo, tengo otra bateria de dudas,
Por lo que entendí en el manual de PBP creo que PULSIN mide la duracion de un flanco del pulso y no de todo el pulso, será asi?
En el link que me pasaste no veo que configuren el PIC con un XTAL de 4 MHZ, ya esta incluido en el micro? El 16f628 tambien lo tiene incluido? Saludos y gracias.

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #3 en: 20 de Octubre de 2006, 12:33:51 »
Asi es el Pulsin mide la duracion de un estado, tal como lo entendiste, en el proyecto usan el oscilador interno del pic que se supone trabaja igual a 4MHZ y si  el 16f628 tambien trae oscilador interno.

Tambien se configura con @ DEVICE INTRC_OSC en PBP
« Última modificación: 20 de Octubre de 2006, 12:48:27 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado pabloavilad

  • PIC10
  • *
  • Mensajes: 6
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #4 en: 20 de Octubre de 2006, 16:03:50 »
Hola, muchas gracias navaismo!
que opinas tu si hago el programa para usar PULSIN midiendo ambos flancos de la señal y luego los sumo. Se podrá hacer? Se puede discriminar si el pulso de PULSIN es un 1 o 0?
Si no funciona probablemente use 4 + 4 bits y utilice otro CD4511 entonces no multiplexo y los displays los mantengo siempre encendidos.
Ó quizas utilice un LCD que por lo que estuve buceando en la web es un poco mas sencillo manejar y consume menos bus
saludos !


Desconectado Mario

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 873
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #5 en: 20 de Octubre de 2006, 16:11:51 »
Eso depende.

Si tu proyecto debe contener Displays, entonces no pero, si puedes elejir, es recomendable el LCD.

Se pueden hacer técnicas de multiplexeo, inclusive no necesitas los convertidores de BCD a siete segmentos:
http://www.todopic.com.ar/foros/index.php?topic=3613.15
http://www.todopic.com.ar/foros/index.php?topic=3613.30

Aquí se muestra una técnica de multiplexeo pero está en ensamblador.
http://www.elecdesign.com/Articles/Index.cfm?ArticleID=2476

Un LCD te consumirá 6 líneas del µicro (mínimo) y la ventaja es que tienes la opción de mostrar mensajes.

Lo único malo es que el LCD debe tener "Backlight" para que pueda competir con un display.
« Última modificación: 20 de Octubre de 2006, 16:17:02 por Mario »
La buena administración es utilizar el sentido común y la regla de oro; aunque el sentido común no es tan común como quisiéramos que fuera y, quien tiene el oro, hace las reglas.
George Terry

"A loser will defeat a genius with hard work"
Rock Lee

Desconectado navaismo

  • Jubilado Todopic
  • PIC24H
  • ****
  • Mensajes: 1973
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #6 en: 20 de Octubre de 2006, 16:19:09 »
En si lo que quieres hacer es contar las rpm de un motor o algo??? por que no adaptas un optointerruptor  al pic.

Aqui hay algo sobre un tacometro y Aqui y ambos estan como lo empezaste con count, en si cual es el problema de usar el count.

y este ejemplo esta multiplexado con PBP para 4 displays (cortesia de LordLafebre)
« Última modificación: 20 de Octubre de 2006, 16:27:23 por navaismo »
"Mi tercer deseo, que otra cosa podría ser, poner un final a todo el sufrimiento, que sólo con mi propia extinción el planeta podrá ser aliviado. Pobre de mí, Si tuviera tres deseos hoy, la elección no sería dificil para mí, Sólo tres deseos serían suficientes, No tendría uso para más."

"He sido un hombre que busca y aun lo sigo siendo, pero ya no busco en las estrellas y en los libros, sino en las enseñanzas de mi sangre."

Desconectado pabloavilad

  • PIC10
  • *
  • Mensajes: 6
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #7 en: 20 de Octubre de 2006, 17:20:52 »
El comando count para obtener buena resolucion para medir 10 Hz me obliga a detener al pic por alrededor de 120 mS. En Ese tiempo no hace otra cosa entonces el proceso de multiplexeo de displays se frena, apagandose los mismos. (ya que los prendo de a uno por vez muy rápido para utilizar los 4 bits del bcd y los tres bits para multiplexar). Creo que voy a intentar lo que propone L FRINO para usar PULSIN con una entrada a travez del 4013 que me va a servir para que los pulsos midan "igual" en ambos flancos. O usar 3 cd4511 y no multiplexzar nada solo refrescar los valores. (me va a consumir 12 pins del 16f84. Quizas me pase a un 16F628 para tener mas pines utiles. Luego posteo los resultados que obtenga esta noche, saludos

Desconectado Papalote

  • PIC10
  • *
  • Mensajes: 11
Re: Comando COUNT en PBP PIC 16F84
« Respuesta #8 en: 24 de Abril de 2009, 05:36:57 »
PULSIN gpio.3,1,W1
PULSIN gpio.3,0,W2
W3 = w1 + W2

Medis el pulso en estado alto y en estado bajo y los sumas, listo tenes la duracion de un ciclo completo.