Circuits de ventilador de CC controlats per temperatura Arduino

Proveu El Nostre Instrument Per Eliminar Problemes





En aquest article anem a construir un parell de circuits de ventilador de CC de temperatura automàtics basats en Arduino senzills que activaran un ventilador o qualsevol altre aparell que hi estigui connectat, quan la temperatura ambient assoleixi un nivell de llindar predeterminat. Utilitzarem sensor DHT11 i arduino per a aquest projecte.

Visió general

La bellesa dels microcontroladors és que obtenim un control molt precís sobre els perifèrics que hi estan connectats. En aquest projecte, l'usuari només ha d'entrar la temperatura llindar al programa, el microcontrolador s'encarregarà de la resta de la funció.



Hi ha un munt de projectes de controladors de temperatura automàtics que no es basen en microcontroladors disponibles a Internet, com ara l’ús de comparadors i transistors.

Són molt senzills i funcionen bé, però, el problema sorgeix mentre es calibra el nivell de llindar mitjançant una resistència predeterminada o un potenciòmetre.



Tenim una idea cega mentre el calibrem i és possible que l’usuari hagi de fer un mètode d’assaig i error per trobar el punt dolç.

Aquests problemes són superats pels microcontroladors, l'usuari només ha d'introduir la temperatura en centígrads en aquest projecte, de manera que no cal calibrar.

Aquest projecte es pot utilitzar quan cal estabilitzar la temperatura interna del circuit o estalviant-lo del sobreescalfament.

Al diagrama 1, connectem un ventilador de CPU com a sortida. Aquesta configuració es pot utilitzar per controlar la temperatura ambiental interna d’un circuit tancat.

Quan s’assoleix la temperatura llindar, el ventilador s’encén. Quan la temperatura baixa per sota del llindar, el ventilador s'apaga. Per tant, bàsicament és un procés automatitzat.

Al diagrama 2, hem connectat un relé per controlar dispositius que funciona amb tensió de xarxa, com ara el ventilador de taula.

Quan la temperatura ambient arriba a la temperatura llindar, el ventilador s'encén i s'apaga quan la sala es refreda.

Aquesta pot ser la millor manera d’estalviar energia i això pot ser un paradís per a les persones gandules que desitgen que els altres engegin el ventilador quan se sentin calents.

Diagrama de circuits que mostra un control de ventilador de CC

Control de ventilador de CC per ajust de temperatura automàtic

Aquesta configuració es pot desplegar per a circuits inclosos en una caixa. El LED s’encén quan s’arriba al nivell de llindar preestablert i també engega el ventilador.

Connexió d’un relé per controlar ventiladors més grans

Control del ventilador del commutador de relé mitjançant el sensor de temperatura Arduino

Aquest circuit fa la funció similar del circuit anterior, ara el ventilador és substituït per relé.

Aquest circuit pot controlar un ventilador de taula o un ventilador de sostre o qualsevol altre aparell que pugui refredar la temperatura ambient.

El dispositiu connectat s'apaga tan bon punt la temperatura arriba al nivell de llindar predeterminat.

El diagrama del circuit del ventilador de corrent continu controlat per temperatura il·lustrat aquí són només algunes de les moltes possibilitats. Podeu personalitzar el circuit i el programa per al vostre propòsit.

NOTA 1: es produeix #Pin 7.

NOTA 2: Aquest programa només és compatible només amb el sensor DHT11.

Programa per al circuit de regulador de temperatura automàtic explicat anteriorment mitjançant Arduino:

Codi del 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: al programa

int th = 30 // estableix la temperatura llindar en centígrads.

Substituïu '30' pel valor desitjat.

Segon disseny

El segon projecte de circuit de ventilador de corrent continu controlat per temperatura que es discuteix a continuació detecta automàticament la temperatura ambient i ajusta la velocitat del motor del ventilador per mantenir la temperatura circumdant sota control. Aquest processament automàtic es realitza mitjançant un Arduino i un sensor de temperatura IC LM35.

Per:Ankit Negi

EL NOSTRE OBJECTIU:

1). Tan bon punt la temperatura de l’entorn augmenta més de 25 graus centígrads (podeu canviar aquest valor al programa segons les vostres necessitats, tal com s’explica a la secció de treball), el motor comença a funcionar.

2). I amb cada grau d’augment de temperatura, la velocitat del motor també augmenta.

3). El motor funciona a la seva velocitat màxima tan aviat com la temperatura puja a 40 graus centígrads (aquest valor es pot canviar al programa).

SENSOR DE TEMPERATURA LM35:

Per aconseguir la tasca esmentada anteriorment, farem servir temp. Sensor LM35, ja que s’utilitza àmpliament i fàcilment.

LM35 té 3 pins com podeu veure a la figura.

Pinout IC LM35

1. Vin-- aquest pin està connectat a una font d'alimentació de corrent continu entre 4 i 20 v.
2. Vout: aquest pin proporciona sortida en forma de voltatge.
3. GND: aquest pin està connectat al terminal gnd del circuit.

LM35, quan està connectat a la font d'alimentació, detecta el temperatura de l’entorn i envia un voltatge equivalent d'acord amb l'augment de la temperatura per grau a través del seu pin de sortida.

LM35 pot detectar qualsevol temperatura. entre -50 i +150 graus centígrads i augmenta la producció en 10 milivolts amb un augment de temperatura de 1 grau. Per tant, la tensió màxima que pot donar com a sortida és d’1,5 volts.

PER QUÈ ARDUINO PER A AQUEST PROJECTE DE CONTROLADOR DE FANS DC?

