Circuitos de ventiladores DC com controle de temperatura Arduino

Experimente Nosso Instrumento Para Eliminar Problemas





Neste artigo, vamos construir um par de circuitos de ventilador CC com temperatura controlada automática simples, baseados em Arduino, que irão LIGAR uma ventoinha ou qualquer outro dispositivo conectado a ela, quando a temperatura ambiente atingir um nível de limite pré-determinado. Vamos utilizar o sensor DHT11 e o arduino para este projeto.

Visão geral

A beleza dos microcontroladores é que obtemos um controle muito preciso sobre os periféricos que estão conectados a eles. Neste projeto, o usuário só precisa inserir a temperatura limite no programa, o microcontrolador cuidará do resto da função.



Existem muitos projetos de controladores automáticos de temperatura não baseados em microcontroladores disponíveis na Internet, como o uso de comparador e transistores.

Eles são muito simples e funcionam bem, mas o problema surge ao calibrar o nível de limite usando um resistor ou potenciômetro predefinido.



Temos uma ideia cega ao calibrá-lo e o usuário pode precisar fazer o método de tentativa e erro para encontrar o ponto ideal.

Esses problemas são superados por microcontroladores, o usuário só precisa inserir a temperatura em Celsius neste projeto, portanto não há necessidade de calibração.

Este projeto pode ser usado onde a temperatura interna do circuito precisa ser estabilizada ou evitando superaquecimento.

No diagrama 1, estamos conectando uma ventoinha da CPU como saída. Esta configuração pode ser usada para controlar a temperatura ambiente interna de um circuito fechado.

Quando a temperatura limite é atingida, o ventilador é ligado. Quando a temperatura cai abaixo do limite, o ventilador desliga. Portanto, é basicamente um processo automatizado.

No diagrama 2, conectamos um relé para controlar dispositivos que funcionam com tensão de rede, como ventilador de mesa.

Quando a temperatura ambiente atinge o limite de temperatura, o ventilador liga e desliga quando o ambiente esfria.

Esta pode ser a melhor maneira de economizar energia e pode ser o paraíso para pessoas preguiçosas que desejam que outros liguem o ventilador quando se sentirem quentes.

Diagrama de circuito mostrando um controle de ventilador DC

Controle de ventilador DC para ajuste automático de temperatura

Esta configuração pode ser implantada para circuitos que são incluídos em uma caixa. O LED liga quando o nível de limite predefinido é atingido e também liga o ventilador.

Conectando um Relé para Controle de Ventiladores Maiores

Controle de ventilador de interruptor de relé usando sensor de temperatura Arduino

Este circuito faz a função semelhante ao circuito anterior, agora o ventilador é substituído por relé.

Este circuito pode controlar um ventilador de mesa ou de teto ou qualquer outro dispositivo que resfrie a temperatura ambiente.

O dispositivo conectado desliga assim que a temperatura atinge um nível abaixo do limite predefinido.

O diagrama do circuito do ventilador CC com temperatura controlada ilustrado aqui são apenas algumas das muitas possibilidades. Você pode personalizar o circuito e o programa para seu próprio propósito.

NOTA 1: #Pin 7 é emitido.

NOTA 2: Este programa é compatível apenas com o sensor DHT11.

Programe para o circuito regulador automático de temperatura explicado acima usando Arduino:

Código do Programa

//--------------------Program developed by R.Girish---------------------//
#include
dht DHT
#define DHTxxPIN A1
int p = A0
int n = A2
int ack
int op = 7
int th = 30 // set thershold tempertaure in Celsius
void setup(){
Serial.begin(9600) // May be removed after testing
pinMode(p,OUTPUT)
pinMode(n,OUTPUT)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
digitalWrite(p,1)
digitalWrite(n,0)
ack=0
int chk = DHT.read11(DHTxxPIN)
switch (chk)
{
case DHTLIB_ERROR_CONNECT:
ack=1
break
}
if(ack==0)
{
// you may remove these lines after testing, from here
Serial.print('Temperature(°C) = ')
Serial.println(DHT.temperature)
Serial.print('Humidity(%) = ')
Serial.println(DHT.humidity)
Serial.print(' ')
// To here
if (DHT.temperature>=th)
{
delay(3000)
if(DHT.temperature>=th) digitalWrite(op,HIGH)
}
if(DHT.temperature {
delay(3000)
if(DHT.temperature }
}
if(ack==1)
{
// may be removed after testing from here
Serial.print('NO DATA')
Serial.print(' ')
// To here
digitalWrite(op,LOW)
delay(500)
}
}
//-------------------------Program developed by R.Girish---------------------//

Nota: no programa

int th = 30 // define a temperatura limite em Celsius.

Substitua “30” pelo valor desejado.

Segundo Projeto

O segundo projeto de circuito de ventilador CC com temperatura controlada discutido abaixo detecta automaticamente a temperatura ambiente e ajusta a velocidade do motor do ventilador para manter a temperatura ambiente sob controle. Este processamento automático é feito através de um Arduino e um sensor de temperatura IC LM35.

De:Ankit Negi

NOSSO OBJETIVO:

1). Assim que a temperatura ambiente aumentar além de 25 graus Celsius (você pode alterar este valor no programa de acordo com sua necessidade, explicado na seção de trabalho), o motor começa a funcionar.

2). E com cada grau de aumento da temperatura, a velocidade do motor também aumenta.

