- Reikalinga medžiaga
- Grandinės schema
- Estafetė:
- Temperatūros apskaičiavimas naudojant termistorių:
- „Arduino“ kodas
- Temperatūros valdomos namų automatikos sistemos darbas:
Tarkime, kad sėdite kambaryje ir jaučiate šaltį ir norite, kad jūsų šildytuvas būtų automatiškai įjungtas, o po tam tikro laiko išsijungtų, kai padidėja kambario temperatūra, tada šis projektas padės jums automatiškai valdyti buitinę techniką pagal temperatūrą. Čia mes kontroliuojame namų kintamosios srovės prietaisus su „Arduino“ pagal temperatūrą. Temperatūrai nuskaityti naudojome „Thermistor“. Mes jau sujungėme termistorių su „Arduino“ ir rodėme temperatūrą LCD ekrane.
Šioje pamokoje pritvirtinsime kintamosios srovės prietaisą su „Relay“ ir pagaminsime temperatūros kontroliuojamą namų automatikos sistemą naudodami „Arduino“. Tai taip pat rodo temperatūrą ir prietaiso būseną 16 * 2 skystųjų kristalų ekrane, prijungtame prie grandinės.
Reikalinga medžiaga
- „Arduino UNO“
- Relė (5v)
- 16 * 2 LCD ekranas
- Lemputė (CFL)
- NTC termistorius 10k
- Jungiamieji laidai
- Rezistoriai (1k ir 10k omai)
- Potenciometras (10k)
Grandinės schema
Ši temperatūros pagrindu sukurta namų automatikos sistema susideda iš įvairių komponentų, tokių kaip „Arduino“ plokštė, LCD ekranas, relė ir termistorius. Veikimas daugiausia priklauso nuo relės ir termistoriaus, nes padidėjus temperatūrai, relė bus įjungta ir, jei temperatūra nukris žemiau nustatytos vertės, relė bus išjungta. Namų prietaisas, prijungtas prie relės, taip pat atitinkamai įsijungs ir išsijungs. Čia mes naudojome CFL lemputę kaip kintamosios srovės prietaisą. Visą paleidimo procesą ir temperatūros vertės nustatymą atlieka užprogramuota „Arduino“ plokštė. Taip pat LCD ekrane pateikiama išsami informacija apie temperatūros pokyčius kas pusę sekundės ir prietaiso būseną.
Estafetė:
Relė yra elektromagnetinis jungiklis, valdomas maža srove ir naudojamas įjungti ir išjungti santykinai daug didesnę srovę. Reiškia, naudojant mažą srovę, mes galime įjungti relę, kuri leidžia tekėti daug didesnei srovei. Relė yra geras kintamosios srovės (kintamosios srovės) įrenginių valdymo pavyzdys, naudojant daug mažesnę nuolatinę srovę. Dažniausiai naudojama relė yra vieno poliaus dvigubo metimo (SPDT) relė, ji turi penkis gnybtus, kaip nurodyta toliau:
Kai ritėje nėra įtampos, COM (bendras) yra prijungtas prie NC (paprastai uždaras kontaktas). Kai ant ritės yra įtempta tam tikra įtampa, susidaro elektromagnetinis laukas, kuris pritraukia armatūrą (svirtį, sujungtą su spyruokle), ir COM ir NO (paprastai atviras kontaktas), kurie leidžia tekėti didesnei srovei. Relės yra daugybėje, čia mes naudojome 5 V darbinės įtampos relę, kuri leidžia tekėti 7A-250VAC srovei.
Relė sukonfigūruojama naudojant mažą tvarkyklės grandinę, kurią sudaro tranzistorius, diodas ir rezistorius. Tranzistorius naudojamas srovei sustiprinti, kad visa srovė (iš nuolatinės srovės šaltinio - 9v baterija) galėtų tekėti per ritę, kad ją visiškai įjungtų. Rezistorius naudojamas tranzistoriaus poslinkiui užtikrinti. Diodas naudojamas norint išvengti atvirkštinės srovės srauto, kai tranzistorius yra išjungtas. Staiga išjungus, kiekviena induktoriaus ritė sukuria vienodą ir priešingą EMF, tai gali visam laikui sugadinti komponentus, todėl norint išvengti atbulinės srovės reikia naudoti diodą. Relė modulis yra lengvai prieinama rinkoje su visais jo pavaros grandinės ant lentos arba galite jį sukurti naudojant aukščiau komponentų. Čia mes panaudojome 5V relės modulį
Temperatūros apskaičiavimas naudojant termistorių:
Iš įtampos skirstytuvo grandinės žinome, kad:
V išėjimas = (V į * Rt) / (R + Rt)
Taigi Rt vertė bus:
Rt = R (Vin / Vout) - 1
Čia Rt bus termistoriaus varža (Rt), o R - 10 k omų rezistorius.
Ši lygtis naudojama termistoriaus varžai apskaičiuoti pagal išmatuotą išėjimo įtampos vertę Vo. „Voltage Vout“ vertę galime gauti iš „ADC“ vertės, esančios „Arduino“ kaiščio A0, kaip parodyta toliau pateiktame „Arduino“ kode.
Temperatūros apskaičiavimas pagal termistoriaus varžą
Matematiškai termistoriaus varžą galima apskaičiuoti tik naudojant Steino-Harto lygtį.
T = 1 / (A + B * ln (Rt) + C * ln (Rt) 3)
Kur A, B ir C yra konstantos, Rt yra termistoriaus varža ir ln reiškia log.
Projekte naudojamo termistoriaus pastovioji vertė yra A = 1,009249522 × 10 −3, B = 2,378405444 × 10 −4, C = 2,019202697 × 10 −7. Šias pastovias vertes galima gauti iš skaičiuoklės čia, įvedant tris termistoriaus varžos vertes trijose skirtingose temperatūrose. Šias pastovias vertes galite gauti tiesiogiai iš termistoriaus duomenų lapo arba galite gauti tris pasipriešinimo reikšmes skirtingoje temperatūroje ir gauti „Constants“ vertes naudodami pateiktą skaičiuoklę.
Taigi, norint apskaičiuoti temperatūrą, mums reikia tik termistoriaus varžos vertės. Gavę Rt vertę iš aukščiau pateikto skaičiavimo, reikšmes įtraukite į Steino-Harto lygtį, o temperatūros vertę gausime Kelvino vienetu. Kadangi nedidelis išėjimo įtampos pokytis sukelia temperatūros pokyčius.
„Arduino“ kodas
Pilnas šios temperatūros valdomų buitinių prietaisų „ Arduino“ kodas pateiktas šio straipsnio pabaigoje. Čia mes paaiškinome keletą jo dalių.
Matematinėms operacijoms atlikti naudojame antraštės failą „#include
# įtraukti
Norėdami nustatyti relę (kaip išvestį) ir skystųjų kristalų ekraną pradžios metu, tuščioje sąrankos dalyje turime įrašyti kodą
Panaikinti sąranką () {lcd.begin (16,2); lcd.clear (); „pinMode“ (RELĖ, IŠĖJIMAS); }
Norėdami apskaičiuoti temperatūrą pagal Stein-Hart lygtį, naudodami termistoriaus elektrinę varžą, mes atliekame keletą paprastų matematinių lygčių kodais, kaip paaiškinta aukščiau pateiktame skaičiavime:
plūdė a = 1,009249522e-03, b = 2,378405444e-04, c = 2,019202697e-07; plūdė T, logRt, Tf, Tc; plūduriuojantis termistorius (int Vo) {logRt = log (10000.0 * ((1024.0 / Vo-1))); T = (1,0 / (a + b * logRt + c * logRt * logRt * logRt)); // Temperatūros reikšmę Kelvine gauname iš šios Steino-Harto lygties Tc = T - 273,15; // Konvertuokite Kelviną į Celsijaus laipsnius Tf = (Tc * 1,8) + 32,0; // Konvertuokite Kelviną į Farenheito grąžą T; }
Žemiau esančiame kode funkcinis termistorius nuskaito vertę iš „Arduino“ analoginio kaiščio ir spausdina temperatūros vertę atlikdamas matematinę operaciją
lcd.print ((termistorius (analogRead (0))));
Šią vertę ima „ Thermistor“ funkcija, tada skaičiavimas pradedamas spausdinti
plūduriuojantis termistorius (int Vo)
Pagal temperatūrą turime parašyti šviesos įjungimo ir išjungimo būklės kodą, kai nustatome temperatūros vertę, pavyzdžiui, jei temperatūra pakils daugiau nei 28 laipsnių Celsijaus, žibintai įsijungs, jei lempučių liks mažiau. Taigi, kai temperatūra pakyla virš 28 laipsnių, RELAY kaištį (PIN 8) reikia padaryti aukštą, kad relės modulis būtų įjungtas. Kai temperatūra nukrinta žemiau 28 laipsnių, turime išjungti RELAY kaištį, kad išjungtume relės modulį.
if (Tc> 28) digitalWrite (RELAY, HIGH), lcd.setCursor (0,1), lcd.print ("Šviesos būsena: ON"), vėlavimas (500); else if (Tc <28) digitalWrite (RELAY, LOW), lcd.setCursor (0,1), lcd.print ("Šviesos būsena: IŠJUNGTA"), vėlavimas (500);
Temperatūros valdomos namų automatikos sistemos darbas:
Norėdami tiekti „Arduino“, galite jį maitinti per USB prie nešiojamojo kompiuterio arba prijungti 12v adapterį. Skystųjų kristalų ekranas yra susietas su „Arduino“, kad būtų rodomos temperatūros vertės, termistorius ir relė yra prijungti pagal grandinės schemą. Analoginis kaištis (A0) naudojamas tikrinti termistoriaus kaiščio įtampą kiekvieną akimirką, o atlikę skaičiavimą naudodami Steino-Harto lygtį per „Arduino“ kodą, galime gauti temperatūrą ir ją rodyti LCD ekrane Celsijaus ir Farenheito laipsniais.
Kai temperatūra pakyla daugiau nei 28 laipsnių Celsijaus laipsniu, „Arduino“ įjungia relės modulį, kai kaištis 8 yra aukštas (kur prijungtas relės modulis), kai temperatūra nukrenta žemiau 28 laipsnių. „Arduino“ išjungia relės modulį, padarydamas kaištį žemą. CFL lemputė taip pat įsijungs ir išjungs pagal relės modulį.
Ši sistema gali būti labai naudinga vykdant ventiliatoriaus su temperatūros valdymu ir automatinio kintamosios srovės temperatūros reguliatoriaus projektą.
Taip pat patikrinkite mūsų daugelio tipų namų automatikos projektus, naudodami skirtingas technologijas ir mikrovaldiklius, tokius kaip: