34
STRUČNI STUDIJ ELEKTROTEHNIKE SMJER AUTOMATIKA MIKRORAČUNALA U AUTOMATIZACIJI DIGITALNI INKUBATOR Studenti: Goran Šostarko Damjan Lukić Osijek, 2015. godina

Digitalni inkubator

Embed Size (px)

Citation preview

Page 1: Digitalni inkubator

STRUČNI STUDIJ ELEKTROTEHNIKE

SMJER AUTOMATIKA

MIKRORAČUNALA U AUTOMATIZACIJI

DIGITALNI INKUBATOR

Studenti:

Goran Šostarko

Damjan Lukić

Osijek, 2015. godina

Page 2: Digitalni inkubator

SADRŽAJ

1. UVOD ................................................................................................................................. 1

1.1 Zadatak projekta ............................................................................................................... 1

2. ZATVORENI SUSTAVI GRIJANJA ................................................................................ 2

2.1 Inkubatori .......................................................................................................................... 3

3. DIGITALNI INKUBATOR ................................................................................................ 4

3.1. Dijelovi digitalnog inkubatora ......................................................................................... 4

3.1.1. Kućište inkubatora .................................................................................................... 4

3.1.2 Napajanje ................................................................................................................... 6

3.1.3. Razvodna kutija ........................................................................................................ 6

3.1.4. Tiskana pločica ......................................................................................................... 8

3.2. Blokovski prikaz programa ........................................................................................... 10

3.3. Način rada inkubatora ................................................................................................ 10

3.4. Testiranje inkubatora ................................................................................................. 12

4. ZAKLJUČAK ................................................................................................................... 22

5. LITERATURA ................................................................................................................. 23

PRILOG I – DHT22 senzor temperature i vlage ...................................................................... 24

PRILOG II – IRF640N MOSFET ............................................................................................ 26

PRILOG III – Raspored pinova na ATmega328 mikroupravljaču .......................................... 28

PRILOG IV – Programski kod ................................................................................................. 29

Page 3: Digitalni inkubator

1

1. UVOD

U ovom radu predstavljaju se zatvoreni sustavi grijanja. Spomenuti su česti

primjeri zatvorenih termodinamičkih sustava. Jedan od zatvorenih sustava koji se u

raznim primjenama u praksi susreće je i inkubator. Maketa koja je izrađena i koja se

promatra u ovom radu konkretno je digitalni inkubator kojemu se temperatura regulira

pomoću PID algoritma.

U radu su detaljnije opisani dijelovi makete digitalnog inkubatora, njihove

funkcije i način na koji su izrađeni. Program koji upravlja sustavom je prikazan

blokovskim prikazom a programski kod se nalazi kao prilog na kraju rada. Opisan je

način rada inkubatora, način na koji se zadaju parametri putem računala i opisan je

grafički prikaz vrijednosti koje su potrebne za rad inkubatora (zadana i izmjerena

temperatura, izlazni signal iz PID regulatora, Kp, Ki, Kd parametri).

Na kraju rada izvršeno je testiranje rada digitalnog inkubatora. Inkubator se

prilikom testiranja zagrijavao i hladio na zadane temperature i izazvao se poremećaj

kako bi se vidjelo kako će sustav reagirati na smetnju.

ATmega328 mikroupravljač programiran je u Arduino softveru a sam grafički

prikaz programiran je u Processing 2 softveru.

1.1 Zadatak projekta

Zadatak projekta bio je izraditi maketu digitalnog inkubatora kojemu je

temperatura regulirana pomoću PID algoritma kojeg izvršava mikroupravljač. Inkubator

mora imati LCD zaslon na kojemu se ispisuje željena i izmjerena temperatura te

izmjerena vlaga. Za mjerenje je potrebno koristiti senzor temperature i vlage DHT22.

Temperaturu je potrebno zadavati preko računala putem serijske komunikacije.

Također, potrebno je ugradit i ventilator za hlađenje inkubatora.

Page 4: Digitalni inkubator

2

2. ZATVORENI SUSTAVI GRIJANJA

U termodinamici zatvoreni sustav može izmjenjivati energiju (kao što su toplina

ili rad) sa okolinom ali ne i materiju. Izolirani sustav ne može izmjenjivati toplinu rad

