É bastante usual necessitarmos ventiladores para contornar o sobreaquecimento de equipamentos eletrônicos, principalmente de informática. Contudo, o ruído produzido por ventiladores comumente perturba bastante o usuário. Foi esse problema que tive que enfrentar ao montar um mini servidor de arquivos usando um Raspberry Pi 3 Model B, em conjunto com o Open Media Vault (OMV). Durante a transferência de arquivos pela rede, a temperatura da CPU atingia tipicamente 60 °C, chegando facilmente aos 75 °C, caso esse regime de operação se mantivesse por alguns minutos. Isso ocorria mesmo com um dissipador fixado na CPU através de um thermal pad de carbono. De fato, esse estresse térmico, principalmente para um circuito de uso continuo, pode reduzir significativamente o tempo de vida do equipamento, sendo a incorporação de um ventilador a solução mais viável e barata.
A maior fração do ruído produzido por ventiladores que utilizam motores de corrente continua sem escovas (brushless) é devido ao fluxo de ar. Sendo assim, a redução da velocidade de rotação levaria a uma redução significativa de ruído. Isso evidentemente reduz a eficiência do ventilador, mas se por um acaso for possível definir faixas de operação em função da temperatura da CPU, essa abordagem poderia realmente ajudar. Por sorte, ou questão de design, a maioria dos mini ventiladores conseguem operar satisfatoriamente com tensões de até um terço de sua tensão nominal de operação, em uma rotação significativamente menor, sendo sua partida (ou arranque) uma questão a parte.
Convertendo essa ideia em uma ação, foi implementado um pequeno circuito de controle acoplado ao GPIO, tal como ilustrado no diagrama abaixo. Assim, define-se 3 regimes de operação para um mini ventilador de 60 mm com tensão de operação de 5 V e corrente nominal de 120 mA. Tais faixas são resumidamente descritas na tabela a seguir, onde é incluído as informações sobre o correspondente ruído acústico. A ilustração da montagem em protoboard e a aparência final do servidor são mostradas abaixo.
Faixa | Corrente (mA) | Tensão (V) | Velocidade (RPM) | Ruído (dB) |
0 | desligado | desligado | 0 | 42 (1) |
1 | 30 | 1.87 | 1350 | 48 (2) |
2 | 49 | 2.37 | 2050 | 60 (2) |
3 | 88 | 4.31 | 3300 | 72 (2) |
(1) Ruído de fundo do ambiente onde o mini servidor está localizado.
(2) Ruído de fundo somado ao ruído produzido pelo mini ventilador.
Esse pequeno circuito de controle é comandado por um script escrito em python, cuja execução é iniciada durante o boot do sistema operacional. Tanto o script como as instruções de instalação podem ser vistas aqui. Nesse script a coleta de dados é efetuada a cada 30 s, definindo-se 4 faixas de operação, segundo os dados da tabela acima, como segue:
- Ventilador desligado: Quando a temperatura T da CPU é inferior ou igual a 46 °C
- Ventilador acionado - Faixa 1: Para 46 °C < T ≤ 55 °C
- Ventilador acionado - Faixa 2: Para 55 °C < T ≤ 64 °C
- Ventilador acionado - Faixa 3: Para T > 64 °C
É importante retornar para a questão da partida do motor do ventilador. De fato, nas faixas de operação onde a tensão aplicada é inferior a tensão nominal recomendada (5 V), o ventilador apresenta ocasionalmente problemas no inicio do movimento, ou seja, a tensão é aplicada mas as pás não começam a girar. Para evitar isso, o script python prevê a aplicação da tensão máxima (5 V) durante 300 ms, que é o tempo necessário para a partida do motor, sendo tal tensão reduzida após este período.
NOTA: O presente projeto possui finalidades didáticas sem pretensões comerciais. Fico isento de qualquer responsabilidade pelo uso, montagem, aplicação ou reprodução desse projeto, integramente ou em partes. Em especial, não me responsabilizo por qualquer dano que pode ser por ele provocado. Para questões adicionais, sugestões e comentários favor entrar em contato via o email: Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.