Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
stephanokoppe

dúvida: funcao p/ frequência

Recommended Posts

olá pessoal do Clube do Hardware !

como todo louco, resolvi arranjar uma sarna pra me coçar. aliando meus conhecimentos em mecanica/informatica/eletronica/programacao de microcontroladores, resolvi desenvolver alguma coisa pra exercitar o tico e o teco :D

tenho um VW Santana equipado com Sensor VSS (sensor de velocidade), q é acoplado no cabo q sai da caixa de cambio. para melhor entendimento de quem estiver lendo este topico, este sensor tem a finalidade de criar uma frequencia q é diretamente proporcional a velocidade do carro, para que a central eletrônica possa determinar diversas estratégias de injeção/ignicao, como cut-off, dash-pot, etc.

este sinal, q varia de 0-12V, geralmente fica no range de 0-500Hz, n passando disso. claro q existem varios tipos de VSS, mas posso com exatidao afirmar para vocês que o que equipa o Santana tem a proporcao de :

- 14Hz p/ 10Km/h (ou 1,4Hz a cada 1Km/h)

como podem ver, n é nenhuma frequencia absurda. barbada de trabalhar, ainda mais q é 12V DC

bem, eu desenvolvi com um PIC+LCD um velocímetro digital baseado nessa frequencia do VSS. só q, com o meu conhecimento restrito em programacao (nca mais mexi com isso, desde q me voltei a mecanica), consegui somente criar uma funcao q funciona basicamente assim:

- determina uma variavel x

- no tempo em o sinal VSS está em 1, incrementa x++

- quando o sinal for a 0, para de incrementar x e retorna esse valor a funcao

essa ideia veio do nada, foi a maneira mais *******, porém logica, q o desamparado aqui achou para fazer funcionar o velocimetro ;P

outra coisa é que eu teria q fazer uma relação inversamente proporcional, para que eu conseguisse ter uma segunda variável y compativel e proporcional a velocidade do carro, já que:

- quanto maior o tamanho da variavel x, menor a frequencia :D

funcionar? pfffff, claro q nao funcionou de prima. cheguei a conclusao q, em baixas velocidades (leia-se frequencia), o programa resetava. imaginei q a variável x estava estourando. setei ela como int32. melhorou um pouco, mas n era ideal. por ultimo, penei mas determinei um delay que eu conseguia obter uma leitura precisa, já convertida em caracteres para o LCD, da velocidade em relação ao ponteiro. só que, em alta velocidade, pro LCD n existe destinção entre 90 e 110, por ex. acredito q seja por causa deste mesmo delay, porque sem ele, em alta frequencia ele consegue destinguir perfeitamente. só nao consegue funcionar em baixa velocidade :D

- x -

finalmente, la duvida!

gostaria de saber se existe alguma funcao pré-determinada em C (ou assembly) q conseguisse retornar em uma variavel um valor correspondente e proporcional a frequencia obtida numa porta do PIC.

ex: estou com 10Hz em um momento na portb B3. chamo a funcao e obtenho x=10. daih, a frequencia muda pra 50Hz. chamo again a funcao e obtenho x=50, por exemplo

se eu conseguir isso, vou conseguir total precisão no LCD para com o velocimetro, tanto em baixa como em alta velocidade, e um sorriso brotará no meu rosto :D

espero q vocês possam me ajudar com dicas, ou seja com o q for

obrigado desde então!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, stephanokoppe.

Bem-vindo.

Primeiro de tudo, é o condicionamento do sinal. Pega essa frequência de 12V, injeta num acoplador ótico com 5V na saída. Do acoplador, injeta o sinal em um driver schmitt trigger. Filtra o bichinho, e pronto! Tens aí um sinal condicionado em onda quadrada com intensidade de 5V. Programa um timer do PIC como contador de eventos externos (vou chamar de TIMER0). Programa outro timer pra te dar a base de tempo - 1ms, 10ms, 100ms, 1 segundo, depende da resolução que você precisa (vou chamar de TIMER1).

No início do programa, zere o TIMER0 e dispare o TIMER1. Programe o TIMER1 pra gerar interrupção. A cada interrupção de TIMER1, capture o valor de TIMER0, e zere TIMER0 pra começar a contar de novo. Pronto!

você capturou um dado que corresponde a frequência de entrada injetada no MCU.

A partir desse dado, dê seus "pulos", eheheheheeh

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

dae Maurício2006, beleza?

antes de mais nada, brigadao pela paciencia e pela resposta, mas ...

... tenho umas duvidas, corrija-me se eu estou viajando :P

"Primeiro de tudo, é o condicionamento do sinal. Pega essa frequência de 12V, injeta num acoplador ótico com 5V na saída. Do acoplador, injeta o sinal em um driver schmitt trigger. Filtra o bichinho, e pronto! Tens aí um sinal condicionado em onda quadrada com intensidade de 5V"

eu tava usando o sinal cru mesmo, 12-0-12-0. é efeito hall, o pic pelo menos nao reclamou de estar levando 12V numa das pernas dele (até porque foi aquela coisa "será q dah?" neim tinha checado - e ainda continuo desconhecendo o Vmax de uma porta do PIC). então... eu preciso mesmo deixar essa onda quadrada de 12V-0V filtrada e bonitinha em 5V-0V?

"acoplador ótico com 5V na saída. Do acoplador, injeta o sinal em um driver schmitt trigger"