3). O motor funciona em sua velocidade máxima assim que a temperatura sobe para 40 graus Celsius (este valor pode ser alterado no programa).

SENSOR DE TEMPERATURA LM35:

Para realizar a tarefa mencionada acima, vamos usar temp. Sensor LM35, pois é amplamente utilizado e facilmente disponível.

O LM35 tem 3 pinos como você pode ver na figura.

Pinagem LM35 IC

1. Vin - este pino é conectado à fonte de alimentação CC entre 4 a 20 V.
2. Vout - este pino fornece saída na forma de tensão.
3. GND - este pino é conectado ao terminal gnd do circuito.

LM35, quando conectado à fonte de alimentação detecta o temperatura ambiente e envia tensão equivalente de acordo com o aumento de grau na temperatura através de seu pino de saída.

O LM35 pode detectar qualquer temperatura. entre -50 graus a +150 graus Celsius e aumenta a produção em 10 milivolts com aumento de 1 grau na temperatura. Portanto, a tensão máxima que pode fornecer como saída é de 1,5 volts.

POR QUE ARDUINO PARA ESTE PROJETO DC FAN CONTROLLER?

O Arduino deve alterar o valor analógico recebido do pino de saída do LM35 para o valor digital e enviar a saída digital correspondente (PWM) para a base do mosfet.

Também vamos usar comandos do arduino para imprimir a temperatura, valor analógico correspondente e saída digital para mosfet no monitor serial de ARDUINO IDE.

QUAL É O PAPEL DO POWER MOSFET?

Este circuito será inútil se não puder operar o motor de alta corrente. Conseqüentemente, para operar tais motores, o mosfet de potência é usado.

POR QUE O DIODO É USADO?

O diodo é usado para proteger o mosfet da parte traseira E.M.F gerado pelo motor durante o funcionamento.

LISTA DE PEÇAS PARA O PROJETO:

1. LM35

2. ARDUINO

3. POWER MOSFET (IRF1010E)

POWER MOSFET (IRF1010E)

4. DIODO (1N4007)

DIODO (1N4007)

5. FAN (motor)

6. FONTE DE ALIMENTAÇÃO DO VENTILADOR

DIAGRAMA DE CIRCUITO:

Controle do ventilador DC dependente da temperatura do Arduino

Faça as conexões conforme mostrado no diagrama do circuito.

a) Conecte vin pin de lm358 a 5v de arduino
b) Conecte o pino vout do lm358 ao A0 do arduino
c) Conecte o pino de aterramento do lm358 ao GND do Arduino
d) Conecte a base do mosfet ao pino PWM 10 do Arduino

CÓDIGO:

float x// initialise variables
int y
int z
void setup()
{
pinMode(A0,INPUT) // initialize analog pin A0 as input pin
Serial.begin(9600) // begin serial communication
pinMode(10,OUTPUT) // initialize digital pin 10 as output pin
}
void loop()
{
x=analogRead(A0) // read analog value from sensor's output pin connected to A0 pin
y=(500*x)/1023// conversion of analog value received from sensor to corresponding degree Celsius (*formula explained in working section)
z=map(x,0,1023,0,255) // conversion of analog value to digital value
Serial.print('analog value ')
Serial.print( x) // print analog value from sensor's output pin connected to A0 pin on serial monitor( called 'analog value')
Serial.print(' temperature ')
Serial.print( y) // print the temprature on serial monitor( called 'temprature')
Serial.print(' mapped value ')
Serial.print( z*10) // multiply mapped value by 10 and print it ( called ' mapped value ' )
Serial.println()
delay(1000) // 1 sec delay between each print.
if(y>25)
{analogWrite(10,z*10) // when temp. rises above 25 deg, multiply digital value by 10 and write it on PWM pin 10 ( ** explained in working section)
}
else
{analogWrite(10,0) // in any other case PWM on pin 10 must be 0
}
}

