Autor Tema: Velocimetro  (Leído 6214 veces)

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

Desconectado marco_zappia

  • PIC10
  • *
  • Mensajes: 25
Velocimetro
« en: 25 de Febrero de 2012, 15:24:21 »
Hola, como estan? Tengo la siguiente duda, estoy haciendo un velocimetro con un 16f648A. Estoy trabajando con el ocilador interno y utizando el TIMER 1.Estoy temporizando el tiempo entre flancos de bajada mediante un sensor hall. De esta forma cuento la cantidad de desbordes del timer y le sumo el resultado del ultimo conteo.

Esto es:  tiempo=(desbordes*0.5243+(65536-conteo_tiempo)*8*10e-6)*1/3600        EXPRESADO EN HORAS POR ESTO MULTIPLICO POR 1/3600
donde:
-desbordes= cantidad de desbordes del timer
-0.5243=tiempo desde que cargo el timer con 0000 y se de el desbordamiento (en segundos) con un factor 1/8
-conteo_tiempo=get_timer1()

y despues simplemente hago:

distancia=2*pi*radio*0.001;
              velocidad=distancia/tiempo;
              velocidad_entera=velocidad;

convierto a bcd de 2 digitos:
   
            bin2bcd(velocidad);

muestro en display.

¿hay algun error?

Desconectado AcoranTf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1099
Re: Velocimetro
« Respuesta #1 en: 26 de Febrero de 2012, 19:24:57 »
Creo que la distancia la estas expresando en metros, (2*pi*r*0.001), si el tiempo esta en horas, la velocidad que obtendras sera de metros/hora. Si estoy confundido que alguien lo aclare.

Saludos.

P.D.: Rectifico, precisamente al multiplicar por 0.001 lo estas convirtiendo a kilometros, por lo que estaria bien, me hice un lio al pensar que lo dividias por 0.001.
« Última modificación: 26 de Febrero de 2012, 19:27:41 por AcoranTf »

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Velocimetro
« Respuesta #2 en: 26 de Febrero de 2012, 20:16:28 »
.


El desarrollo pareciera estar bien, pero son demasiadas operaciones aritméticas para el mcu. Podrías simplificar considerando que la velocidad va a ser inversamente proporcional al tiempo entre capturas. Entonces:

tiempo = 256*desbordes + conteo_tiempo     // da el tiempo capturado en nº de ciclos de reloj (con una frecuencia de operación de 1MHz, queda en microsegundos)
velocidad = k/tiempo                                   // k es una constante a determinar, que depende del radio de la rueda y las unidades que uses para expresar la velocidad

Por ej, si el radio lo tenés expresado en metros, usás un oscilador de 1MHz, y querés la velocidad en m/s:

k = 2*pi*radio*10^6

Espero que te sirva. Saludos.



When you see a good move, look for a better one (Emanuel Lasker)

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Velocimetro
« Respuesta #3 en: 27 de Febrero de 2012, 05:24:02 »
Pero que te pasa exactamente?, hace algo el PIC?.
El pic16f84a tiene 2 timers, esque no me acuerdo si ese PIC dispone del timer de 16 bits que estás intentando usar.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Velocimetro
« Respuesta #4 en: 27 de Febrero de 2012, 10:10:33 »
Pero que te pasa exactamente?, hace algo el PIC?.
El pic16f84a tiene 2 timers, esque no me acuerdo si ese PIC dispone del timer de 16 bits que estás intentando usar.

  Él está intentando usar un PIC16F648A que tiene 3 timers. Y como bien dices, el F84 sólo tiene 1 timer
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado marco_zappia

  • PIC10
  • *
  • Mensajes: 25
Re: Velocimetro
« Respuesta #5 en: 27 de Febrero de 2012, 14:21:23 »
Estoy trabajando con un timer1 de 16bits,
Me queda la siguiente tuda en tu cuenta ya que cambie la cuenta.

porque pones total_t= (de*255) + tiempo;?

mas precisamente porque pones: "de*255" LO DEMAS ME QUEDA CLARISIMO. Estas sumando la cantidad de desbordes y el "pico" de tiempo.

Ahora bien, ese 255 no tendrias que convertirlo a segundos?

Yo estoy haciendo en esencia la misma cuenta pero se que con timer1 de 16bits, se da el desborde cada 0.5243s (trabajando a 4MHZ y prescaler 1/8) por lo tanto la cuenta es:
t_total=desbordes*0.5243+get_timer1()*10e-6 (exppresado en segundos).   sabiendo que con cada incremento del timer pasó 1 milisegudo.

Estoy interpretando mal? saludos

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Velocimetro
« Respuesta #6 en: 27 de Febrero de 2012, 15:23:39 »
.


