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:  
absabs

Ajuda com RPM para o PIC 16F877

Recommended Posts

Olá a todos!

Estou à um ano exato "futucando" um Pic 16F877 com o Mikro C PRO na modalidade "curioso" e simulando no Proteus. Sou eletricista e até consegui algum avanço manipulando as entradas e saídas utilizando o display LCD. Eu agradeceria muito se alguém pudesse me ajudar a ler o número de RPM na entrada do PIC. Será que alguém consegue me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, primeiramente bem-vindo ao fórum.

Sugiro que dê uma lida em apostilas cujo tópico seja as interrupções de hardware do microcontrolador PIC. Se inglês não é o seu problema, é altamente recomendável a leitura do datasheet, pois esse é o seu mais completo guia.

Para se ler RPM, é necessário que haja interrupção externa em um dos pinos dedicados a isso no PIC. Uma interrupção de timer deve ocorrer a uma fração viável de minuto (segundo, milissegundos, etc) contando quantos pulsos externos foram dados nesse período. Por exemplo:

O timer definido com estouro a cada 500 milissegundos.

A cada estouro, é contabilizada 2 interrupções externas. Então, multiplica-se esse valor por 120, a fim de se obter a média de amostragem por minuto. No caso do exemplo, teríamos 240 RPM. Portanto, você conseguiria a cada 0,5 segundos obter uma nova amostragem de RPM. Caso ocorra muita oscilação, você pode utilizar média de amostragens, evitando assim a oscilação constante.

Espero ter ajudado. Desculpe-me pela falta de objetividade. Espero que tenha entendido a minha lógica um pouco bagunçada. :) Quaisquer dúvidas, não hesite em postá-las aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • valeu cara! já me dá uma ótima direção

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    seguinte:

    medidores de RPM normalmente funcionam, do ponto de vista do software da seguinte maneira:

    - habilitando uma entrada com um contador (/timer) do microcontrolador, ou seja à cada pulso na determinada entrada ele incrementa o contador por 1

    - à cada exatos x segundos ou milisegundos vamos neste contador (/timer) e vemos qual o valor dele,

    exemplo: o contador (/timer) me dá o valor de 126 à cada 100milisegundos então eu tive aprox. 1260 pulsos em 1 segundo ou 1260 * 60 RPM ....

    simples não ?

    Por aí você também percebe que se esperasse um pouco mais pra medir (maiores intervalos) sua precisão aumenta gradativamente.

    O problema com este PIC que você quer usar é que ele só tem um timer (/ contador!) de 16bits e 2 timers de 8 bits, fazer algo simples/ bom precisaríamos de ao mesmo 2 timers de 16bits pra; por isto eu te sugeriria ir pra ir um PIC melhor ou mais atualizado pra não ter que ficar fazendo malabarismos de programas enquanto for iniciante. Sugestão: 18F4520

    Mas se preferir faça assim:

    1. use o Timer1 que é de 16 bits como contador de pulsos externos via RC0 (vide data sheet)

    2. pegue o timer0 e acerte o timer 0 (talvez o tmr2 dê também) e acerte o preescaler e escolha o cristal de clock pra gerar uma interrupção à intervalos de tempo conhecidos e fáceis de fazer conta !!

    3. Em cada interrupção leia o valor do timer1 (aí que terá a contagem de pulsos) em seguida zere ele pra contar novamente

    qualquer dúvida posta aí

    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

    ×