ili materiju sa okolinom dok otvoreni sustav može izmjenjivati svu toplinu, rad ili

materiju.

Slika 2.1. Shema zatvorenog termodinamičkog sustava, [4].

U zatvorenom sustavu masa se ne može prenijeti izvan granica sustava. Sustav

uvijek sadrži jednaku količinu materije ali toplina i rad se mogu prenijeti izvan granica

sustava. Bilo da sustav može izmjenjivati toplinu, radi ili oboje ovisi o svojstvima

granica sustava.

Adijabatska granica – ne dopušta nikakvu izmjenu topline, toplinski

izolirani sustav

Kruta granica – ne dopušta izmjenu rada, mehanički izolirani sustav

Jedan primjer je tlačenje fluida pomoću klipa u cilindru. Drugi primjer zatvorenog

sustava je bomba kalorimetar. To je kalorimetar koji ima konstantni volumen i služi za

mjerenje topline izgaranja pojedinih reakcija. Električna energija putuje preko granica

da bi proizvela iskru između elektrode i inicirala izgaranje. Prijenos topline događa se

preko granica nakon izgaranja ali nema prijenosa masa ni u jednom smjeru.

Page 5: Digitalni inkubator

3

Slika 2.2. Kalorimetar, [5].

Jedan od najčešćih zatvorenih termodinamičkih sustava je sustav centralnog

grijanja (slika 2.1.) koji se najčešće susreće u kućanstvima. Senzor reagira na izmjerenu

temperaturu i uspoređuje ju sa zadanim parametrima, prema potrebi uključuje i

isključuje bojler i pumpu koji služe za zagrijavanje i distribuciju vode u radijatore koji

griju neki prostor.

2.1 Inkubatori

Inkubator je naprava koja se koristi za repliciranje odnosno stvaranje umjetnih

stanja okoliša, kao što su temperatura i vlažnost zraka. Često se koristi za uzgoj

bakterijskih kultura, umjetno leženje jaja, odnosno za stvaranje odgovarajućih uvjeta za

kemijske i biološke reakcije. Gledajući sa aspekta termodinamike, inkubator je

zatvoreni termodinamički sustav.

Page 6: Digitalni inkubator

4

3. DIGITALNI INKUBATOR

3.1. Dijelovi digitalnog inkubatora

Digitalnim inkubatorom upravlja ATmega328 mikroupravljač. Čip se nalazi na

Croduino Basic pločici (Arduino kompatibilna pločica). Inkubator se grije pomoću auto

žarulje (12V, 55/60W) a hladi se pomoću ventilatora (12V, 0.16A) skinutog s hladnjaka

procesora računala. Zrak se tijekom rada inkubatora miješa pomoću ventilatora (12V).

Inkubator također ima LCD prikaz željene i izmjerene temperature te izmjerene vlage

unutar inkubatora. Temperatura i vlaga mjere se pomoću DHT22 senzora (prilog I.)

Također ima dvije signalne LE diode koje pokazuju kada je uključen grijač a kada

ventilator za hlađenje. Kućište inkubatora je plastična kutija sa prozirnim poklopcem

dimenzija 320x220x210 mm. Žarulju i ventilatore napaja staro napajanje računala (12V,

na izlazu daje max. 16A).

Slika 3.1. Digitalni inkubator.

3.1.1. Kućište inkubatora

Kućište inkubatora je izrađeno od plastične kutije sa prozirnim poklopcem.

Dimenzije kućišta su 320x220x210 mm. Na bočnoj strani kućišta izrezan je otvor

promjera oko 60 mm te je montiran ventilator za hlađenje inkubatora. Na sredinu

poklopca montirano je grlo sa auto žaruljom (12V, 55/60W). DHT22 senzor se nalazi

unutra kućišta. Senzor je montiran na plastični nosač dimenzija Ø5x15 mm. Iza senzora,

na kućište, je zalijepljena aluminijska folija dimenzija 80x80 mm. U kućištu se također

Page 7: Digitalni inkubator

5

nalazi i nosač na kojemu je montiran ventilator za miješanje zraka tijekom rada

inkubatora.

Slika 3.2. Auto žarulja montirana na poklopac kućišta.

Slika 3.3. DHT22 senzor montiran na nosač u kućištu.

