Autor Tema: Velocímetro con Pic16f877  (Leído 28752 veces)

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

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Velocímetro con Pic16f877
« en: 20 de Agosto de 2008, 23:22:59 »
Bueno muchachos hace tiempo que no entraba en el foro debido a que estaba en parciales finales, pero ya me desocupe y me puse a trabajar en un nuevo proyecto que me tiene muy motivado.

Quiero hacer un velocímetro digital con un pic16f877, la idea es la siguiente capturar el numero de vueltas por segundo (Frecuencia F) por medio de un lata magnética y un micro después pasar a velocidad angular y por último a velocidad en KM/H recordando que en movimiento circular uniforme V = r*W  Donde r es el radio de la circunferencía y W velocidad angular

Las dudas: si a una velocidad máxima de 80Km/H la frecuencia me dio 7Hz tomando como radio 0.5m quisiera que alguién me ayude con los calculos por que estoy confundido "que pena" debido a que las cifras me son algo raras

Espero que me contesten

Un abrazo desde pereira la ciudad de las puertas abiertas
Un saludo desde Pereira - Colombia

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Velocímetro con Pic16f877
« Respuesta #1 en: 21 de Agosto de 2008, 07:01:45 »
Tus cálculos son correctos, Chenao.

Para medir frecuencias tan bajas, creo que lo más recomendable es:
- leer muchos más pulsos por vuelta, colocando más puntos de sensado en la rueda
- medir el tiempo de cada vuelta, en lugar del nº de vueltas por segundo, y hacer el cálculo de la frecuencia teniendo el periodo (F = 1/T)

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Velocímetro con Pic16f877
« Respuesta #2 en: 22 de Agosto de 2008, 18:08:32 »
Compañero tengo otra duda debido a que programo con en el esamblador y para hacer todas estás operaciones se vuelve algo tedioso ¿ Que me recomiendas para hacer el programa ?

Un saludo desde Pereira
Un saludo desde Pereira - Colombia

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Velocímetro con Pic16f877
« Respuesta #3 en: 23 de Agosto de 2008, 01:24:23 »
¡Con la iglesia hemos topado!  :mrgreen:

Sin duda si me preguntas a mí te recomendaré que lo hagas en C.

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Velocímetro con Pic16f877
« Respuesta #4 en: 25 de Agosto de 2008, 22:29:55 »

!Claro que he chocado con la iglesia ¡ pero de todas maneras voy  aceptar tu sugerencia profesional y "Sarcastica" :mrgreen:. Un abrazo
Un saludo desde Pereira - Colombia

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Velocímetro con Pic16f877
« Respuesta #5 en: 26 de Agosto de 2008, 00:25:06 »
Hola.

Pregunto: No hay manera de conectar la salida del velocimetro analogico al PIC?, es de aguja y me supongo que debe haber 2 cablecillos por ahi??? como ven no se de carros!!!

Saludos
El papel lo aguanta todo

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Velocímetro con Pic16f877
« Respuesta #6 en: 27 de Agosto de 2008, 03:20:37 »
Chenao, estoy trabajando en un proyecto parecido. Los carros modernos tienen sensores de velocidad que te dan pulsos deacuerdo a la velocidad que esta corriendo el carro, podrias usar eso enves del 'lata magnetica y micro', que no entiendo ni que son xD y que suenan interesantes dicho sea de paso, haber si me explicas eso  :mrgreen:

MLO__, el velocimetro no tiene salida que yo sepa, sino entrada para conectar dicho sensor de velocidad (en carros modernos) y un tipo de cable metalico o algo asi (nose como definirlo) en carros antiguos.

Suerte.
Salu2.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Velocímetro con Pic16f877
« Respuesta #7 en: 27 de Agosto de 2008, 11:34:16 »
Hola.

Creo que no me exprese bien. Lo que quise decir es que si es de aguja el indicador, puede ser que use el metodo de D'Arsonval y se puede usar ese voltaje directamente haciendo el respectivo acople.

El metodo de la "lata magnetica" es con un iman y un sensor de efecto hall (yo y mis sensores de efecto Hall  :o ), el cual detecta la presencia de campo magnetico y envia un 1 si lo hay y cuando no lo hay envia un 0, de esta manera tenemos pulsos relacionados con la frecuencia angular.

