PROJETO 46 – VISUALIZANDO RPM DO COOLER COM ARDUINO

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.

Fonte: facacomarduino.info