TRABALHANDO (entendendo código):

UMA). VARIÁVEL X-

Este é simplesmente o valor analógico recebido pelo pino no. A0 do pino de saída do LM35.

B). VARIÁVEL E-

Por causa desta variável apenas, nosso motor de ventilador funciona de acordo com a temperatura correspondente. O que essa variável faz é alterar o valor analógico, ou seja, a variável x para a temperatura ambiente correspondente.

Y = (500 * x) / 1023
1. O primeiro valor analógico deve ser alterado para a tensão correspondente, ou seja,
1023: 5v
Portanto, (5000 milivolt * x) / 1023 V
2. Agora sabemos que para cada aumento de grau na temperatura, a tensão de saída correspondente aumenta em 10 mv, ou seja,
1 grau Celsius: 10 milivolts
Portanto, (5000 milivolt * x) / (1023 * 10) GRAU

C). VARIÁVEL Z-

z = mapa (x, 0, 1023, 0,255)
esta variável muda o valor analógico para o valor digital para a saída pwm no pino 10.

NOTA :: Sabemos que lm35 pode fornecer no máximo 1,5 volt e que também quando temp. É 150 graus. o que não é prático.

Isso significa que para 40 graus Celsius obtemos 0,40 volts e para 25 graus obtemos 0,25 volts. Como esses valores são muito baixos para o pwm adequado no mosfet, precisamos multiplicá-lo por um fator.

Portanto, multiplicamos por 10 e, em vez disso, fornecemos esse valor como saída analógica para o pino 10 de PWM, ou seja,

** analogWrite (10, z * 10)

Agora, para 0,25 volts o mosfet obtém 0,25 * 10 = 2,5 volts

Para 0,40 volts, o mosfet obtém 0,40 * 10 = 4 volts em que o motor quase funciona em sua velocidade total

CASO 1. Quando temp. É inferior a 25 graus

Neste caso, o arduino envia tensão 0 PWM para o pino 10 como na última linha do código

** outro
{analogWrite (10,0) // em qualquer outro caso, PWM no pino 10 deve ser 0
} **

Como a tensão pwm na base do mosfet é 0, ela permanece desligada e o motor é desconectado do circuito.

Veja circuito simulado neste caso.

Simulação de controle de ventilador Arduino

Como você pode ver, a temperatura é de 20 graus

Valor analógico = 41
Temperatura = 20
Valor mapeado = 100

Mas, como a temperatura é inferior a 25 graus, o mosfet obtém 0 volt como mostrado na fig (indicado pelo ponto azul).
CASO 2. Quando temp. É maior que 25 graus

Quando a temperatura atinge 25 graus, então, conforme especificado no código, o sinal pwm é enviado para a base do mosfet e com cada aumento de grau na temperatura, essa tensão PWM também aumenta, ou seja,

if(y>25)
{analogWrite(10,z*10)
} which is z* 10.

Veja circuito simulado neste caso.

Como você pode ver, conforme a temperatura aumenta de 20 graus a 40 graus, todos os três valores mudam e a 40 graus Celsius

Valor analógico = 82
Temperatura = 40
Valor mapeado = 200

Como a temperatura é superior a 25 graus, o mosfet obtém a tensão PWM correspondente, conforme mostrado na fig (indicada pelo ponto vermelho).

Conseqüentemente, o motor começa a funcionar a 25 graus e, com o aumento correspondente na temperatura por grau, a tensão pwm do pino 10 até a base do mosfet também aumenta. Conseqüentemente, a velocidade do motor aumenta linearmente com o aumento da temperatura e torna-se quase máxima em 40 graus Celsius.

Se você tiver alguma dúvida sobre o circuito de ventilador CC com temperatura controlada automática explicado acima usando ventoinha e Arduino, você pode usar a caixa de comentários abaixo e enviar suas ideias para nós. Tentaremos voltar o mais cedo possível.




Anterior: Circuito Protetor Simples de Geladeira Próximo: Como projetar um circuito de fonte de alimentação ininterrupta (UPS)