Índice:

Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi: 4 etapas (com imagens)
Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi: 4 etapas (com imagens)

Vídeo: Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi: 4 etapas (com imagens)

Vídeo: Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi: 4 etapas (com imagens)
Vídeo: 🖥️La PASTA TÉRMICA en los PROCESADORES!✅ | Objetivo Gaming 2024, Julho
Anonim
Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi
Ventilador regulado por PWM com base na temperatura da CPU para Raspberry Pi

Muitos gabinetes do Raspberry Pi vêm com uma pequena ventoinha de 5V para ajudar a resfriar a CPU. No entanto, essas ventoinhas geralmente são muito barulhentas e muitas pessoas as conectam no pino 3V3 para reduzir o ruído. Esses ventiladores são normalmente classificados para 200mA, o que é bastante alto para o regulador 3V3 no RPi. Este projeto irá ensiná-lo a regular a velocidade do ventilador com base na temperatura da CPU. Ao contrário da maioria dos tutoriais que abordam este assunto, não vamos apenas ligar ou desligar o ventilador, mas controlar sua velocidade como é feito no PC convencional, usando Python.

Etapa 1: peças necessárias

Para este projeto, usaremos apenas alguns componentes que normalmente são incluídos em kits eletrônicos para amadores que você pode encontrar na Amazon, como este.

  • Raspberry Pi executando Raspbian (mas deve funcionar com outras distribuições).
  • Ventilador de 5 V (mas um ventilador de 12 V pode ser usado com um transistor adaptado e uma fonte de alimentação de 12 V).
  • Transistor NPN que suporta pelo menos 300mA, como um 2N2222A.
  • Resistor de 1K.
  • 1 diodo.

Opcional, para colocar os componentes dentro da caixa (mas não feito ainda):

  • Um pedacinho de protoboard, para soldar os componentes.
  • Grande termorretrátil, para proteger a placa.

Etapa 2: conexões elétricas

Conexões elétricas
Conexões elétricas
Conexões elétricas
Conexões elétricas
Conexões elétricas
Conexões elétricas

O resistor pode ser conectado de qualquer maneira, mas tome cuidado com a direção do transistor e do diodo. O cátodo do diodo deve ser conectado ao fio + 5V (vermelho) e o ânodo deve ser conectado ao fio GND (preto). Verifique o documento do transistor para os pinos do Emissor, Base e Coletor. O aterramento do ventilador deve ser conectado ao Coletor, e o aterramento do Rpi deve ser conectado ao Emissor

Para controlar a ventoinha, precisamos usar um transistor que será usado na configuração do coletor aberto. Fazendo isso, temos um interruptor que irá conectar ou desconectar o fio terra do ventilador ao terra do raspberry pi.

Um transistor NPN BJT conduz dependendo da corrente que flui em sua porta. A corrente que poderá fluir do coletor (C) para o emissor (E) é:

Ic = B * Ib

Ic é a corrente que flui pelo coletor ao emissor, Ib é a corrente que flui pela base até o emissor e B (beta) é um valor dependente de cada transistor. Aproximamos B = 100.

Como nossa ventoinha tem potência nominal de 200mA, precisamos de pelo menos 2mA na base do transistor. A tensão entre a base e o emissor (Vbe) é considerada constante e Vbe = 0, 7V. Isso significa que quando o GPIO está ligado, temos 3,3 - 0,7 = 2,6 V no resistor. Para ter 2mA através desse resistor, precisamos de um resistor de, no máximo, 2,6 / 0,002 = 1300 ohm. Usamos um resistor de 1000 ohm para simplificar e manter uma margem de erro. Teremos 2,6mA através do pino GPIO que é totalmente seguro.

Como um ventilador é basicamente um motor elétrico, é uma carga indutiva. Isso significa que quando o transistor para de conduzir, a corrente no ventilador continuará fluindo enquanto uma carga indutiva tenta manter a corrente constante. Isso resultaria em uma alta tensão no pino terra do ventilador e poderia danificar o transistor. É por isso que precisamos de um diodo em paralelo com o ventilador que fará com que a corrente flua constantemente através do motor. Este tipo de configuração de diodo é chamado de diodo Flywheel

Etapa 3: Programa para controlar a velocidade do ventilador

Para controlar a velocidade do ventilador, usamos um sinal PWM de software da biblioteca RPi. GPIO. Um sinal PWM é bem adaptado para acionar motores elétricos, pois seu tempo de reação é muito alto em comparação com a frequência PWM.

Use o programa calib_fan.py para encontrar o valor FAN_MIN executando no terminal:

python calib_fan.py

Verifique vários valores entre 0 e 100% (devem ser em torno de 20%) e veja qual é o valor mínimo para o seu ventilador ligar.

Você pode alterar a correspondência entre a temperatura e a velocidade do ventilador no início do código. Deve haver tantos tempSteps quanto valores de speedSteps. Este é o método geralmente usado em placas-mãe de PC, movendo pontos em um gráfico de temperatura / velocidade de 2 eixos.

Etapa 4: execute o programa na inicialização

Para executar o programa automaticamente na inicialização, fiz um script bash onde coloco todos os programas que desejo iniciar e, em seguida, inicio esse script bash na inicialização com rc.locale

  1. Crie um diretório / home / pi / Scripts / e coloque o arquivo fan_ctrl.py dentro desse diretório.
  2. No mesmo diretório, crie um arquivo chamado launcher.sh e copie o script abaixo.
  3. Edite o arquivo /etc/rc.locale e adicione uma nova linha antes da "saída 0": sudo sh '/home/pi/Scripts/launcher.sh'

script launcher.sh:

#! / bin / sh # launcher.sh # navegue até o diretório inicial, a seguir para este diretório, execute o script python e volte homelocalecd / cd / home / pi / Scripts / sudo python3./fan_ctrl.py & cd /

Se você quiser usá-lo com o OSMC, por exemplo, precisará iniciá-lo como um serviço com o systemd.

  1. Baixe o arquivo fanctrl.service.
  2. Verifique o caminho para o seu arquivo python.
  3. Coloque fanctrl.service em / lib / systemd / system.
  4. Por fim, ative o serviço com sudo systemctl enable fanctrl.service.

Este método é mais seguro, pois o programa será reiniciado automaticamente se encerrado pelo usuário ou pelo sistema.

Recomendado: