Autor Tema: cronometro y tacometro  (Leído 10491 veces)

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

Desconectado unelectron

  • PIC10
  • *
  • Mensajes: 3
Re: cronometro y tacometro
« Respuesta #15 en: 02 de Junio de 2007, 12:22:57 »
Hola Polinigrc...
Estaria muy bueno que publiques tu proyecto!  está muy bueno!...  Saludos!!

Desconectado Elheavytorrent

  • PIC10
  • *
  • Mensajes: 1
Re: cronometro y tacometro
« Respuesta #16 en: 21 de Enero de 2009, 19:16:56 »
Bueno, hola a todos, voy a intentar "revivir" este tema ya que hace mucho que no se publica nada XD, resulta que yo tambien estoy interesado en este tema, no tanto por el tacometro sino por el contador de vueltas al circuito, mi iea es aprovechar la banda magnetica que hay en muchos circuitos en linea de meta y en puntos de control.
El tema de la programacion pic lo tengo claro, mi idea es que por un lcd salga el tiempo por vuelta, y en caso de existir parciales mostrarlos tambien, velocidad media por vuelta, etc... cosas que ya tengo claras, en eso no tengo problemas, mi problema es la "captura" del pulso de paso por meta, o mejor dicho, el paso por la banda magnetica, en esto estoy perdido, no se que valor en gauss tiene esa banda magnetica ni que sensor utilizar, he estado mirando en rs SENSORES y no se cual utilizar ya que con este tipo de sensores no he trabajado nunca , alguna idea?
Gracias de antemano

Desconectado epogor

  • PIC10
  • *
  • Mensajes: 6
Re: cronometro y tacometro
« Respuesta #17 en: 02 de Septiembre de 2011, 12:08:55 »
Hola a todos yo tambien quiero implementar un contador de rpm con los timer uno para contar los pulsos y otro para contar el tiempo de toma de pulsos, el tema es que no se como utilizar los timer , es decir como inicializarlos y usar la interrupcion; aporto lo que he echo y si pueden y quieren corrian los que les paresca; y si pueden ayudarme a terminar el codigo o oportar lo que puedan, desde ya gracias, si necesitan bibliografia por favor diganme y les aviso si tengo algo . :o :o

Desconectado epogor

  • PIC10
  • *
  • Mensajes: 6
Re: cronometro y tacometro
« Respuesta #18 en: 02 de Septiembre de 2011, 12:11:46 »
Aqui les dejo lo que echo, ya se que es pobrisimo pero quiero aprender y asi empiezo:



Subrutina de contador de rpm
//*******************************

void Contador de RPM()

{int8 dif;
int8 rpm_nuevo;
int8 rpm_viejo;
int8 RPM;
int8 dif1;

setup_timer_1 ( T1_EXTERNAL );


setup_timer_0 (RTCC_EXT_L_TO_H);

rpmnuevo=get_timer0()          // cantidad de pulsos contados por timer0
dif=rpm_nuevo - rpm_viejo      // dif entre nuevo y viejo da las rpm actual
dif1=abs(dif)                  // valor absoluto de la diferencia
RPM= 60*dif1                   // valor a mostrar
rpm_viejo=rpm_nuevo            // actualizo valor de rpm viejo
}

Desconectado Noelillo

  • PIC12
  • **
  • Mensajes: 94
Re: cronometro y tacometro
« Respuesta #19 en: 30 de Septiembre de 2011, 15:34:49 »
Yo tengo esto, un contador de RPM.

Código: [Seleccionar]
;************************************ Revolucion.asm *************************************
;
; ===================================================================
;   Programa para visualizar las rpm de un motor
;  
; Miguel Noe Garcia Perez   29 de enero del 2009
; ===================================================================
;
;
;
; ZONA DE DATOS **********************************************************************

LIST P=16F84A
INCLUDE <P16F84A.INC>
__CONFIG _CP_OFF &  _WDT_OFF & _PWRTE_ON & _XT_OSC

CBLOCK 0x0C
NumeroFlancos
ENDC

ORG 0x2100

DE "Progra: Revoluciones para Neri  Vespa 22/04/2009 Miguel Noe... "
MULTIPLICADOR EQU .60

; ZONA DE CÓDIGOS ********************************************************************

ORG 0
Inicio
  call LCD_Inicializa
bsf STATUS,RP0 ; Acceso al Banco 1.
movlw b'00111000' ; TMR0 como contador por flanco descendente de
movwf OPTION_REG ; RA4/T0CKI. Prescaler asignado al Watchdog.
bcf STATUS,RP0 ; Acceso al Banco 0.
Principal
clrf TMR0 ; Inicializa contador.
call LCD_Borra ; Se pone al principio de la línea 1.
movlw 0x00
call LCD_PosicionLinea1
movlw MensajeInicio
call LCD_Mensaje
movlw 0x00
call LCD_PosicionLinea2

movlw   MensajeMiguelito
call LCD_Mensaje
call Retardo_2s

call LCD_Borra ; Se pone al principio de la línea 1.
movlw 0x00
call LCD_PosicionLinea1
movlw MensajePrograma
call LCD_Mensaje
movlw 0x00
call LCD_PosicionLinea2

movlw   MensajePrograma2
call LCD_Mensaje
call Retardo_2s
call LCD_Borra ; Se pone al principio de la línea 1.


movlw 0x00
call LCD_PosicionLinea1
movlw MensajeCuadro1
call LCD_Mensaje
movlw 0x00
call LCD_PosicionLinea2
movlw MensajeCuadro2
call LCD_Mensaje

Go_go
call Retardo_1s ; Tiempo durante el que contarán los flancos.
movf TMR0,W ; Lee el Timer 0 y lo guarda.
movwf NumeroFlancos

movf NumeroFlancos,W
call VisualizaNumero


;*************************************** calculo *******************************************

movlw 0x05
call LCD_PosicionLinea2
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter

clrf Arit_Binario_H

movf GuardaNumero,W
movwf Arit_Binario_L
call Arit_Bin_BCD_16Bit ; Pasa de binario natural en 16 bits a BCD de 5 digitos.

clrf Arit_Binario_H ; Visualiza el multiplicador en decimal.
movlw MULTIPLICADOR
movwf Arit_Binario_L
call Arit_Bin_BCD_16Bit ; Pasa de binario natural en 16 bits a BCD de 5 digitos.

movlw '=' ; Visualiza signo de igualdad.
call LCD_Caracter
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter

    movf GuardaNumero,W

movwf Arit_Multiplicando
movlw MULTIPLICADOR
movwf Arit_Multiplicador
call Arit_Multiplica_8Bit ; Realiza la multiplicación.
movf Arit_Producto_H,W ; Y ahora visualiza el resultado.
movwf Arit_Binario_H
movf Arit_Producto_L,W
movwf Arit_Binario_L
call Arit_Bin_BCD_16Bit ; Pasa de binario natural en 16 bits a BCD de 5 digitos.
call Arit_VisualizaBCD ; Visualiza el resultado.
   
clrf TMR0
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter
movlw ' ' ; Visualiza 1 espacio
call LCD_Caracter

;********************************************************************************************
goto Go_go

; Subrutina "VisualizaNumero" -----------------------------------------------------------
;
; Cuando haya que visualizar un número mayor de 99 las decenas siempre se visualizan aunque
; sean cero. Cuando sea menor de 99 las decenas no se visualizan si son cero.
;
CBLOCK 0x0C
GuardaNumero
ENDC

VisualizaNumero
movwf GuardaNumero ; Reserva el número.
call BIN_a_BCD ; Pasa el número a BCD.
movf BCD_Centenas,W ; Primero las centenas.
btfss STATUS,Z ; Si son cero no visualiza las centenas.
goto VisualizaCentenas
movf GuardaNumero,W ; Vuelve a recuperar este valor.
call BIN_a_BCD ; Lo pasa a BCD.
;call LCD_Byte ; Visualiza las decenas y unidades.
goto FinVisualizaNumero
VisualizaCentenas
call LCD_Nibble ; Visualiza las centenas.
movf GuardaNumero,W ; Vuelve a recuperar este valor.
call BIN_a_BCD ; Lo pasa a BCD.
;call LCD_ByteCompleto ; Visualiza las decenas aunque sea cero.



FinVisualizaNumero
return

; Subrutina "Mensajes" ------------------------------------------------------------------

Mensajes
addwf PCL,F
MensajeInicio
;*******1234567890123456************
DT "IBERICA 2000/09",0x00
MensajeMiguelito
DT "Presenta:",0x00
MensajePrograma
DT "Revoluciones Por",0x00
MensajePrograma2
DT "Minuto.V 1.1    ",0x00
MensajeCuadro1
DT "Vueltas de Motor",0x00
MensajeCuadro2
DT "R.P.M:",0x00
MensajeBorra
DT "      ",0x00



INCLUDE <ARITMETICA.INC>
INCLUDE  <RETARDOS.INC>
INCLUDE  <BIN_BCD.INC>
INCLUDE  <LCD_4BIT.INC>
INCLUDE  <LCD_MENS.INC>
END

; ====================================================================
;   Del libro "MICROCONTROLADOR PIC16F84. DESARROLLO DE PROYECTOS".
;   E. Palacios, F. Remiro y L. López. www.pic16f84a.com
;   Editorial Ra-Ma.  www.ra-ma.es
; ====================================================================
« Última modificación: 30 de Septiembre de 2011, 15:44:19 por Noelillo »