Sadržaj:

Arduino model klima uređaja: 6 koraka
Arduino model klima uređaja: 6 koraka

Video: Arduino model klima uređaja: 6 koraka

Video: Arduino model klima uređaja: 6 koraka
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Studeni
Anonim
Arduino model klima uređaja
Arduino model klima uređaja

Kao dio demonstracije sposobnosti našeg tima da izradi model pametnog vlaka u marketinške svrhe, cilj je bio stvoriti sustav u kojem senzor temperature čita podatke iz kruga i pretvara podatke u vrijednost temperature koja je prikazuje se na osvijetljenom zaslonu i fokusira se na to hoće li se ventilator uključiti ili isključiti. Svrha je pomoći u prilagođavanju uvjeta vožnje putnika pomoću automatiziranog sustava koji također prikazuje temperaturu u neposrednoj blizini.

Koristeći Arduino komplet mikrokontrolera i MATLAB verzije 2016b i 2017b, uspjeli smo relativno uspješno pokazati ove rezultate.

Korak 1: Oprema

Oprema
Oprema

Komplet mikrokontrolera sa sljedećim:

-Sparkfun Crvena tabla

-Sparkfun Breadboard

-LCD ploča

-Potenciometar

-Senzor temperature

-Servo

-USB/Arduino adapter

-Jamper žice (najmanje 25)

Prijenosno računalo (Windows 10) s USB ulazom

3D ispisani objekt (izborno)

Korak 2: Postavljanje mikrokontrolera

Postavljanje mikrokontrolera
Postavljanje mikrokontrolera
Postavljanje mikrokontrolera
Postavljanje mikrokontrolera
Postavljanje mikrokontrolera
Postavljanje mikrokontrolera
Postavljanje mikrokontrolera
Postavljanje mikrokontrolera

Uzmite u obzir ovo: cijeli sustav sastoji se od jedinstvenih jedinica od kojih svaka primjenjuje značajan faktor prema konačnom rezultatu. Iz tog razloga, preporučuje se postavljanje slike kruga prije pričvršćivanja žica u zamršen nered.

Slike svakog pojedinog modela mogu se pronaći u priručniku alata za mikrokontroler ili na njegovoj web stranici na adresi

Počnite s pričvršćivanjem osjetnika temperature, potenciometra, servo konektora i LCD -a na ploču. Preporučuje se da zbog veličine LCD -a i zahtjeva za brojem žica za njega, bude postavljen na vlastitu polovicu ploče s ostalim dijelovima na drugoj polovici i da potenciometar bude u području gdje netko može lako okrenuti gumb.

Za referencu:

LCD: c1-16

Servo: i1-3 (GND + -)

Senzor temperature: i13-15 (- GND +)

Potenciometar: g24-26 (- GND +)

Zatim počnite spajati kratkospojne žice na svaki pin jedinice mikrokontrolera; iako proizvoljan u cjelokupnoj velikoj shemi, dizajn je nastao s ovim važnim vezama:

Povezivanje potenciometra s LCD -om: f25 - e3

Servo GND žica: j1 - digitalni ulaz 9

Senzor temperature GND: j14 - analogni ulaz 0

LCD ulazi: e11-e15-Digitalni ulaz 2-5

e4 - digitalni ulaz 7

e6 - digitalni ulaz 6

(Napomena: Uspješno, oba svjetla na rubu LCD -a trebala bi zasvijetliti, a potenciometar može pomoći u podešavanju svjetline nakon što dobije napajanje iz adaptera.)

Izborno: 3D ispisani objekt korišten je kao dio zahtjeva. Kako bi se izbjeglo moguće oštećenje osjetljivijih dijelova, produženo kućište postavljeno je kao omotač oko LCD -a. Mjerenje LCD zaslona pokazalo se otprilike 2-13/16 "x 1-1/16" x 1/4 ", pa je samo visina značajno promijenjena. Ako je 3D pisač odmah dostupan, razmislite o dodavanju osobnog predmeta, iako nepotrebno. Također imajte na umu da se mjerenja mogu razlikovati.

Korak 3: Postavljanje MATLAB -a

MATLAB Postavljanje
MATLAB Postavljanje
MATLAB Postavljanje
MATLAB Postavljanje

Instalirajte ažuriraniju verziju programa MATLAB (2016a i dalje), dostupnu na web stranici MathWorksa https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Nakon otvaranja, idite na Dodaci na kartici Početna i preuzmite "MATLAB paket podrške za Arduino hardver" kako bi naredbe mikrokontrolera bile dostupne.

Nakon što se dovrši, može se izvršiti test kojim se utvrđuje povezanost mikrokontrolera s vlastitim računalom/prijenosnim računalom. Nakon što ste ih povezali s USB adapterom iz kompleta alata, umetnite naredbu "fopen (serijski (" nada "))."

Pojavit će se poruka o pogrešci koja kaže da je konektor "COM#", što će biti potrebno za stvaranje arduino objekta sve dok je to uvijek isti ulaz.

Budući da LCD nema izravnu vezu s Arduino knjižnicom, mora se stvoriti nova knjižnica za prikaz poruka. Preporuka je stvoriti datoteku LCDAddon.m od primjera LCD -a koji se nalazi u prozoru za pomoć MATLAB -a nakon pretraživanja "Arduino LCD -a" i stavljanja u mapu +arduinoioaddons ili upotrijebiti komprimiranu mapu i kopirati sav njezin sadržaj u prethodno spomenuto mapu.

Ako uspije, kôd za stvaranje Arduino objekta u MATLAB -u je sljedeći.

a = arduino ('com#', 'uno', 'Knjižnice', 'ExampleLCD/LCDAddon');

Korak 4: Funkcije

Funkcije
Funkcije
Funkcije
Funkcije

Izradite funkciju MATLAB. Za ulaze koristimo varijable "eff" i "T_min"; za izlaze, iako nepotrebni u cjelokupnom dizajnu, koristili smo varijablu "B" kao način za sadržavanje podataka iz rezultata. Ulaz "eff" omogućuje upravljanje maksimalnom brzinom servo, a ulaz "T_min" kontrolira željenu minimalnu temperaturu. Vrijednost "B" bi stoga trebala proizvesti matricu koja sadrži tri stupca za vrijeme, temperaturu i učinkovitost ventilatora. Također, kao bonus detaljima, dolje navedeni kôd također sadrži if-izjavu tako da će se brzina ventilatora smanjiti za pedeset posto kada se približi željenoj minimalnoj temperaturi.

Ako su svi ulazi i kratkospojne žice točno postavljeni i pod pretpostavkom da je priključak arduino veze COM4, a naziv funkcije "fanread", sljedeći kôd trebao bi biti dovoljan:

funkcija [B] = čitač ventilatora (Tmin, eff)

očistiti a; clear lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

t = 0; t_max = 15; % vremena u sekundama

lcd = addon (a, 'ExampleLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});

initializeLCD (lcd, 'Redovi', 2, 'Stupci', 2);

ako je eff> = 1 || e <0

pogreška ('Ventilator se neće aktivirati osim ako je eff postavljeno između 0 i 1.')

kraj

za t = 1: 10 % broj petlji/intervala

jasan c; % spriječiti ponavljanje pogreške

v = readVoltage (a, 'A0');

TempC = (v-0,5)*100; % procjena raspona napona 2,7-5,5 V

ako je TempC> Tmin ako je TempC

c = ['Temp', num2str (TempC, 3), 'C uključeno'];

writePWMDutyCycle (a, 'D9', eff/2); % uključite servo na pola brzine

spd = 50;

drugo

c = ['Temp', num2str (TempC, 3), 'C uključeno'];

writePWMDutyCycle (a, 'D9', eff); % uključite servo pri zadanoj brzini

spd = 100;

kraj

drugo

c = ['Temp', num2str (TempC, 3), 'C Off'];

writePWMDutyCycle (a, 'D9', 0); % isključeno ako je već uključeno

spd = 0;

kraj

printLCD (lcd, c);

stanka (3); % prođu tri sekunde po petlji

vrijeme (t) = t.*3;

tempplot (t) = TempC;

act (t) = spd;

podcrt (2, 1, 1)

nacrt (vrijeme, grafički prikaz, 'b-o') % linijski graf

os ([0 33 0 40])

xlabel ('Vrijeme (sekunde)')

ylabel ('Temperatura (C)')

drži se

iscrtavanje ([0 33], [Tmin Tmin], 'r-')

drži se

crtanje ([0 33], [Tmin+2 Tmin+2], 'g-')

podcrt (2, 1, 2)

stupac (vrijeme, čin) % stupčasti grafikon

xlabel ('Vrijeme (sekunde)')

ylabel ('Učinkovitost (%)')

kraj

B = transponirati ([vrijeme; tempplot; čin]);

kraj

Sada kada je funkcija dovršena, vrijeme je za testiranje.

Korak 5: Testiranje

Testiranje
Testiranje
Testiranje
Testiranje

Sada testirajte funkciju u naredbenom prozoru umetanjem "function_name (input_value_1, input_value_2)" i gledajte. Budite sigurni da već nema Arduino objekta; ako je tako, upotrijebite naredbu "clear a" da biste je uklonili. Ako se pojave pogreške, provjerite jesu li priključci na krivom mjestu ili se koriste pogrešni digitalni ili analogni ulazi. Očekuje se da će rezultati biti različiti, iako to može biti uzrokovano postavljanjem određenih kratkospojnih žica i osjetnika temperature.

Očekivanja rezultata trebala bi proizvesti promjene u performansama serva i podacima na LCD -u. Sa svakim intervalom od tri sekunde, redak teksta trebao bi prikazati temperaturu u Celzijusima i je li ventilator aktivan ili ne dok ventilator radi punom brzinom, polovinom ili bez brzine. Podaci najvjerojatnije ne bi trebali biti dosljedni, iako ako želite više različitih rezultata, postavite vrijednost "Tmin" blizu prosječne temperature koju proizvodi krug.

Korak 6: Zaključak

Zaključak
Zaključak

Premda mukotrpan zadatak koji je trebalo izvršiti pokušajima i pogreškama, konačni su se rezultati pokazali prilično zanimljivim i zadovoljavajućim. Sustav kao takav pomaže ilustrirati koliko se složenih strojeva, pa čak i nekih njihovih dijelova, može vidjeti kao skup neovisnih dijelova postavljenih zajedno kako bi se postigao određeni cilj.

Zbog prilično pojednostavljenog dizajna završnog projekta, oni koji imaju interes poboljšati njegove performanse mogu napraviti ugađanja i izmjene u konačnom proizvodu koji projekt mogu učiniti boljim i razrađenijim. Međutim, otkriva slabosti u krugu, kao što je aktiviranje servo -a što rezultira sporadičnim fluktuacijama očitavanja napona u krugu, što može uzrokovati da sustav nikada ne daje identične rezultate. Također, bilo je problema s promjenom brzine servo servera kada je "eff" postavljeno 0,4 i više. Da je korišten senzor temperature i vlažnosti, konačni model bio bi složeniji, ali bi imao dosljednije vrijednosti. Ipak, ovo je iskustvo koje pokazuje da složeni stroj može funkcionirati kao kombinacija njegovih jednostavnih dijelova.

Preporučeni: