Autor Tema: Cuenta Revoluciones con LCD y mas  (Leído 3706 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado rabanisa

  • PIC10
  • *
  • Mensajes: 12
Cuenta Revoluciones con LCD y mas
« en: 11 de Enero de 2012, 16:16:44 »
Buenas noches:

Estoy realizando un proyecto que consiste de momento un cuenta RPM para ciclomotor. Algo llevo en marcha y aqui les pongo un video.
Es mi primer aporte a este gran foro del que tantisima  ayuda he recibido. Mi idea es ir ampliandolo poco a poco. Espero que les guste
y conforme valla teniendo novedades las ire colocando. En el video se ve junto a otro cuenta RPM comercial que tengo como referencia para ver
que la medida es mas o menos correcta. Al tener diferentes velocidades de refresco no marcan igual, pero a un regimen de RPM mantenido,
la lectura se iguala.

Este es en una Derbi Variant:

 

Este es en una Gilera Runner

« Última modificación: 14 de Enero de 2012, 06:52:06 por rabanisa »

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Cuenta Revoluciones con LCD y mas
« Respuesta #1 en: 11 de Enero de 2012, 21:09:44 »
el refresco lo veo un poco lento, cuando pone 5.0 son 500rpm no??

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Cuenta Revoluciones con LCD y mas
« Respuesta #2 en: 12 de Enero de 2012, 02:43:20 »
¿Haces la lectura de las RPM desde la bobina de alta de la bujía?

Desconectado rabanisa

  • PIC10
  • *
  • Mensajes: 12
Re: Cuenta Revoluciones con LCD y mas
« Respuesta #3 en: 12 de Enero de 2012, 04:53:36 »
Buenos dias:

El refresco quizas es un poco lento (en el mio es cada segundo), pero al ser lcd  lo pongo mas rapido no se aprecian bien las lecturas. En cuanto al pulso que cojo para tener la informacion esta cogido de la bujia, pero no directamente si no asi:

http://Http://www.sportdevices.com/rpm_readings/index.htm

El del tipo capacitivo.

Desconectado rina

  • PIC10
  • *
  • Mensajes: 45
Re: Cuenta Revoluciones con LCD y mas
« Respuesta #4 en: 13 de Enero de 2012, 13:27:46 »
la verdad que tambien me e fijado que tienes decimales y no los usas. me imajino que el retraso lo deves de tener l contar la cantidad de pulsos en un segundo. me equivoco?
de hay sacas las revoluciones. mas un muy ligero tiempo que se necesita para refrescar la pantalla lcd..  por que no pruevas a usar  tmr0 y medir el tiempo que tarda en hacer un solo ciclo a relacion del oscilador del mismo pic. podrias scar el valor con mucha mas exactitud. tansolo tndrias que ajustar bien tmr0 y la reuccion de option_reg = %0000xxxx ajustandolas hasta que te de aprosimadamente revoluciones por minuto vastante exactas

me esplico mejor..

usando las interruciones de tmr0 y b0/int, podrias sacar con muha esctitud en unn solo ciclo las revoluciones. y sobrrte tiempo pra cer otras cuantas operciones con el pic, ala ve de rfrescarlo en pantalla a una velocidad en pantalla vastante vestial. (que reducirias pausndo o añadiendo mas fuciones o operaciones..)

Pongamos, en un momento del programa activas la interruccion de canvio de estado de b.0 de 0 a 1, locua que al accionarse la bujia entramos en la interruccion, comprovamos si la interruccion tmr0 esta activada si no es asi la activamos y dejamos tmr0 contando. (la varieble que incremente tmr0 en la interruccion por desvordamiento seria por ejemplo revoluciones) se activa otra vez la interruccion por canvio de estado de b.0 que l interrucion tmr0 esta activada la desactivamos al salir de la interruccion en el programa paramos la interruccion de canvio de estado b.0 y ya puedes usar la bariable revoluciones te consejava que fuera una bariable de 16bit asi tendrias una resolucion muy chula asta 65500 revoluciones (cosa que 18000 ya es mucho)

piensa que 18000 revoluciones por minuto equivale a una frecuencia de 300Hz. si el pic o aces funcionar a 4mhz ya tendras una resolucion bien alta para reducir el tiempo de un solo ciclo y aun asi las revoluciones seriaa la mitad si el motor es de 2 tiempos, una cuarta parte si fuera de 4 tiempos.. lo cual que podrias ajustar tmr0 muy bien para sacar una resolucion muy exacta y una gran velocidad recogiendo el valor de las rvoluciones.. (vamos podrias refrescar la pantalla sobrdamente mas de 10 veces por segundo. pero con que muestres l informacion en pantalla 5 veces por segundo ya qued una autentica virgeria)

un saludo:

Desconectado rabanisa

  • PIC10
  • *
  • Mensajes: 12
Re: Cuenta Revoluciones con LCD y mas
« Respuesta #5 en: 14 de Enero de 2012, 05:52:16 »
Buenos dias:

El funcionamieno basico del programa es el siguiente:

Tengo una interrupcion cada 100ms, en la cual cuento los pulsos de RPM  y los guardo (rpm=rpm+get timer0() ) y cada segundo los voy mostrando.En cuanto al decimal solo es un caracter del lcd para separar las centenas de las unidades de mil. Como bien apuntas RPM es un valor de 16 bits, el cual se multiplica por 60 para obtener rpm/min.
 . Solo visualizo cada segundo,aunque se puede aumentar la velocidad de refresco bastante(cuando le valla metiendo mas datos probare otra vez a subirla)  pero si es muy alta al tener que poner bastante contraste (el aparato trabaja con la luz exterior) el LCD no se "limpia" bien y los dos ultimos digitos no se distinguen, de ahi el despriciarlos y poner siempre a 0. En este caso los pulsos los meto por RA4 y mi idea es RB0 "guardarmela" para un posible velocimetro, haciendolo trabajar con el timer3().

Saludos y muchas gracias por los comentarios.
« Última modificación: 14 de Enero de 2012, 06:55:18 por rabanisa »

Desconectado rina

  • PIC10
  • *
  • Mensajes: 45
Re: Cuenta Revoluciones con LCD y mas
« Respuesta #6 en: 15 de Enero de 2012, 11:17:01 »
usar el contador de a.4 no es mala idea de primeras..  pero una captura de las revoluciones de un motor que la verdad son frecuencias muy bajas no te sale algo mal ..  me imajino que tendras que tendrs que detenerlos un segundo para capturar una buena resolucion..  me esplico si el motor sta a relenti unas 1200rpm estndo bien el motor y en caliente, di divido 1200/60=20 ciclos en un segundo y tu captura es en 0,1 segundo, vamos el resultado que tenrias seria de 2 nada mas.
que no esta tampoco mal. pero si creo que mejor podias usar b0 para activar o desactivar un timer e 16bit,  sacarias un valor mucho mas preciso.. pero que vamos con un pic hay un ciento de formas de acer la misma cosa, cunden las interruccioes por lo facil que es electricamente en aceder a otra seccion de programa, pero no te creas que siempre es correcto usarlas ddo que interrumpe al programa inicial..  bueno esto ultimo es algo royo..

un saludo


 

anything