OBJETIVO
Diseñar un velocímetro utilizando un PIC16F877 con las siguientes características:
1. Económico
2. Preciso
3. Liviano
4. Versátil
5. Flexible
Movimiento Circular
El movimiento circular uniforme es la aplicación más importante de la noción general de la aceleración centrípeta. De esta aplicación proviene un resultado cuantitativo que tiene relación directa con el movimiento de cuerpos tales como los satélites naturales y artificiales, las partículas nucleares en aceleradores, los cuerpos que giran atados al extremo de una cuerda y las ruedas que están montadas sobre ejes.
El movimiento circular es otro ejemplo importante del movimiento en un plano. Sin embargo, en este caso el vector aceleración ya no es constante. Para calcular la velocidad lineal de la partícula debe evaluarse la derivada respecto del tiempo del vector desplazamiento r.
Donde r = xi(x) + yi(y) = (rcosθ)i(x) + (rsenθ)i(y)
i(θ) = (-senθ)i(x) + (cosθ)i(y)
Pero r = ri(r)
Se obtiene el siguiente resultado
V = (r dθ/dt)i(θ) = (rw)i(θ)
En esta ecuación se ve que la magnitud de la velocidad lineal está dada por
V = rw (1.0)
Donde w es la rapidez instantánea de la variación del ángulo θ, el cual expresa el desplazamiento angular de la partícula respecto de su punto de partida, se llama velocidad de la partícula y siempre se expresa en radianes por segundo.
w = 2*pi*F (1.1)
Donde F = 1/T siendo F = Frecuencia; T = Periodo (1.2)
Reemplazando (1.1) y (1.2) en (1.0)
V = (2*pi*r) / (T) (1.3)
Esta es la ecuación general que se va a utilizar para calcular la velocidad en proyecto
TMR0 (Timer 0)
El microcontrolador PIC16F877 tiene en su arquitectura 3 temporizadores, que son el TIMER0, TIMER1 y TIMER2. El TMR0 es un temporizador de 8 bits, es decir, sólo cuenta de 0-255, después que sobrepasa el umbral de los 255 se desborda y ocurre la famosa interrupción por desbordamiento del TMR0. Para calcular los tiempos a controlar con TMR0 se utiliza la siguiente fórmula práctica:
Temporización = 4*Tosc*(256 – Valor cargado del TMR0)*(Rango del divisor) (1.4)
Donde = Tocs = (1) / (Fosc)
Rango del divisor es también conocido como el predivisor de frecuencia puede varia desde 1:2 hasta 1:256
Unas de las características más útiles del TMR0, es que se puede leer en cualquier momento el valor que contiene, sin detener el contaje.
De la formula (1.4) podemos hacer las siguientes aproximaciones:
Fosc = 4 MHz
Rango del divisor = 1:256
Valor cargado = 0
Con estos valores la Temporización = 65.536 ms
El anterior valor me da la siguiente conclusión: que cada 65.536 ms el TMR0 se desborda y ocurre una interrupción (si está activa la interrupción GLOBAL), y además, que nuestro programa tendrá que trabajar con la interrupción del TMR0, debido a que medimos ciclos por segundo.
Para medir tiempo se utiliza la siguiente fórmula:
T = 4*Tosc*(Rango de divisor)*(255*#desbordes + Valor del TMR0 actual)
Para Tosc = 0.25us y Rango de divisor = 256
T = 0.000256*(255*desbordes + Valor del TMR0 actual) (1.5)
Remplazando (1.5) en (1.3) se obtiene
V = (2*pi*r)/( 0.000256*(255*desbordes + Valor del TMR0 actual)) (1.6)
Resolviendo con pi = 3.1416
V = (24544*r) / (255*desbordes + Valor del TMR0 actual) m/s (1.7)
Pasando a Km/H, ósea, Multiplicando por 3.6 se obtiene
V = (88358*r) / (255*desbordes + Valor del TMR0 actual) (1.
Interrupción por flanco externo en el Terminal RBO
Está interrupción es una de la más utilizadas debido a su fácil manejo y programación, la filosofía es la siguiente. El Terminal RBO del microcontrolador PIC16F877 puede ser utilizado para detectar cambios de flancos utilizando la interrupción por cambio flanco.
La idea consiste, que en el momento en que se detecta un “1” ó “0” lógico (dependiendo de la configuración), el TMR0 empieza a contar. Esta interrupción se utiliza para medir el ancho de un pulso, cambios en el estado de sensores etc.
Metodología de Trabajo
La metodología para el desarrollo del velocímetro es la siguiente:
1. Medir el ancho del pulso proveniente del sensor tipo hall, utilizando el TMR0, la interrupción por desborde del TMR0 y la interrupción por cambio de flanco en el Terminal RBO.
2. Hacer el cálculo utilizando la fórmula (1.
, tomando en cuenta el radio de la llanta en metros
3. Mostrar el valor en Km/H en una pantalla LCD
Bueno muchachos espero haber sido conciso en el planteamiento del problema, y espero recibir las diferentes sugerencias, críticas y dudas con respecto al proyecto.
Un saludo desde Pereira - Colombia