Arduino temperaturstyrda DC-fläktkretsar

Prova Vårt Instrument För Att Eliminera Problem





I den här artikeln ska vi konstruera ett par enkla Arduino-baserade automatiska temperaturreglerade likströmsfläktkretsar som slår PÅ en fläkt eller andra prylar som är anslutna till den, när omgivningstemperaturen når en förutbestämd tröskelnivå. Vi kommer att använda DHT11-sensorn och arduino för detta projekt.

Översikt

Det fina med mikrokontroller är att vi får mycket exakt kontroll över kringutrustningen som är ansluten till den. I det här projektet behöver användaren bara mata in tröskeltemperaturen i programmet, mikrokontrollen tar hand om resten av funktionen.



Det finns massor av icke-mikrokontrollerbaserade automatiska temperaturregulatorprojekt tillgängliga över internet, som att använda komparator och transistorer.

De är väldigt enkla och de fungerar bra men problemet uppstår vid kalibrering av tröskelnivån med förinställt motstånd eller potentiometer.



Vi har en blind idé när vi kalibrerar den och användaren kan behöva göra test-och-felmetod för att hitta den söta fläcken.

Dessa problem övervinns av mikrokontroller, användaren behöver bara ange temperaturen i Celsius i detta projekt, så inget behov av kalibrering.

Detta projekt kan användas där kretsens interna temperatur måste stabiliseras eller spara den från överhettning.

I diagram 1 ansluter vi en CPU-fläkt som utgång. Denna inställning kan användas för att styra den interna omgivningstemperaturen i en sluten krets.

När tröskeltemperaturen uppnås slås fläkten på. När temperaturen går under tröskelvärdet stängs fläkten av. Så det är i grunden en automatiserad process.

I diagram 2 kopplade vi ett relä för styrenheter som går på nätspänning som bordsfläkt.

När rumstemperaturen når tröskeltemperaturen slås fläkten på och stängs av när rummet svalnar.

Detta kan vara det bästa sättet att spara ström och det kan vara himlen för lata människor som vill att andra ska slå på fläkten när de känner sig varma.

Kretsschema som visar en DC-fläktkontroll

DC-fläktstyrning för automatisk temperaturjustering

Denna inställning kan användas för kretsar som är inneslutna i en låda. LED-lampan tänds när den förinställda tröskelnivån nås och tänds också på fläkten.

Ansluta ett relä för styrning av större fläktar

Reläbrytare fläktstyrning med Arduino temperatursensor

Denna krets har samma funktion som tidigare krets, nu ersätts fläkten med relä.

Denna krets kan styra en bordsfläkt eller takfläkt eller någon annan gadget som kan kyla ner omgivningstemperaturen.

Den anslutna enheten stängs av så snart temperaturen nått under förinställd tröskelnivå.

Det temperaturstyrda likströmsfläktdiagrammet som illustreras här är bara några av många möjligheter. Du kan anpassa kretsen och programmet för ditt eget syfte.

OBS 1: #Pin 7 matas ut.

OBS 2: Detta program är endast kompatibelt med DHT11-sensorn.

Program för ovan beskrivna automatiska temperaturregulatorkrets med Arduino:

Programkod

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

Obs: I programmet

int th = 30 // ställ in tröskeltemperaturen i Celsius.

Byt ut “30” med önskat värde.

Andra designen

Det andra temperaturstyrda likströmsfläktkretsprojektet som diskuteras nedan känner automatiskt av omgivningstemperaturen och justerar fläktmotorns hastighet för att hålla omgivningstemperaturen under kontroll. Denna automatiska bearbetning sker via en Arduino och en temperatursensor IC LM35.

Förbi:Ankit Negi

VÅRT MÅL:

1). Så snart omgivningstemperaturen ökar över 25 grader Celsius (du kan ändra detta värde i programmet efter dina behov, förklaras i arbetsavsnittet), börjar motorn att gå.

2). Och med varje grad av temperaturhöjning ökar också motorns hastighet.

3). Motorn kör med sin högsta hastighet så snart temperaturen stiger till 40 grader Celsius (detta värde kan ändras i programmet).

TEMPERATURSENSOR LM35:

För att uppnå ovan nämnda uppgift kommer vi att använda temp. Sensor LM35 eftersom den används allmänt och lätt tillgänglig.

LM35 har 3 stift som du kan se på bilden.

LM35 IC pinout

1. Vin - denna stift är ansluten till likström mellan 4 och 20 V.
2. Vout - detta stift ger utgång i form av spänning.
3. GND - denna stift är ansluten till kretsens gnd-terminal.

LM35 känner av när den är ansluten till strömförsörjningen omgivningens temperatur och skickar ekvivalent spänning i enlighet med per graders temperaturökning genom sin utgångsstift.

LM35 kan känna av alla temp. mellan -50 grader till +150 grader Celsius och ökar effekten med 10 millivolt med 1 graders temperaturökning. Således kan den maximala spänningen ge som utgång 1,5 volt.

VARFÖR ARDUINO FÖR DETTA DC-FLÄKKONTROLLPROJEKT?

