Gente q tal,,,
Estoy realizando un velocimetro,,,,,, "antes qUE me digan ,,, si he mirado el de solaris y el de otros compañeros,,, tambien he leido algo, sobre ello pues bueno tengo este codigo: con el cual tengo una formula en la qUE basicamente recibo los pulsos de las interrupcion externa los multiplico por 2PI * diametro de la rueda * 0.036 ( el cual vi qUE sirve para la conversion de km/h), el problema esta en que no se me actualiza "no regresa a cero),,, del carro he tomado los datos fisicos como el diametro de la rueda que es 0.75mt, con un oscilospio tome los datos de un sensor comercial que tiene el carro y con la ayuda del gps vi que por 10km/h obtenia una frecuencia de 9hz aproximadamente. si me hechan una manito gracias-- tambien he leido qUE leyendo el periodo del pulso con el timer y qUE teniendo ese periodo y con la formula de f=1/T puedo llegar a las revoluciones y de ahi a la velocidad,,, bueno eso mas o menos lo entiendo pero no se como escribirlo en codigo...
Estoy realizando un velocimetro,,,,,, "antes qUE me digan ,,, si he mirado el de solaris y el de otros compañeros,,, tambien he leido algo, sobre ello pues bueno tengo este codigo: con el cual tengo una formula en la qUE basicamente recibo los pulsos de las interrupcion externa los multiplico por 2PI * diametro de la rueda * 0.036 ( el cual vi qUE sirve para la conversion de km/h), el problema esta en que no se me actualiza "no regresa a cero),,, del carro he tomado los datos fisicos como el diametro de la rueda que es 0.75mt, con un oscilospio tome los datos de un sensor comercial que tiene el carro y con la ayuda del gps vi que por 10km/h obtenia una frecuencia de 9hz aproximadamente. si me hechan una manito gracias-- tambien he leido qUE leyendo el periodo del pulso con el timer y qUE teniendo ese periodo y con la formula de f=1/T puedo llegar a las revoluciones y de ahi a la velocidad,,, bueno eso mas o menos lo entiendo pero no se como escribirlo en codigo...
Código:
#include <18f2550.h>
#fuses XT,NOWDT,NOPROTECT,PUT,BROWNOUT
#use delay (clock=4000000)
#use standard_io(b)
#use fast_io(a)
#use standard_io(C)
#BYTE porta = 0x05
#BYTE portb = 0x06
#BYTE portc = 0x07
#define use_portb_lcd TRUE
#include "lcd flex.c"
////////////////////////////////////////////////////////////////////
int32 contador2=0;
//long int contador1=0;
float pulsos=0;
#INT_EXT
void ext_isr()
{
contador2++;
pulsos= contador2 * 235.62*0.036; // formula para la velocidad
lcd_gotoxy(1,2); //tercera linea
printf(lcd_putc, "%03.2f", pulsos);
delay_ms(10);
}
////////////////////////////// ciclo principal /////////////////////////
void main()
{
lcd_init();//llama a lcd
delay_ms(500);
lcd_gotoxy(1,1);
printf(lcd_putc," VELOCIMETRO B & N");
disable_interrupts(global);
//configura puertos
set_tris_a(0b11111111);
set_tris_b(0b00000001);
set_tris_c(0b10000001);
//fin configura puertos
ext_int_edge (L_TO_H);
setup_timer_1 (T1_EXTERNAL);
enable_interrupts(int_ext);
enable_interrupts(global);
delay_ms(200);
}
Última edición por un moderador: