tacometro

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Mensagempor ze » 08 Fev 2008 15:57

eu consegui mas NÃO FALO (ou digito) como fiz!!!! rsrsrs

tacômetro não é algo relativamente fácil de fazer com uC? Não é só contar quantos pulsos ocorreram em 60 segundos? ou contar quantos em 6 seg e multiplicar por 10, ou em 0,6 seg e mult. por 100? ou ...etc...? não seria aplicar o sinal numa entrada de timer qualquer e usar outro como base de tempo? O valor pode ser mostrado em um lcd16x2 (p.ex.)
Se sim algumas linhas em C resolvem.
(tem algo errado neste meu "raciocínio", não sei o que é)

revi a naice uiquendi!!!!!!!!!!!
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

ideias

Mensagempor tecman » 08 Fev 2008 17:08

o dificil não é tem este do site do jose pino so que o display e tipo led , algo legal hoje e vc poder implementar algo mais como temperatura do oleo ,tensão de bateria ,hallmeter coisas deste genero são interresante num display 16x2 a parte de comunicação com os sensores externos não são coisas de outro mundo mas em geral eletronica embarcada chip tunning são coisas que a gente não ve muito em foruns ou coisas assim
tecman
Byte
 
Mensagens: 342
Registrado em: 01 Nov 2006 09:02

Mensagempor fabim » 08 Fev 2008 20:02

bom pra quem entendi um porquim de pascal, e sabe como funciona um calculo qualquer.rsrs

Código: Selecionar todos
 //Program measures the rotation period based on a pulse input and calculates RPM
//NOTE: Interrupt Procedure is NOT  used as the CCP2 interrupt flag is set regardless
//of whether interrupt is enabled.  Since the CCP2IF is checked in the Main repeat loop, there is no
//need for the MP3 Interrup Procedure.

uses Tach_Acq;  //Determines rotation period time based on Timer TMR1
               //Note this works for an 18F452 with a 4 Mhz crystal
                //MP3 Default Configuration  for 19F452 chip was used for chip configuration
               ////Note:  18F452 Chip is configured so that CCP2 is on pin RC1
               // rather than RB3  __CONFIG _CONFIG3H_OFF
               //Pulse train must be +5V (Pluse logic High) and 0 volts (Pulse Logic Low)

Procedure Initialize_LCD;   //This must be tailored for your particular LCD set up
  begin

       LCD8_Config(PORTC,PORTD,6,4,5,7,6,5,4,3,2,1,0); //RS,EN,RW  Data Use in Real Fuel board Initialze LCD through PORTs
       LCD8_Cmd(Lcd_Clear);//Clear LCD display
       LCD8_Cmd(Lcd_Cursor_Off);//Turn visible cursor off

  end;

Procedure Initialize_Ports;
  begin

      TRISD:= $00;  //Set all PORTD for output
      PORTD:= $00;
      TRISC:= $02;  //   0000 0010  Set  bit RC1 for CCP2 input, RC6,4,5(Rs/En/RW) LCD control Output
                          //Note: this may need to be changed to match your board wiring
  end;

Procedure Initialize_Timer_CCP;
   begin

      INTCON := $00;  //Disable all Interrupts for initialization of other registers
      T3CON  := $00;  //0000 0000  was $C0 Sets Timer1 as source clock for CCP1 and CCP2 leaves timer3 off
      CCP2CON:= $06;  //set for 4th rising edge, $07 Initially Set CCP2 for 16th Rising Edge Capture
      T1CON  := $01;  //set for 8 bit time read, prescaler of 1 and turn timer 1 on
      TMR1L  := $00; //zero timer registers
      TMR1H  := $00;

   end;

Procedure Display_Title;
   var  Txtstr:array[16] of char;

   begin
        TxtStr := ' MP3 Tach Code';  //Displayed even when Tach pulse train is not ON
        LCD8_OUT(1,1,TxtStr);
   end;

Procedure Display_RPM(RPM:word);
    var Txt: array[6] of char;
        Txtstr: array[8] of char;
    begin
         Txt := '  '; //Intialize Txt
         TxtStr := ' RPM = ';   //Displayed when Pulse train to CCP2 is active
         LCD8_OUT(2,1,Txtstr);
         Wordtostr(RPM,Txt);
         LCD8_OUT(2,9,Txt);

    end;

Procedure CCP2_Call;   //Calls CCP2_RPM to get pulse interval of rotation period then calculates and displays RPM
     Var
           Rot_P_L  :byte; //Bytes to hold rotation period time from CCP2_RPM
           Rot_P_H  :byte;
           R_Period :Word; //Holds rotation period time calculated
           RPM      :word; //Holds RPM value calculated

   Begin

           Rot_P_L := 0;//Variables for Rotation Period Time
           Rot_P_H := 0;
     If testbit(PIR2,CCP2IF) = 1   then //If CCP2 flag is set then pulse has triggered CCP2 module
      begin

         ccp2_RPM( Rot_P_H,Rot_P_L); //Calls to Data_Acq unit for pulse measurements
            if (CCP2CON = $06) AND (CCP2IF = 0) then    //update viariable values after finished with entire time sequence
             begin

                  R_Period   := 00;
                  R_period    := Word(Rot_P_H shl 8) OR Rot_P_L; //combined hi and low byte of rotation period into word
                  RPM         :=  60000000 div R_Period ;  //Calculate RPM (period is in clock cycles this turns it into revs/min)
                                                           //Conversion value valid for a 4 Mhz oscillator frequency ONLY
                  Display_RPM(RPM); //Displays RPM Data

              end; //If (CCP2CON =7 .....


     ClearBit(PIR2,CCP2IF);//Clear ccp2 Flag for next cycle
      end;

   end;

begin  //Main part of program
    Initialize_Ports;
    Initialize_LCD;
    Initialize_Timer_CCP;
    Display_Title;  //Display title of program on LCD

    Repeat     //Loop forever calling CCP2_Call to determine rotation period and calculate RPM

      CCP2_call;    //Call for Data and display RPM based on CCP2 module response to a pulse train

    until true = false;
end.


fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor Mersin » 08 Fev 2008 21:53

Opa tecman,

Só pra informar, não existem carros com mais de 25000 RPM, nem na Formula 1!!

Divida por 2 seus números acima!

Valeu!
Mersin
Mersin
Byte
 
Mensagens: 121
Registrado em: 22 Out 2006 13:07
Localização: Goiânia

Re: Fabim

Mensagempor LUCK » 08 Fev 2008 22:34

tecman escreveu:bem vou tentar responder acho que não entendi a pergunta mas vai lá TACOMETRO : é um instrumento de medição do número de rotações (geralmente por minuto, RPM) de um motor você converter as rotações de RPM por KM bastante para isso so aplicar a formula ,putra coisa em geral os carros normais não chegam a 25mil rpm os turbinados podem chegar a 35mil ja vi casos de 40 mil rpm por isso a necessidade de baixar o range do instrumento o que vejo hoje a chegar em 22rpm e os motores eletricos de aeromodelo !!


Devido a pontuação, essa última parte tá mais difícil de entender que o início... :roll:
...o range do instrumento o que vejo hoje a chegar em 22rpm e os motores eletricos de aeromodelo !!
O quem tem a ver motores elétricos de aeromodelo com carro, turbo..etc?

Ah, acho que o turbo no carro não interfere na rotação do motor e sim no Torque/Potência. O que quero dizer com isso? que quando se instala um turbo num carro, ele não passará a ter um regime de rotação maior do que aquele para o qual o motor foi projetado apenas terá um torque maior. Esse aumento no torque imprimirá uma aceleração maior ao carro e, se for mexida na relação da caixa de marchas, poderá atingir uma velocidade final maior que aquela prevista no projeto do carro.

Acredito que aumentar a rotação para os níveis que você citou alteraria todo o projeto do motor e provavelmente causaria a sua quebra. Se não me engano os motores de fórmula 1 são projetados pra rotações máximas na casa dos 18 a 19 mil RPMs o que já é um absurdo de rotação.
Nos "carros comuns", geralmente a central da injeção eletrônica corta combustível por volta de 6000 RPM...

Bom acho que aqui no forum tem um pessoal mais qualificado pra falar disso... eu nunca mexi com turbo. Me corrijam se eu estiver errado. Também acho o assunto interessante mas sou apenas curioso no tema.
Avatar do usuário
LUCK
Byte
 
Mensagens: 109
Registrado em: 11 Out 2006 14:01

olha só

Mensagempor tecman » 09 Fev 2008 07:49

ola esta parte posso falar bem pos preparo carros a algum tempo como disse as centrais cortam com 6000rpm mas não esqueça que o chip pode ser remapeado ... e isso eu já faço exemplo marea turbo original 182cv remapeio para 245cv iso homologado com dinamometro, com isso posso alterar ponto de troca de marcha entre muitas outras coisas tudo isso alterando dados da eprom contidas nas crentalinas e com relação aos motores de formula cito um exemplo proximo ao 22mil o motor tem 111° de inclinação, o q melhoraria o centro de gravidade do carro, 20.000 RPM com isso atinge tranquilo nessa rotação a mercedes está escondendo ai seu modelo com 26 mil já !!!
tecman
Byte
 
Mensagens: 342
Registrado em: 01 Nov 2006 09:02

Esqueci

Mensagempor tecman » 09 Fev 2008 07:57

esqueci de mencionar que este motor e um modelo novo que equipa os formulas 1 com motor Honda .
tecman
Byte
 
Mensagens: 342
Registrado em: 01 Nov 2006 09:02

Anterior

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x