Arduino temperaturstyrte DC-viftekretser

Prøv Instrumentet Vårt For Å Eliminere Problemer





I denne artikkelen skal vi konstruere et par enkle Arduino-baserte automatiske temperaturstyrte likestrømsviftekretser som vil slå PÅ en vifte eller andre dingser som er koblet til den, når omgivelsestemperaturen når et forhåndsbestemt terskelnivå. Vi skal bruke DHT11-sensor og arduino til dette prosjektet.

Oversikt

Det fine med mikrokontrollere er at vi får veldig presis kontroll over periferiutstyr som er koblet til den. I dette prosjektet trenger brukeren bare å legge inn terskeltemperaturen i programmet, mikrokontrolleren vil ta seg av resten av funksjonen.



Det er tonnevis av ikke-mikrokontroller-baserte automatiske temperaturregulatorprosjekter tilgjengelig på internett, for eksempel å bruke komparator og transistorer.

De er veldig enkle, og de fungerer bra, men problemet oppstår ved kalibrering av terskelnivået ved hjelp av forhåndsinnstilt motstand eller potensiometer.



Vi har en blind ide mens vi kalibrerer den, og brukeren kan trenge å prøve og feile metoden for å finne det søte stedet.

Disse problemene overvinnes av mikrokontrollere, brukeren trenger bare å angi temperaturen i Celsius i dette prosjektet, så det er ikke behov for kalibrering.

Dette prosjektet kan brukes der den interne temperaturen i kretsen må stabiliseres eller redde den fra overoppheting.

I diagram 1 kobler vi en CPU-vifte som utgang. Dette oppsettet kan brukes til å kontrollere den interne omgivelsestemperaturen til en lukket krets.

Når terskeltemperaturen er nådd, slås viften på. Når temperaturen går under terskelen, slås viften av. Så det er i utgangspunktet en automatisert prosess.

I diagram 2 koblet vi et relé for styring av enheter som går på nettspenning som bordvifte.

Når romtemperaturen når terskeltemperaturen, slås viften på og av når rommet avkjøles.

Dette kan være den beste måten å spare strøm på, og dette kan være himmelen for late mennesker som ønsker at andre slår på viften når de føler seg varme.

Kretsdiagram viser DC-viftekontroll

DC viftekontroll for automatisk temperaturjustering

Dette oppsettet kan distribueres for kretser som er lukket i en boks. LED-lampen slås PÅ når det forhåndsinnstilte terskelnivået nådde, og slås også på viften.

Koble til et relé for å kontrollere større fans

Relébryter viftekontroll ved hjelp av Arduino temperaturføler

Denne kretsen har den samme funksjonen som forrige krets, nå erstattes viften med relé.

Denne kretsen kan styre en bordvifte eller takvifte eller en hvilken som helst annen enhet som kan kjøle ned omgivelsestemperaturen.

Den tilkoblede enheten slås av så snart temperaturen nådd under forhåndsinnstilt terskelnivå.

Det temperaturstyrte likestrømsviftekretsdiagrammet illustrert her er bare noen få av mange muligheter. Du kan tilpasse kretsen og programmet for ditt eget formål.

MERKNAD 1: #Pin 7 sendes ut.

MERKNAD 2: Dette programmet er bare kompatibelt med DHT11-sensoren.

Program for ovennevnte automatiske temperaturregulatorkrets ved hjelp av Arduino:

Programkode

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

Merk: I programmet

int th = 30 // sett terskeltemperaturen i Celsius.

Erstatt “30” med ønsket verdi.

Andre design

Det andre temperaturstyrte likestrømsviftekretsprosjektet som er omtalt nedenfor, registrerer automatisk omgivelsestemperaturen og justerer viftehastigheten for å holde omgivelsestemperaturen under kontroll. Denne automatiske behandlingen gjøres gjennom en Arduino og en temperatursensor IC LM35.

Av:Ankit Negi

VÅRT MÅL:

1). Så snart temperaturen i omgivelsene øker utover 25 grader Celsius (du kan endre denne verdien i programmet i henhold til ditt behov, forklart i arbeidsdelen), starter motoren.

2). Og med hver grad av temperaturøkning øker motorens hastighet også.

3). Motoren går i toppfart så snart temperaturen stiger til 40 grader Celsius (denne verdien kan endres i programmet).

TEMPERATURSENSOR LM35:

For å oppnå oppgaven nevnt ovenfor, skal vi bruke temp. Sensor LM35 da den brukes mye og lett tilgjengelig.

LM35 har 3 pinner som du kan se på figuren.

LM35 IC pinout

1. Vin - denne pinnen er koblet til likestrømforsyning mellom 4 og 20 v.
2. Vout - denne pinnen gir utgang i form av spenning.
3. GND-- denne pinnen er koblet til kretsens terminal.

LM35, når den er koblet til strømforsyningen, registrerer den omgivelsestemperaturen og sender ekvivalent spenning i samsvar med temperaturøkningen gjennom utgangsstiften.

LM35 kan fornemme hvilken som helst temp. mellom -50 grader til +150 grader Celsius og øker effekten med 10 millivolt med 1 grad temperaturøkning. Dermed kan den maksimale spenningen gi som utgang 1,5 volt.

HVORFOR ARDUINO FOR DETTE DC-VENTILATORPROJEKTET?