Page 8: Digitalni inkubator

6

Slika 3.4.. Ventilator za miješanje zraka.

3.1.2 Napajanje

Inkubator se napaja preko računalnog napajanja (MS 400W ATX P4) koje je

prenamijenjeno za ovu svrhu. Vodiči +12V i GND su izvedene iz napajanje u razvodnu

kutiju i spojene na tiskanu pločicu. Napajanje na izlazu daje 12V i maksimalno 16A.

3.1.3. Razvodna kutija

Razvodna kutija je izrađena od ABS-a, dimenzija je 170x125x60 mm i ima ravni

poklopac sa 4 rupe za vijke za montažu. Na stražnjoj strani kutije je izrezan otvor

dimenzija 85x65 mm kroz koji viri hladnjak za tranzistor. Hladnjak je pričvršćen sa 3

vijka za kućište. Sa bočne strane se nalaze 5 provrta za kablove te jedan utor za USB

kabl koji povezuje Croduino sa računalom. Na poklopcu je izrezan otvor za LCD zaslon

te dvije rupe promjera 8mm za nosače LE dioda za signalizaciju. Unutra kutije se

također nalazi tiskana pločica i Croduino pločica. Tranzistor preko kojega se upravlja

sa ventilatorom za miješanje zraka pričvršćen ja na stjenku kućišta razvodne kutije.

Page 9: Digitalni inkubator

7

Slika 3.5. Stražnja strana razvodne kutije.

Slika 3.6. Poklopac razvodne kutije.

Page 10: Digitalni inkubator

8

Slika 3.7. Unutrašnjost razvodne kutije.

3.1.4. Tiskana pločica

Tiskana pločica je izrezana na dimenzije 47x37 mm te na nju postavljena folija

sa otisnutim vodovima a na foliju papir. Zagrijavanjem s glačalom tinta s folije prelazi

na bakreni sloj na pločici. Nedovoljno dobro otisnuti vodovi se popravljaju

vodootpornim markerom. Pločica se stavlja u kupku za jetkanje koja je mješavina solne

kiseline i hidrogena. Provrti izbušeni za komponente su promjera 0,5 mm.

Slika 3.8. Vodovi tiskane pločice.

Page 11: Digitalni inkubator

9

Slika 3.9. Zalemljene komponente na tiskanoj pločici.

Slika 3.10. Shema sustava.

Page 12: Digitalni inkubator

10

3.2. Blokovski prikaz programa

Slika 3.11. Blokovski prikaz programa.

3.3. Način rada inkubatora

Sustav radi na način da se preko grafičkog sučelja zadaje željena temperatura.

Mikroupravljač šalje upravljački signal tranzistoru koji uključuje žarulju ovisno o visini

upravljačkog napona (0-5V). Rezolucija PWM izlaznog signala koji upravlja žaruljom

je od 0-255. U slučaju da je izmjerena temperatura veća za 1°C od željene uključuje se

ventilator koji hladi sustav na željenu temperaturu. Isto tako željena i izmjerena

Page 13: Digitalni inkubator

11

temperatura i izmjerena vlaga se ispisuju na LCD zaslonu koji se nalazi na poklopcu

razvodne kutije. LCD zaslon preko I2C komunikacije dobiva podatke koje će ispisivat.

Također na poklopcu razvodne kutije imamo i dvije LE diode koje ukazuju na to dali

radi žarulja ili ventilator. Preko grafičkog sučelja se može zadavati željena vrijednost

temperature ali također se mogu zadavati i parametri PID regulator (Kp, Ki, Kd).

Za pisanje programa je korišten Arduino softver [3] otvorenog koda (IDE) a za

grafičko prikazivanje vrijednosti je korišten Processing 2 softver [4]. Programski kod

za PID regulator je skinut s interneta [4].

3.12. Sučelje za zadavanje vrijednosti.

Page 14: Digitalni inkubator

12

3.4.Testiranje inkubatora

Test 1.: Parametri: Kp = 80, Ki = 50, Kd = 0

Page 15: Digitalni inkubator

13

Page 16: Digitalni inkubator

14

Page 17: Digitalni inkubator

15

Temperatura sustava pri uključenju je iznosila 23°C. Zadana temperatura je