Saludos
El papel lo aguanta todo

Desconectado sansanoloko

  • PIC10
  • *
  • Mensajes: 48
Re: Velocímetro con Pic16f877
« Respuesta #8 en: 28 de Agosto de 2008, 16:14:26 »
Hola a todos!!

El año pasado presentamos un proyecto para un ramo de la universidad (sensores y transductores industriales), en el cual nos planteamos hacer un tacómetro digital para motores de inducción. Para este proyecto ocupamos un PIC16F648A corriendo a 8MHz, y la salida de datos la desplegabamos en un lcd de un nokia que pasó a mejor vida.... :) asi nos quedó un instrumento portatil, y una nota muy buena  :lol:

La parte mecánica del tacómetro nos daba un pulso por revolución, asi que en el pic medíamos el tiempo entre pulsos, y dividíamos una costante por el tiempo medido para obtener las rpm del motor (RPM = K / T).

A la hora de hacer las pruebas, obtuvimos muy buenos resultados, pero había un pequeño problema con la resolución, ya que ésta varía según el tiempo medido. Era cosa de ver la curva f(x)=K/x, la cual no tiene nada de lineal. Así que decidimos establecer un criterio de resolución esperada para cierta cantidad de rpm.

Pero.... como predecir la resolución esperada??  fácil, desempolvando las lecciones de cálculo diferencial. La derivada de una recta nos dá una constante, y una curva se puede considerar lineal para un vecindario muy pequeño de un punto en el dominio de la función, así que nuestra función la consideramos arbitrariamente lineal para un intervalo pequeño, así que podemos considerar su derivada como una constante dentro de ese mismo intervalo, pero.... cuanto vale esa constante?? esa es nuestra incognita que debemos despejar para obtener nuestro valor de K  para el intervalo de rpm que buscamos mejor resolución. En nuestro caso, la dejamos cerca de las 1500 rpm, el cual es un valor típico dentro de los motores que buscabamos medir.

Bueno, tengo que salir ahora, pero estaré al pendiente porque igual me interesa mucho el proyecto (para mi autito.... :) )

Saludos a quienes nos leen.

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Velocímetro con Pic16f877
« Respuesta #9 en: 01 de Septiembre de 2008, 13:46:01 »
Un saludo a todo el foro, que pena no haber respondido antes pero tuve problemas al acceder al la página del foro. Bueno muchachos veo que algunos están motivados en el proyecto al igual que yo. En estos dias estuve manejando el compilador de C para los microcontroladores PIC y pude hacer un programita sencillo pero funciona muy bien.

La idea del programa es medir el ancho de un pulso que viene "de la lata metálica" esta induce un campo magnético, por lo tanto, por ley de inducción de Faraday induce un voltaje que es pequeño pero si lo pasamos por disparador 74LS14 "Scmitt Trigger" creo que podemos obtener 5 y 0V que es la lógica que maneja el micro.


Bueno voy a publicar el programita no lo hice el ensamblador porque tenia que hacer muchas vueltas.

Conexiones

lcd                        Pic

RS                        d0
RW                       d1
RE                        d2

D4                        d4
D5                        d5
D6                        d6
D7                        d7


vss                        0V
vdd                       5v

pic entrada

B1                        Genrador de señales (Onda cuadrada) ó tren de pulsos
C6                        Terminal de serial


#if defined(__PCM__)
#include <16f877.h>
#use delay(clock=4000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#define use_portd_lcd TRUE          // Definir puerto de la lcd
#byte    puerto_b=06

#include <lcd.c>                    // librería de la lcd


long desbor,de;

#int_rtcc
void desborde()
         {

          desbor= desbor + 1;
          de = desbor;
          set_timer0(0);
         }



void espera_arriba()

      {
         while(input(PIN_B0));          // si está en alto espero a que este en nivel bajo
         delay_us(3);
         while(!input(PIN_B0));        // espero un alto
           
      }

void ancho_pulso()
      {
         delay_us(3);
         while(input(PIN_B0));         // Espero un 0 lógico
         delay_us(3);
         while(!input(PIN_B0));        // Espero un 1 Lógico y esta medido el pulso
      }