Es requereix Arduino per canviar el valor analògic rebut del pin de sortida de LM35 a valor digital i envia la sortida digital corresponent (PWM) a la base del mosfet.

També utilitzarem ordres arduino per imprimir la temperatura, valor analògic corresponent i sortida digital al mosfet al monitor sèrie de ARDUINO IDE.

QUIN ÉS EL PAPER DEL MOSFET DE PODER?

Aquest circuit no servirà de res si no pot fer funcionar un motor de gran intensitat. Per tant, per fer funcionar aquests motors s'utilitza mosfet.

PER QUÈ S’USA EL DIODE?

El díode s’utilitza per protegir el mosfet de l’EMF posterior generat pel motor mentre s’executa.

LLISTA DE PARTS PER AL PROJECTE:

1. LM35

2. ARDUINO

3. MOSFET DE POTÈNCIA (IRF1010E)

MOSFET POWER (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. FAN (motor)

6. ALIMENTACIÓ DEL VENTILADOR

ESQUEMA DE CONNEXIONS:

Control del ventilador de CC depenent de la temperatura Arduino

Feu les connexions tal com es mostra al diagrama de circuits.

a) Connecteu el pin vin de lm358 a 5v d’arduino
b) Connecteu el pin de vout de lm358 a A0 de arduino
c) Connecteu el pin de terra de lm358 a GND de arduino
d) Connecteu la base del mosfet al pin 10 de l'arduino PWM

CODI:

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
}
}

FUNCIONAMENT (comprensió del codi):

A). VARIABLE X-

Aquest és simplement el valor analògic que es rep pel pin núm. A0 del pin de sortida de LM35.

B). VARIABLE I-

A causa només d’aquesta variable, el motor del ventilador funciona d’acord amb la temperatura corresponent. El que fa aquesta variable és que canvia el valor analògic, és a dir, la variable x a la temperatura de l’entorn corresponent.

I = (500 * x) / 1023
1. El primer valor analògic s'ha de canviar a la tensió corresponent, és a dir,
1023: 5v
Per tant, (5000 milivolt * x) / 1023 V
2. Ara sabem que per a cada augment de grau de temperatura la sortida de tensió corresponent augmenta en 10 mv és a dir.
1 grau centígrad: 10 milivolts
Per tant, (5000 milivolt * x) / (1023 * 10) GRAU

C). VARIABLE Z-

z = mapa (x, 0, 1023, 0,255)
aquesta variable canvia el valor analògic a valor digital per a la sortida de pwm al pin 10.

NOTA :: Sabem que lm35 pot proporcionar un màxim d'1,5 volts i que també quan la temperatura. Té 150 graus. cosa que no és pràctica.

Això significa que per a 40 graus centígrads obtenim 0,40 volts i per a 25 graus obtenim 0,25 volts. Com que aquests valors són molt baixos per a un PWM adequat en un mosfet, hem de multiplicar-lo per un factor.

Per tant, el multipliquem per 10 i donem aquest valor com a sortida analògica al pin 10 de PWM, és a dir.

** analogWrite (10, z * 10)

Ara, per a 0,25 volts, el mosfet obté 0,25 * 10 = 2,5 volts

Per a, 40 volts, el mosfet obté 0,40 * 10 = 4 volts amb els quals el motor gairebé funciona a la seva màxima velocitat

CAS 1. Quan la temp. Té menys de 25 graus

En aquest cas, arduino envia 0 voltatge PWM al pin 10 com a l'última línia de codi

** en cas contrari
{analogWrite (10,0) // en qualsevol altre cas, PWM al pin 10 ha de ser 0
} **

Com que la tensió PWM a la base del mosfet és 0, roman apagada i el motor es desconnecta del circuit.

Vegeu el circuit simulat en aquest cas.

Simulació del control del ventilador Arduino

Com podeu veure, la temperatura és de 20 graus per tant

Valor analògic = 41
Temperatura = 20
Valor assignat = 100

Però com que la temperatura és inferior a 25 graus, per tant, el mosfet obté 0 volts com es mostra a la fig (indicat amb un punt blau).
CAS 2. Quan la temp. És superior a 25 graus

Quan la temperatura arriba als 25 graus, com s’especifica al codi, el senyal pwm s’envia a la base del mosfet i amb cada augment de temperatura, la tensió PWM també augmenta, és a dir,

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

Vegeu el circuit simulat en aquest cas.

Com podeu veure a mesura que la temperatura augmenta de 20 a 40 graus, els tres valors canvien i a 40 graus centígrads

Valor analògic = 82
Temperatura = 40
Valor assignat = 200

Atès que la temperatura és superior a 25 graus, per tant, el mosfet obté la tensió PWM corresponent, tal com es mostra a la figura (indicat amb un punt vermell).

Per tant, el motor comença a funcionar a 25 graus i amb la pujada corresponent de la temperatura per grau de la tensió pwm des del pin 10 fins a la base del mosfet també augmenta. Per tant, la velocitat del motor augmenta linealment amb l'augment de la temperatura i es fa gairebé màxima durant 40 graus centígrads.

Si teniu més preguntes sobre el circuit automàtic de ventilador de CC controlat per temperatura explicat anteriorment mitjançant ventilador i Arduino, sempre podeu fer servir el quadre de comentaris següent i enviar-nos les vostres opinions. Intentarem tornar al més aviat possible.




Anterior: Circuit senzill de protecció de nevera Següent: Com dissenyar un circuit d'alimentació ininterrompuda (SAI)