iznosila 26°C. Iz dijagrama se može vidjeti da je sustav postigao željenu temperaturu za

otprilike 6 minuta. Prvi maksimum mu je iznosio 26,4°C.

Nakon nekog vremena nova zadana temperatura je iznosila 23°C, što znači da se

grijač ugasio a ventilator za hlađenje upalio. Iz dijagrama se može vidjeti da je

inkubatoru bilo potrebo 10 minuta da se ohladi. Nakon hlađenja zadana je nova

temperatura koja je iznosila 27°C. Sustav se zagrijao za otprilike 6 minuta.

U 64. minuti je izazvan poremećaj mahanjem komadom kartona. Prilikom

djelovanja poremećaja temperatura je pala na 26°C. Sustavu je bilo potrebno 3 minute

da se stabilizira.

Page 18: Digitalni inkubator

16

Test 2.: Parametri: Kp = 100, Ki = 150, Kd = 0

Page 19: Digitalni inkubator

17

Page 20: Digitalni inkubator

18

Temperatura sustava pri uključenju je iznosila 23°C. Zadana temperatura je

iznosila 26°C. Iz dijagrama se može vidjeti da je sustav postigao željenu temperaturu za

otprilike 5 minuta. Prvi maksimum mu je iznosio 26,4°C.

Nakon nekog vremena nova zadana temperatura je iznosila 30°C. Sustav se

zagrijao za 9 minuta. U 37. minuti je izazvan poremećaj mahanjem komadom kartona.

Prilikom djelovanja poremećaja temperatura je pala na 28,8°C. Sustavu je bilo potrebno

5 minute da se stabilizira.

Page 21: Digitalni inkubator

19

Test 3.: Parametri: Kp = 100, Ki = 100, Kd = 0

Page 22: Digitalni inkubator

20

Page 23: Digitalni inkubator

21

Temperatura sustava pri uključenju je iznosila 18,8°C. Zadana temperatura je

iznosila 26°C. Iz dijagrama se može vidjeti da je sustav postigao željenu temperaturu za

otprilike 10 minuta. Prvi maksimum mu je iznosio 26,3°C.

U 34. minuti je izazvan poremećaj mahanjem komadom kartona. Prilikom

djelovanja poremećaja temperatura je pala na 24,9°C. Sustavu je bilo potrebno 3 minute

da se stabilizira. Nakon nekog vremena nova zadana temperatura je iznosila 24°C, što

znači da se grijač ugasio a ventilator za hlađenje upalio. Iz dijagrama se može vidjeti da

je inkubatoru bilo potrebo 3 minuta da se ohladi.

Page 24: Digitalni inkubator

22

4. ZAKLJUČAK

Iz aspekta termodinamike inkubator spada u zatvorene sustave grijanja. U

zatvorenom sustavu masa se ne može prenijeti izvan granica sustava. Sustav uvijek

sadrži jednaku količinu materije ali toplina i rad se mogu prenijeti izvan granica sustava.

Inkubator je naprava koja se koristi za repliciranje odnosno stvaranje umjetnih stanja

okoliša, kao što su temperatura i vlažnost zraka.

Izrada inkubatora je bila jednostavna što se tiče modelarskog i hardverskog

dijela. Što se tiče softverskog dijela naišli smo na male komplikacije zbog nedostatka

znanja iz programiranja ali smo te probleme riješili istraživanjem putem interneta i

razmatranjem raznih primjera programa koje smo pronašli.

U početku je inkubator bio jako trom. Nakon konzultacija s mentorom

napravljeno je par dorada. Senzor koji je bio zalijepljen za stjenku kućišta je postavljen

na plastični odstojnik kako se ne bi mjerila temperatura kućišta nego zraka u kućištu.

Dodan je ventilator za miješanje zraka koji povremeno radi, smješten je nasuprot

senzora. Iza senzora je postavljen komad aluminijske folije kao izolator. Nakon

primjene ovih izmjena inkubator radi puno brže.

Prilikom izrade ovog projekta povezana su znanja stečena iz kolegija osnove

automatske regulacije, automatskog upravljanja i elektronike. Stečena su nova znanja iz

programiranja mikroupravljača i programiranja općenito. Prilikom samostalne izrade