Arduino kreves for å endre den analoge verdien som mottas fra utgangspinnen til LM35 til digital verdi og sender den tilsvarende digitale utgangen (PWM) til basen til mosfet.

Vi vil også bruke arduino kommandoer for å skrive ut temperatur, tilsvarende analog verdi og digital utgang til mosfet på seriell skjerm av ARDUINO IDE.

HVA ER ROLLE MED MAKTMOSFET?

Denne kretsen vil ikke være til nytte hvis den ikke kan kjøre motor med høy strøm. Derfor brukes strøm til mosfet for å kjøre slike motorer.

HVORFOR DIODE BRUKES?

Diode brukes til å beskytte mosfet fra baksiden av E.M.F generert av motor mens den kjører.

DELELISTE FOR PROSJEKTET:

1. LM35

2. ARDUINO

3. POWER MOSFET (IRF1010E)

POWER MOSFET (IRF1010E)

4. DIODE (1N4007)

DIODE (1N4007)

5. VIFTE (motor)

6. VENTILATOR FOR VENTILATOR

KRETSDIAGRAM:

Arduino temperaturavhengig DC-viftekontroll

Opprett tilkoblinger som vist i kretsskjemaet.

a) Koble vinpinne av lm358 til 5v av arduino
b) Koble voutpinnen på lm358 til A0 i arduino
c) Koble bakken på lm358 til GND på arduino
d) Koble basen av mosfet til PWM pin 10 på arduino

KODE:

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

ARBEID (forståelse av kode):

EN). VARIABEL X-

Dette er ganske enkelt den analoge verdien som mottas av pin nr. A0 fra utgangspinnen til LM35.

B). VARIABEL OG-

Bare på grunn av denne variabelen, kjører viftemotoren i samsvar med den tilsvarende temperaturen. Hva denne variabelen gjør er at den endrer den analoge verdien, dvs. variabelen x til tilsvarende temperatur i omgivelsene.

Y = (500 * x) / 1023
1. Første analoge verdi må endres til tilsvarende spenning, dvs.
1023: 5v
Derfor, (5000 millivolt * x) / 1023 V.
2. Nå vet vi at for hver grad øker temperaturen tilsvarende spenningsutgang med 10 mv, dvs.
1 grad Celsius: 10 millivolt
Derfor, (5000 millivolt * x) / (1023 * 10) GRAD

C). VARIABEL Z-

z = kart (x, 0, 1023, 0,255)
denne variabelen endrer den analoge verdien til digital verdi for pwm-utgang på pin 10.

MERK :: Vi vet at lm35 kan gi maksimum 1,5 volt og det også når temp. Er 150 grader. som ikke er praktisk.

Dette betyr at for 40 grader Celsius får vi 0,40 volt og for 25 grader får vi 0,25 volt. Siden disse verdiene er veldig lave for riktig pwm på mosfet, må vi multiplisere den med en faktor.

Derfor multipliserer vi den med 10 og gir i stedet denne verdien som analog utgang til PWM pin 10, dvs.

** analogWrite (10, z * 10)

Nå, for 0,25 volt får mosfet 0,25 * 10 = 2,5 volt

For .40 volt får mosfet 0,40 * 10 = 4 volt hvor motoren nesten går i full hastighet

SAK 1. Når temp. Er mindre enn 25 grader

I dette tilfellet sender arduino 0 PWM-spenning til pin 10 som i den siste linjen med kode

** annet
{analogWrite (10,0) // i alle andre tilfeller må PWM på pin 10 være 0
} **

Siden pwm-spenningen på basen av mosfet er 0, forblir den av og motoren kobles fra kretsen.

Se simulert krets i dette tilfellet.

Arduino viftekontrollsimulering

Som du ser temperaturen er 20 grader

Analog verdi = 41
Temperatur = 20
Kartlagt verdi = 100

Men siden temp er mindre enn 25 grader, får mosfet 0 volt som vist i fig (indikert med blå prikk).
SAK 2. Når temp. Er større enn 25 grader

Når temperaturen når 25 grader, sendes som spesifisert i koden pwm-signalet til basen av mosfet, og med hver grad økning i temperatur øker også denne PWM-spenningen, dvs.

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

Se simulert krets i dette tilfellet.

Som du kan se at temperaturen øker fra 20 grader til hele 40 grader, endres alle tre verdiene og ved 40 grader Celsius

Analog verdi = 82
Temperatur = 40
Kartlagt verdi = 200

Siden temp er større enn 25 grader, får mosfet tilsvarende PWM-spenning som vist i fig (indikert med rød prikk).

Derfor begynner motoren å kjøre ved 25 grader og med tilsvarende økning i temperaturen per grad øker også pwm-spenningen fra pin 10 til basen av mosfet. Derfor øker motorhastigheten lineært med økningen i temperatur og blir nesten maksimal i 40 grader Celsius.

Hvis du har ytterligere spørsmål angående den ovenfor forklarte automatiske temperaturstyrte DC-viftekretsen ved hjelp av vifte og Arduino, kan du alltid bruke kommentarfeltet nedenfor og sende tankene dine til oss. Vi vil prøve å komme tilbake tidligst.




Forrige: Enkel kjøleskap beskyttelseskrets Neste: Hvordan lage en UPS-krets for avbruddsfri strømforsyning