main()

    {

       int tiempo,medida;
       long total_t,velocidad;

       lcd_init();
       lcd_gotoxy(5,1);
       printf(lcd_putc,"0 Km");
       enable_interrupts(GLOBAL);
       enable_interrupts(INT_RTCC);
       setup_counters(rtcc_internal, rtcc_div_256);
         do
            { 
               espera_arriba();
               desbor = 0;
               de = 0;
               set_timer0(0);
               ancho_pulso();
               tiempo = get_timer0();
               total_t= (de*255) + tiempo;
               velocidad = (44179/total_t);
               lcd_init();                                   // inicializa  lcd
               lcd_gotoxy(5,1);
                  if (velocidad<3)
                        {
                           printf(lcd_putc,"0 Km");
                        }
                   else
                   {     
               printf("\r %lu Km/H", velocidad);
               printf(lcd_putc,"%lu Km/H", velocidad);       // pongo el valor el la lcd
                   }
               desbor = 0;
               set_timer0(0);
               delay_ms(100);

            } while(true);
    }

Bueno muchachos en el momento estoý trabajando en desarrollo del circuito estare publicando avances y complementando el trabajo con las sugerencias que resulten en el foro.

Un Saludo desde Pereira- Colombia
Un saludo desde Pereira - Colombia

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Velocímetro con Pic16f877
« Respuesta #10 en: 03 de Septiembre de 2008, 18:02:20 »
Bueno como lo prometido es deuda, voy a publicar los avances del proyecto que me tienen muy motivado espero que le guste.

Funcionamiento:

el interruptor de laminas REED se cierra al entrar en contacto con el campo magnético de un imán, cerrando el circuito por el interruptor REED, C1 y R1, y descargando el condensador C1, cuando la entrada pin 1 del inversor trigger-schmitt llega a la tensión de basculamiento 0,9v su salida pin 2 pasa a nivel alto y es enviada al conector por el pin 9 para que la pueda recibir el micro. Cuando se abra el interruptor REED el condensador se cargara de nuevo a través de R1 y R2 y cuando su tensión alcance los 1,7v la salida pin 2 pasara a nivel bajo. Los rebotes son eliminados por la carga o descarga del condensador C1 a travesde R1 y R2, al no superar la constante de tiempo no son capaces de hacer bascular el inversor trigger-schmitt y por lo tanto la salida permanece inalterable.

Bueno muchachos dejo los diagramas de los circuitos, espero que los observen y los analicen.

Un saludo desde Pereira - Colombia
Un saludo desde Pereira - Colombia

Desconectado jeremylf

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1341
Re: Velocímetro con Pic16f877
« Respuesta #11 en: 05 de Septiembre de 2008, 14:43:37 »
Hola chenao.

Me parece muy interesante tu proyecto y mas que nada la forma como obtienes los pulsos a travez de una "lata magnetica" que sigo sin entender  :D  Pdrias poner el archivo de Proteus?

Por otro lado, veo que no usas interrupcion por cambio de flanco con ese PIC, nose si lo tendra integrado o si aun no sabes como hacerlo por CCS pero seria mucho mejor hacerlo asi que a usar delay's. Es solo una critica constructiva  :mrgreen:

Espero mas avances de tu proyecto que deverdad me interesa mucho.

Suerte.
Salu2.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Velocímetro con Pic16f877
« Respuesta #12 en: 06 de Septiembre de 2008, 23:43:00 »
Hola Chenao

No has pensado en cambiar la parte de sensado de los pulsos? mira AQUI. Tiene todo lo que estas haciendo con R1, R2 y C  :-/ :-/ y responde hasta los 200kHz.

Saludos
El papel lo aguanta todo

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Velocímetro con Pic16f877
« Respuesta #13 en: 08 de Septiembre de 2008, 22:20:52 »
MLO voy analizar el sensor para determinar la viabilidad del dispositivo te agradesco la colaboración, un abrazo.

Un saludo desde Pereira-Colombia
Un saludo desde Pereira - Colombia

Desconectado Chenao

  • PIC18
  • ****
  • Mensajes: 414
Re: Velocímetro con Pic16f877
« Respuesta #14 en: 08 de Septiembre de 2008, 22:25:59 »

Bueno compañeros voy a publicar los avances, en el momento estoy trabajando en la sujerencias de MLO y JEREMYLF les dejo el documento para que lo analicen. Un abrazo.


Un saludo desde Pereira - Colombia
Un saludo desde Pereira - Colombia