ovog projekta mogli smo vidjeti na kakve sve probleme možemo naići (postavljanje

vodiča, postavljanje aktuatora i senzora), na što sve moramo obratiti pozornost prilikom

dizajniranja tiskane pločice (raspored komponenti, pravilan raspored vodova, itd.).

Page 25: Digitalni inkubator

23

5. LITERATURA

[1] Open and closed loop systems, http://www.bbc.co.uk/schools/gcsebitesize/

design/electronics/industrial_designrev3.shtml, pristup: 1.3.2015.

[2] Arduino Software, http://arduino.cc/en/Main/Software,

pristupio: 9.2.2015.

[3] Arduino PID library, http://playground.arduino.cc/Code/PIDLibrary,

pristupio: 9.2.2015.

[4] Vrste sustava, http://www.medioteka.hr/portal/ss_fizika2.php?ktg=

2&pktg=&mid=43, pristup: 9.2.2015.

[5] Thermochemistry, http://hrsbstaff.ednet.ns.ca/sweetap/thermonotes1.htm,

pristup: 9.2.2015.

Page 26: Digitalni inkubator

24

PRILOG I – DHT22 senzor temperature i vlage

Page 27: Digitalni inkubator

25

Page 28: Digitalni inkubator

26

PRILOG II – IRF640N MOSFET

Page 29: Digitalni inkubator

27

Page 30: Digitalni inkubator

28

PRILOG III – Raspored pinova na ATmega328 mikroupravljaču

Page 31: Digitalni inkubator

29

PRILOG IV – Programski kod

#include <PID_v1.h>

#include "DHT.h"

#include <Wire.h>

#include <LiquidCrystal_I2C.h>

#define DHTPIN 2 // Digitalni pin 2 - DHT senzor

#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

LiquidCrystal_I2C lcd(0x27,16,2);

//Define Variables we'll be connecting to

double Setpoint, Input, Output;

int inputPin=2, outputPin=5, Hladnjak=6;

int gr=10, hl=9;

int x = 1; // brojac za ventilator za cirkulaciju

int ventilator = 11; // ventilator za cirkulaciju zraka

int vent = 0;

int y = 1; // brojac za lcd ekran

int ekran = 0;

//Specify the links and initial tuning parameters

PID myPID(&Input, &Output, &Setpoint,100,100,0, DIRECT);

unsigned long serialTime; //this will help us know when to talk with processing

Page 32: Digitalni inkubator

30

void setup(){

pinMode(6, OUTPUT);

pinMode(9, OUTPUT);

pinMode(10, OUTPUT);

pinMode(ventilator, OUTPUT);

//initialize the serial link with processing

Serial.begin(9600);

dht.begin();

lcd.init();

lcd.backlight();

//initialize the variables we're linked to

Setpoint = 0;

//turn the PID on

myPID.SetMode(AUTOMATIC);

}

void loop(){

float h = dht.readHumidity();

Input = dht.readTemperature();

vent=vent+x; // cirkulacija zraka

if(vent==40){

analogWrite(ventilator, 80);

x=-8;

}

else if (vent==0){

analogWrite(ventilator, 0);

x=1;

}

Page 33: Digitalni inkubator

31

myPID.Compute();

analogWrite(outputPin,Output);

if (Output > 1 && Output <= 255) {

digitalWrite(gr, HIGH);

}

else {

digitalWrite(gr,LOW);

}

if (Input >= (Setpoint+1) && Input > (Setpoint)){

analogWrite(outputPin,0);

digitalWrite(Hladnjak,HIGH);

digitalWrite(hl,HIGH);

digitalWrite(gr, LOW); }

else if (Input <= (Setpoint)){

digitalWrite(Hladnjak,LOW);

digitalWrite(hl,LOW);

}

ekran=ekran+y; // LCD ekran

if(ekran==2){

lcd.setCursor(0,0);

lcd.print("Temp mj: ");

lcd.print(Input);

lcd.print("*C");

lcd.setCursor(0,1);

lcd.print("Temp zd: ");

lcd.print(Setpoint);

lcd.print("*C");

Page 34: Digitalni inkubator

32

y=-1;

}

else if (ekran==0){

lcd.clear();

lcd.setCursor(0,0);

lcd.print(" Vlaga: ");

lcd.print(h);

lcd.print(" %");

y=1;

}

delay(1000);