Medir velocidade de FAN

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Medir velocidade de FAN

Mensagempor Ismael » 30 Nov 2007 14:36

Boa tarde!!

Alguém sabe como ler a velocidade de um fan (esses comuns de PC com três pinos) em C??

[]'s
Ismael
Ismael
Bit
 
Mensagens: 5
Registrado em: 14 Mar 2007 21:43

Mensagempor phophollety » 01 Dez 2007 08:21

Ooooo sorte hein!

Na primeira busca do google...

http://www.geocities.com/dariuskrail20/fantester.html

No fio de sinal, dá-se um pulso toda hora que o sensor hall chaveia (é um pulso bem feio e distorcido) proporcional, é claro, a rotação do mesmo, basta ler este (recomendo como todo tacômetro, ler o período do pulso e depois dividir e não contar o número de pulsos em um certo período de tempo, esta técnica apesar de mais complexa garante muito mais precisão)

[]s
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

Mensagempor Ismael » 01 Dez 2007 12:07

phophollety escreveu:Ooooo sorte hein!

Na primeira busca do google...

http://www.geocities.com/dariuskrail20/fantester.html

No fio de sinal, dá-se um pulso toda hora que o sensor hall chaveia (é um pulso bem feio e distorcido) proporcional, é claro, a rotação do mesmo, basta ler este (recomendo como todo tacômetro, ler o período do pulso e depois dividir e não contar o número de pulsos em um certo período de tempo, esta técnica apesar de mais complexa garante muito mais precisão)

[]s


Eu já tinha achado este link... mas o código esta em ASM.

E eu estou procurando alguma coisa em C.

[]'s
Ismael
Ismael
Bit
 
Mensagens: 5
Registrado em: 14 Mar 2007 21:43

Mensagempor phophollety » 01 Dez 2007 12:37

Ismael escreveu:
phophollety escreveu:Ooooo sorte hein!

Na primeira busca do google...

http://www.geocities.com/dariuskrail20/fantester.html

No fio de sinal, dá-se um pulso toda hora que o sensor hall chaveia (é um pulso bem feio e distorcido) proporcional, é claro, a rotação do mesmo, basta ler este (recomendo como todo tacômetro, ler o período do pulso e depois dividir e não contar o número de pulsos em um certo período de tempo, esta técnica apesar de mais complexa garante muito mais precisão)

[]s


Eu já tinha achado este link... mas o código esta em ASM.

E eu estou procurando alguma coisa em C.

[]'s

Ismael


Boa sorte na busca então, C eu não tenho nada, infelizmente
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil

Mensagempor Ismael » 01 Dez 2007 13:54

phophollety escreveu:
Ismael escreveu:
phophollety escreveu:Ooooo sorte hein!

Na primeira busca do google...

http://www.geocities.com/dariuskrail20/fantester.html

No fio de sinal, dá-se um pulso toda hora que o sensor hall chaveia (é um pulso bem feio e distorcido) proporcional, é claro, a rotação do mesmo, basta ler este (recomendo como todo tacômetro, ler o período do pulso e depois dividir e não contar o número de pulsos em um certo período de tempo, esta técnica apesar de mais complexa garante muito mais precisão)

[]s


Eu já tinha achado este link... mas o código esta em ASM.

E eu estou procurando alguma coisa em C.

[]'s

Ismael


Boa sorte na busca então, C eu não tenho nada, infelizmente


Você pode me explicar o que o código em ASM faz? Porque aí posso escrever em C.

[]'s
Ismael
Ismael
Bit
 
Mensagens: 5
Registrado em: 14 Mar 2007 21:43

Mensagempor phophollety » 02 Dez 2007 10:03

Explicar código, em comandos??!

Acho que não vai ter servir de muita coisa, posso te explicar o conceito do soft, meio que o "fluxograma", dá-se assim:


Pulso do motor em uma entrada com interrupção e dispare o seu contador, (16bits) para contar o tempo, quando chegar outro pulso você para de contar e faz as contas, temos que

A) RPM = f * 60
B) f = 1 / T, logo

RPM = 60 / T (em segundos)

Como você provalmente vai trabalhar em uS ou em mS terá que multiplicar 60 ou por 1 10^6 no caso de uS ou 1 10^3, no caso de mS, ficando assim:

RPM = 60 10^6 / T (em uS) ou RPM = 60 10^3 / T (em mS)

Feito isso terá que fazer apenas uma divisão de 32 bits / 16 bits e terá como valor a sua rotação, muito provavelmente terá em HEX e terá que converter para DEC para mostrar ao usuário.

Outra coisa que pode ocorrer é dar mais de um pulso por volta (creio que o ventilador em si não, mas outra fonte qualquer) para tal pode pedir auxílio a outro contador, de forma que:

Se a fonte lhe dá 10 pulsos por volta, carregue o seu contador com F6 que é 255 - 10 (10 pulsos por volta) + 1(pois você quer que o contador estoure de 0xFF para 0x00) quando houver a interrupção do contador de pulsos, dá-se o início da contagem, não é complicado..

Espero que tenha ficado claro, qualquer coisa, pergunte...

[]s
"3 minutes of boring code review means 3 hours less fixing LSD (Little Stupid Detail)" Dr. Mike Smith
"Dê-me um ponto de apoio e uma alavanca e moverei o mundo" Arquimedes
"Quando vejo um Alfa Romeo passar eu tiro o meu chapéu" Henry FORD.
Avatar do usuário
phophollety
Dword
 
Mensagens: 1511
Registrado em: 15 Out 2006 13:00
Localização: Santo André São Paulo, Brasil


Voltar para PIC

Quem está online

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

x