Es cierto, está mal el número 256, debería ser:

t_total = desbordes*65536 + cuenta_timer

Puse 256 porque pensaba en un timer de 8 bits :mrgreen:. Y ahora "k" debería incluir también el prescaler de 8, sería:

k = 2*pi*radio*(1/8)*10^6

En realidad la cuenta que estás haciendo es correcta, pero utiliza demasiadas operaciones (sobre todo considerando que el mcu no dispone de instrucciones para multiplicar ni dividir) y es posible resumir todo en una multiplicación, una suma y una división.

Saludos.

When you see a good move, look for a better one (Emanuel Lasker)

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: Velocimetro
« Respuesta #7 en: 27 de Febrero de 2012, 16:11:56 »
estas cogiendo la velocidad del sensor de velocidad no? lo digo porque suelen ser inductivos por eso me ha extrañado.

No te tienes que complicar tanto con operaciones para el pic, unicamente calcula tanto el desarrollo como el diametro y conviertelo en una constante, entonces multiplicas (o divides) constante*rpm captadas y solo tienes que hacer una operacion. Al igual que para el timer, calcula la velocidad del cristal, prescaler y demas y conviertelo en una constante.

Desconectado marco_zappia

  • PIC10
  • *
  • Mensajes: 25
Re: Velocimetro
« Respuesta #8 en: 27 de Febrero de 2012, 17:46:33 »
Aclaro que estoy utilizando a pila.
« Última modificación: 27 de Febrero de 2012, 17:58:37 por marco_zappia »

Desconectado marco_zappia

  • PIC10
  • *
  • Mensajes: 25
Re: Velocimetro
« Respuesta #9 en: 27 de Febrero de 2012, 18:19:05 »
Hola, estoy intententando probarlo en mi moto, en un ventiladorsito de pc funciona barbaro. Ahora cuando prendo la moto tengo oscilaciones que me interrumpen continuamente y me muestra 99km/h, cuando me alejo de la moto funciona bien. ¿cual es mi error?
estoy utilizando pilas y la conexiona mi sensor hall A3144 es:

pin1= +5
pin2=ground
pin3=a resistencia 10k a +5 (pull up) y al pin rb0 para interrupcion mediante flanco de bajada. Esoy utilizando el 16f648A
GRACIAS!!!

Desconectado marco_zappia

  • PIC10
  • *
  • Mensajes: 25
Re: Velocimetro
« Respuesta #10 en: 27 de Febrero de 2012, 23:06:05 »
Cambie todos los cables, pero sigue oscilando, el problema esta en el sensor (no digo q este roto porque probe con 2), pero cuando lo acerco a la moto, mas o menos un metro, me empieza a interrumir continuamente como si pusiera un iman al lado, apago la moto y funciona barbaro.  el problema yo creo que es de hardware, q opinan? como puedo solucionar?

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Velocimetro
« Respuesta #11 en: 27 de Febrero de 2012, 23:24:22 »
  Parecería ser un problema de ruido eléctrico que está afectando la lectura del sensor de efecto hall. Tal vez la chispa sobre la bujía.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado NoSepComo

  • PIC18
  • ****
  • Mensajes: 305
Re: Velocimetro
« Respuesta #12 en: 28 de Febrero de 2012, 06:14:49 »
Hola, lo mismo que te ha dicho angelgris te iba a decir yo, es muy común que la bijía  induzca ruido por las alimentaciones, al fin y al cabo, al mezclarlo con continua se trata de una señal de baja frecuencia y muy potente. Lo normal en automoción es aislar las alimentaciones (o blindar bien), aisla tu circuito, puedes utilizar un dc/dc de por medio y eso ya te hace muchísimo, aunque algo más sencillo primero que metas condensadores para filtrar el ruido.

Desconectado marco_zappia

  • PIC10
  • *
  • Mensajes: 25
Re: Velocimetro
« Respuesta #13 en: 28 de Febrero de 2012, 13:21:14 »
Hola, el tema es que ahora la alimentacion del circuito la estoy haciendo mediante pilas AA, mi problema esta en el sensor al acercarlo a la moto, que condensadores puedo usar? donde lo conecto? entre ground y salida? GRACIAS!!!

Desconectado mtristan

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 395
Re: Velocimetro
« Respuesta #14 en: 28 de Febrero de 2012, 15:23:30 »
.


¿Cómo es el montaje que estás usando? Si vemos el esquemático se va a hacer más fácil ayudarte. Eliminar problemas de ruido es una de las partes más difíciles del proyecto, y más aún en una moto o un auto. A no perder el ánimo :-)

Saludos.

When you see a good move, look for a better one (Emanuel Lasker)


 

anything