Página 1 de 1

Medir velocidade de FAN

MensagemEnviado: 30 Nov 2007 14:36
por Ismael
Boa tarde!!

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

[]'s
Ismael

MensagemEnviado: 01 Dez 2007 08:21
por phophollety
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

MensagemEnviado: 01 Dez 2007 12:07
por Ismael
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

MensagemEnviado: 01 Dez 2007 12:37
por phophollety
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

MensagemEnviado: 01 Dez 2007 13:54
por Ismael
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

MensagemEnviado: 02 Dez 2007 10:03
por phophollety
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