n seria mais fácil fazer isso com transistores? até porque n te esquece q num carro eu tenho muita interferencia vindo dos cabos de vela. qualquer coisa q precise de muita precisao é brabo de fazer. e lembro das epocas de senai dos acopladores oticos ... pelo menos nos q eu trabalhava era um pé no saudoso saco :D

"No início do programa, zere o TIMER0 e dispare o TIMER1. Programe o TIMER1 pra gerar interrupção. A cada interrupção de TIMER1, capture o valor de TIMER0, e zere TIMER0 pra começar a contar de novo. Pronto!"

xo v se eu entendi: timer0 seria a minha variavel no caso. proporcional a frequencia e tudo mais. timer1 seria o contador q forcaria timer0 (zerado primeiramente) a ter um valor de acordo com a frequencia que a perna do pic tá lendo? e, escrevendo aqui, n faco ideia de como se emprega no programa esses timers, estou tentando entender a logica. depois o F1 e/ou examples possam me ajudar!

de novo, valeu pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, stephanokoppe.

PIC não é minha praia, portanto, só posso dar palpites, eheheheheh

eu tava usando o sinal cru mesmo, 12-0-12-0. é efeito hall, o pic pelo menos nao reclamou de estar levando 12V numa das pernas dele (até porque foi aquela coisa "será q dah?" neim tinha checado - e ainda continuo desconhecendo o Vmax de uma porta do PIC). então... eu preciso mesmo deixar essa onda quadrada de 12V-0V filtrada e bonitinha em 5V-0V?

Que eu saiba, os PICs trabalham somente com 5V (a não ser as versões de 3V3, lógico). Se você injetou 12, acho que esse daí já foi....

Carros são ambientes altamente ruidosos. Portanto, condicionar e deixar sua onda a mais perfeita possível, é condição inicial!

n seria mais fácil fazer isso com transistores? até porque n te esquece q num carro eu tenho muita interferencia vindo dos cabos de vela. qualquer coisa q precise de muita precisao é brabo de fazer. e lembro das epocas de senai dos acopladores oticos ... pelo menos nos q eu trabalhava era um pé no saudoso saco :D

Sim. você pode fazer com transistores. Só que esse arranjo vai tomar mais espaço do que usar um 74HC14, p. ex.

xo v se eu entendi: timer0 seria a minha variavel no caso. proporcional a frequencia e tudo mais. timer1 seria o contador q forcaria timer0 (zerado primeiramente) a ter um valor de acordo com a frequencia que a perna do pic tá lendo? e, escrevendo aqui, n faco ideia de como se emprega no programa esses timers, estou tentando entender a logica. depois o F1 e/ou examples possam me ajudar!

Não posso te ajudar muito, porque, como eu disse, eu não conheço os PICs. Só falei isso baseado na minha experiência com os 8051 e AVRs.

Nessas máquinas, você encontra 2, 3, ou mais timers de 8/16 bits, e configura os mesmos pra sua necessidade. Os temporizadores estão diretamente relacionados com o ciclo de clock da máquina. P. ex: no caso dos AVRs, com ciclo de clock de 1uS, você pode contar frequências de até 1Mhz, através da configuração adequada desses timers.

No caso dos PICs, seria melhor você colocar sua dúvida no fórum de eletrônica. O pessoal de lá programa PICs e pode ajudá-lo melhor.

Boa sorte.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

"Que eu saiba, os PICs trabalham somente com 5V (a não ser as versões de 3V3, lógico). Se você injetou 12, acho que esse daí já foi...."

n foi, estou olhando pra ele nesse exato momento :D

ele pode n gostar ihaeihaeiheaihea

"74HC14"

isso seria os acopladores oticos? posso tentar eles pra ver se fica joia

e sobre os 8051, interessante... pode funcionar mesmo :D

obrigado dnvo cara!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve, stephanokoppe.

74HC14

isso seria os acopladores oticos? posso tentar eles pra ver se fica joia

Esses são os schmitt-triggers. Acoplador ótico, você pode usar os 4N33, 35, os PC817, e tb os da série TIL. Tem vários outros modelos. Tem que saber qual deles você vai usar.

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual o modelo de microcontrolador você está usando?

Se ele tiver um módulo CCP, o modo Capture é o ideal para isto.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Qual o modelo de microcontrolador você está usando?

Se ele tiver um módulo CCP, o modo Capture é o ideal para isto.

pic 17F877-A

Compartilhar este post


Link para o post
Compartilhar em outros sites
pic 17F877-A

Desculpe a demora para responder, é que participo apenas do fórum de eletrônica e tinha me esquecido deste tópico aqui.

Certifique-se do modelo.

Seria o 16F877A?

Ele tem dois módulos CCP.

Estude sobre o funcionamento do modo Capture.

É ideal para a sua aplicação.

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu tambem estou tentando fazer um velocimetro para meu carro velho, mas estou esbarrando nas contas, pois vou usar leds. o primeiro pra 5 km por hora, o segundo led para 10 km por h e etc, até 220 km/h. como estou tentando em assembly não estou conseguindo fazer com que, por exemplo, se estiver em 3 km/h mostrar 0 km/h, ou seja nenhum led acesso e acender o led de 5 km/h quando a velocidade estiver entre 5km/h e 10 km/h. então pensei no seguinte: coloco um valor de 220 em uma variavel e vou decrementando de 5 em 5 este valor. a cada passagem de um certo tempo subtrai 5 do valor. e vai continuar subtraindo até o sensor da roda ativar uma interrupção. só não consegui calcular ainda os tempos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×