collapse

* Posts Recentes

Substituir um 78xx por um switching regulator ? por vasco
[Hoje às 13:50]


Proteções gerais de um circuito por Njay
[Hoje às 13:20]


BostonDynamics - Vai uma mãozinha? por TigPT
[Hoje às 12:57]


Como calcular bobina por senso
[Hoje às 11:57]


leitura de voltagens com o analogRead(A0) por Njay
[Ontem às 15:29]


Kit Completo Robô Inmoov 299€ por aldricnegrier
[Ontem às 13:39]


PCB de passadeira por vasco
[13 de Outubro de 2018, 16:00]


Proteção contra reverse voltage por Njay
[12 de Outubro de 2018, 10:04]


Bus I2c necessita de pullups ? por vasco
[11 de Outubro de 2018, 18:15]


Circuito básico do 7805 por jm_araujo
[09 de Outubro de 2018, 10:33]

Autor Tópico: Fan RPM counter  (Lida 3414 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.602
    • GrcByte - Projectos
Fan RPM counter
« em: 30 de Abril de 2011, 15:34 »
Com arduino conseguimos facilmente contar as voltas de uma ventoinha..:



Como o Arduino não tem muitos pinos 'interrupt' só podemos utilizar no máximo 2 ventoinhas (pelo que percebi)!

Alguém sabe se é possível utilizar mais? de outra forma c/ outra configuração/esquema?
« Última modificação: 30 de Abril de 2011, 15:38 por almamater »

Online senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.562
  • Helpdesk do sitio
Re: Fan RPM counter
« Responder #1 em: 30 de Abril de 2011, 17:08 »
Praticamente todos os pinos do Atmega328p têm a função de pin-change interrupt, pesquisa sobre isso no datasheet.
Basicamente é uma interrupção que é gerada assim que houver uma mudança de estado em qualquer um dos pinos do porto, depois entra na ISR e vez quem é que mudou de estado lendo o valor dos pinos e comparando com o antigo valor e assim incrementas a variavel devida, ou então, experimenta o pulse-in.
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.602
    • GrcByte - Projectos
Re: Fan RPM counter
« Responder #2 em: 01 de Maio de 2011, 11:54 »
A explicação do PulseIn na página http://www.arduino.cc/en/Reference/PulseIn parece adaptar-se ao que se pretende..

Fazendo o mesmo esquema do projecto "Reading Fan RPM" http://www.arduino.cc/playground/Main/ReadingRPM (imagem do 1º post) para qualquer um dos pinos digitais será que resulta com o código do PulseIn?
 Não sei se o sinal enviado através do fio amarelo da Fan pode ser tratado/reconhecido dessa forma..


Offline GnGz

  • Mini Robot
  • *
  • Mensagens: 665
Re: Fan RPM counter
« Responder #3 em: 01 de Maio de 2011, 18:23 »
A explicação do PulseIn na página http://www.arduino.cc/en/Reference/PulseIn parece adaptar-se ao que se pretende..

Fazendo o mesmo esquema do projecto "Reading Fan RPM" http://www.arduino.cc/playground/Main/ReadingRPM (imagem do 1º post) para qualquer um dos pinos digitais será que resulta com o código do PulseIn?
 Não sei se o sinal enviado através do fio amarelo da Fan pode ser tratado/reconhecido dessa forma..

Já agora podemos, controlar a fan por pwm sem que queime o arduino?

Offline CBX

  • Mini Robot
  • *
  • Mensagens: 1.315
Re: Fan RPM counter
« Responder #4 em: 01 de Maio de 2011, 18:35 »
com um transístor podes, directamente não, a não ser aquelas com 4 pinos, mas não sei qual a tensão com que aquilo funciona...
« Última modificação: 01 de Maio de 2011, 18:37 por CBX »

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.602
    • GrcByte - Projectos
Re: Fan RPM counter
« Responder #5 em: 03 de Maio de 2011, 11:15 »
Secalhar posso ligar o fio amarelo da Fan a um pino digital do Arduino e utilizar algo como isto

Código: [Seleccione]
int sensor=5;
int val=0;
int ledPin=12;

void setup(){
pinMode(sensor,INPUT);
pinMode(ledPin,OUTPUT);
}

void loop(){
val=digitalRead(sensor);
if(val){
digitalWrite(ledPin,HIGH);
else
digitalWrite(ledPin,LOW);
}

Mesmo que não se consiga calcular a velocidade ao menos para saber se está parada ou a rodar

Online senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.562
  • Helpdesk do sitio
Re: Fan RPM counter
« Responder #6 em: 03 de Maio de 2011, 17:42 »
Mas a ventoinha dá-te uma onda quadrada, esse código vai estar sempre a ler HIGH's e LOW's, se usares a função pulsein ela dá-te a frequência dessa onda, se tens a frequência tens a rotação da ventoinha, para que complicar o que é simples?
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.602
    • GrcByte - Projectos
Re: Fan RPM counter
« Responder #7 em: 03 de Maio de 2011, 22:39 »
Código: [Seleccione]
int pin = 7;
unsigned long duration;

void setup()
{
  Serial.begin(9600); // Inicializa a comunicação serial
  pinMode(pin, INPUT);
}

void loop()
{
  duration = pulseIn(pin, HIGH);
  Serial.println(duration);
}
;D


Assim retorna um valor de ~3600, através do outro método (interrupts) a fan devolve umas  4200 RPM..  tenho de fazer um cálculo qualquer agora, por default o PulseIn é 1 segundo, baixando de 1 segundo ele retorna sempre 0.. mas ao menos já se sabe se a Fan está parada ou nao
« Última modificação: 03 de Maio de 2011, 22:51 por almamater »

Online senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.562
  • Helpdesk do sitio
Re: Fan RPM counter
« Responder #8 em: 03 de Maio de 2011, 23:02 »
Experimenta trocar para low por exemplo.
O pulsein retorna micro-segundos, converte para Hz e depois para rpm, deve dar igual
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.602
    • GrcByte - Projectos
Re: Fan RPM counter
« Responder #9 em: 04 de Maio de 2011, 16:09 »
Experimenta trocar para low por exemplo.
O pulsein retorna micro-segundos, converte para Hz e depois para rpm, deve dar igual

Só li agora, testei mudar para LOW duration = pulseIn(pin, LOW); e aumentou um pouco para ~3690..   quanto às conversões vou então aprender como se faz (google  ;D)

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.602
    • GrcByte - Projectos
Re: Fan RPM counter
« Responder #10 em: 17 de Maio de 2011, 11:00 »
Descobri que existem chips específicos para projectos de speedometers etc, como o LM2907

Nos exemplos de aplicações têm isto:



Em vez daqueles 2 fios no "Magnetic Pickup" secalhar dá para adaptar à Fan.. não há muita informação sobre circuitos com este chip, mas parece ser fixe 

Online senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.562
  • Helpdesk do sitio
Re: Fan RPM counter
« Responder #11 em: 17 de Maio de 2011, 16:40 »
Isso converte frequência em voltagem, mas assim vais precisar de um monte de chips desses, continuo a dizer, pin change interrupt ou mesmo o pulseIn serve perfeitamente para isso.
Avr fanboy

Offline andre_f_carvalho

  • Mini Robot
  • *
  • Mensagens: 1.469
    • Pro - andrefcarvalho
Re: Fan RPM counter
« Responder #12 em: 17 de Maio de 2011, 19:11 »
Descobri que existem chips específicos para projectos de speedometers etc, como o LM2907

Nos exemplos de aplicações têm isto:



Em vez daqueles 2 fios no "Magnetic Pickup" secalhar dá para adaptar à Fan.. não há muita informação sobre circuitos com este chip, mas parece ser fixe

daria para utilizar este esquema ligado directamente aos platinados de um carro e dp ler com um pic a 5v?

Online senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.562
  • Helpdesk do sitio
Re: Fan RPM counter
« Responder #13 em: 17 de Maio de 2011, 19:20 »
Não porque os platinados estão depois da bobine normalmente isso quer dizer que andam lá mais de 5kV garantidamente e alguns casos até mais de 10kV.
Avr fanboy

Offline almamater

  • Mini Robot
  • *
  • Mensagens: 1.602
    • GrcByte - Projectos
Re: Fan RPM counter
« Responder #14 em: 17 de Maio de 2011, 21:32 »
eu só referi esta forma frequencia-> voltagem pq parece ser mais simples o cálculo das rpm e o chip tomava conta da situação.. mas foi uma ideia  :P