Arduino krävs för att ändra det analoga värdet som tas emot från utgångsstiftet på LM35 till det digitala värdet och skickar motsvarande digital utgång (PWM) till basen av MOSFET.

Vi kommer också att använda arduino kommandon för att skriva ut temperatur, motsvarande analogt värde och digital utgång till mosfet på seriell bildskärm av ARDUINO IDE.

VAD ÄR ROLEN FÖR KRAFTMOSFET?

Denna krets kommer att vara till nytta om den inte kan köra motor med hög ström. Därför används för att köra sådana motorer makt mosfet.

VARFÖR DIOD ANVÄNDS?

Dioden används för att skydda mosfet från den bakre E.M.F som genereras av motorn under körning.

DELLISTA FÖR PROJEKTET:

1. LM35

2. ARDUINO

3. POWER MOSFET (IRF1010E)

POWER MOSFET (IRF1010E)

4. DIOD (1N4007)

DIOD (1N4007)

5. FLÄKT (motor)

6. FÖRSÖRJNING AV FLÄKT

KRETSDIAGRAM:

Arduino temperaturberoende DC-fläktkontroll

Gör anslutningar som visas i kretsschemat.

a) Anslut vinstift på lm358 till 5v arduino
b) Anslut voutstiftet på lm358 till A0 på arduino
c) Anslut jordstiftet på lm358 till GND på arduino
d) Anslut mosfets bas till PWM-stift 10 på arduino

KODA:

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

ARBETE (förstå kod):

A). VARIABEL X-

Detta är helt enkelt det analoga värdet som tas emot av stift nr. A0 från utgångsstiftet på LM35.

B). VARIABEL OCH-

Enbart på grund av denna variabel går vår fläktmotor enligt motsvarande temperatur. Vad denna variabel gör är att den ändrar det analoga värdet, dvs. variabeln x till motsvarande omgivningstemperatur.

Y = (500 * x) / 1023
1. Det första analoga värdet måste ändras till motsvarande spänning, dvs.
1023: 5v
Därför (5000 millivolt * x) / 1023 V.
2. Nu vet vi att för varje grad ökar temperaturen motsvarande spänningsutgång med 10 mv, dvs.
1 grad Celsius: 10 millivolt
Följaktligen (5000 millivolt * x) / (1023 * 10) GRAD

C). VARIABEL Z-

z = karta (x, 0, 1023, 0,255)
denna variabel ändrar det analoga värdet till digitalt värde för pwm-utgång på stift 10.

NOTERA :: Vi vet att lm35 kan ge maximalt 1,5 volt och det också när temp. Är 150 grader. vilket inte är praktiskt.

Det betyder att för 40 grader Celsius får vi 0,40 volt och för 25 grader får vi 0,25 volt. Eftersom dessa värden är mycket låga för korrekt pwm på mosfet, måste vi multiplicera det med en faktor.

Därför multiplicerar vi det med 10 och istället ger detta värde som analog utgång till PWM-stift 10, dvs.

** analogWrite (10, z * 10)

För 0,25 volt får mosfet 0,25 * 10 = 2,5 volt

För .40 volt får mosfet 0,40 * 10 = 4 volt där motorn nästan går med full hastighet

FALL 1. När temp. Är mindre än 25 grader

I detta fall skickar arduino 0 PWM-spänning till stift 10 som i den sista kodraden

** annat
{analogWrite (10,0) // i något annat fall måste PWM på stift 10 vara 0
} **

Eftersom pwm-spänningen på basen av mosfet är 0, förblir den av och motorn kopplas bort från kretsen.

Se simulerad krets i detta fall.

Arduino fläktkontrollsimulering

Som du kan se är temperaturen 20 grader därav

Analogt värde = 41
Temperatur = 20
Mappat värde = 100

Men eftersom temp är mindre än 25 grader får Mosfet 0 volt som visas i fig (indikeras av blå prick).
FALL 2. När temp. Är större än 25 grader

När temperaturen når 25 grader skickas pwm-signalen, som specificerats i koden, till basen av mosfet och med varje stigning i temperatur ökar även denna PWM-spänning d.v.s.

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

Se simulerad krets i detta fall.

Som du kan se att temperaturen ökar från 20 grader till 40 grader, ändras alla tre värdena och vid 40 grader Celsius

Analogt värde = 82
Temperatur = 40
Mappat värde = 200

Eftersom temp är högre än 25 grader får mosfet motsvarande PWM-spänning som visas i fig (indikerad med röd punkt).

Därför börjar motorn köra vid 25 grader och med motsvarande ökning av temperaturen per grad ökar pwm-spänningen från stift 10 till basen av mosfet också. Därför ökar motorhastigheten linjärt med temperaturökningen och blir nästan maximal vid 40 grader Celsius.

Om du har ytterligare frågor angående den ovan beskrivna automatiska temperaturkontrollerade likströmsfläktkretsen med fläkt och Arduino, kan du alltid använda kommentarfältet nedan och skicka dina tankar till oss. Vi kommer att försöka komma tillbaka tidigast.




Tidigare: Enkel kylskyddskrets Nästa: Hur man utformar en avbrottsfri strömförsörjningskrets (UPS)