Projeto 46 – Visualizando rpm do cooler com arduino

  • Fevereiro 01, 2016
  • Comentários

Neste projeto iremos aprender a captar os sinais do cooler e convertermos estes sinais de forma a visualizarmos a quantidade de rotações por minuto que o mesmo esta trabalhando no momento. Vale lembrar que devemos alimentar o cooler com um fonte externa, visto que o Arduino não foi projetado para alimentar motores. Então vamos lá?

Componentes necessários

1 Arduino Uno R3

1 Protoboard

1 Resistor de 10KΩ

1 Cooler com captura de sinal rpm

Fios jumpers

Conectando os componentes

Primeiro, certifique-se de que seu Arduino esteja desligado, desconectando-o do cabo USB. Agora, pegue a protoboard, o resistor, o cooler e os fios jumpers e conecte-os como mostra a figura.

Não importa se você utiliza fios de cores diferentes ou furos diferentes na protoboard, desde que os componentes e os fios estejam conectados na mesma ordem da figura. Tenha cuidado ao inserir os componentes na protoboard. Caso sua protoboard seja nova, a superfície dos furos ainda estará rígida. A não inserção cuidadosa dos componentes pode resultar em danos. Certifique-se de que todos os componentes estejam conectados corretamente. Quando você estiver seguro de que tudo foi conectado corretamente, ligue seu Arduino conectando-o ao cabo USB.

Agora vamos ao código

// Projeto 46 – Visualizando rpm do cooler com arduino
 
// Variáveis usadas para os cálculos
int NbTopsFan; 
int Calc;
 
// Pino utilizado para a leitura no sensor de rotação do cooler
int hallSensor = 2; 
typedef struct{
 
// Define a estrutura para vários fãs e os divisores
char fanType;
unsigned int fanDiv; 
}

fanspec;
 
// As definições dos fãs
// Esta é a variável usada para selecionar o cooler e seu divisor,
// 1 para o sensor de efeito Hall unipolar
// E 2 para o sensor de efeito Hall bipolar
fanspec fanspace[3]={{0,1},{1,2},{2,8}}; 
char fan = 1;
 
void rpm ()

// Esta é a função das chamadas de interrupção
{ NbTopsFan++; }
 
// Esta é a função de configuração quando a porta serial é inicializada,
// E a interrupção é ligada
void setup(){
 
pinMode(hallSensor, INPUT);
Serial.begin(9600);
attachInterrupt(0, rpm, RISING); 
}
 
void loop (){
  
// Configura a variável NbTops para o cálculo onde as leituras forem 0
NbTopsFan = 0;
 
// Habilita as interrupções
sei();
 
// Espera por um segundo
delay (1000);
 
// Desabilita as interrupções
cli();
 
// Número de NbTopsFan (que é aproximadamente a freqüência que o 
//cooler está girando) por 60 segundos antes de dividir pelo divisor de fãs
Calc = ((NbTopsFan * 60)/fanspace[fan].fanDiv);
 
// Imprime o número calculado acima
Serial.print (Calc, DEC);
 
// Imprimi no Serial Monitor "RPM" e uma nova linha
Serial.print (" RPM\r\n");
} 

// Obs.: Para desativar as interrupções: cli (); desativar interrupções globais e 
//para habilitá-los: sei (); habilitar as interrupções;

Para certificar se o código está correto pressione o botão Verify/Compile. Se tudo estiver correto pressione o botão Upload para fazer o upload do código para seu Arduino. Pronto, agora pressione simultaneamente as teclas "Ctrl+Shift+M" para abrirmos o Serial Monitor e vermos os rpms atuais.

Vídeo do projeto pronto

- Se você gostou do post, por favor comente! Nos dê um feedback, isto nos incentiva a continuar! :)

- Compartilhe os posts !

- Curta a fan page !

- Inscreva se no canal do YouTube !



Deixe seu comentário abaixo