Sisukord:
- Samm: varustus
- Samm: mikrokontrolleri seadistamine
- 3. samm: MATLAB -i seadistamine
- 4. samm: funktsioonid
- Samm: testimine
- 6. samm: järeldus
Video: Arduino kliimaseadme mudel: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:49
Osana meie meeskonna suutlikkusest luua turunduslikel eesmärkidel nutika rongiseadme mudelit, oli eesmärk luua süsteem, milles temperatuuriandur loeb ringkonnakoha andmeid ja teisendab teabe temperatuuriväärtuseks, mis on kuvatakse valgustatud ekraanil ja keskendutakse sellele, kas ventilaator lülitub sisse või välja. Eesmärk on aidata kohandada reisijate sõidutingimusi, kasutades automatiseeritud süsteemi, mis kuvab ka temperatuuri vahetus läheduses.
Kasutades Arduino mikrokontrolleri komplekti ja MATLABi versioone 2016b ja 2017b, suutsime neid tulemusi suhteliselt edukalt näidata.
Samm: varustus
Mikrokontrolleri komplekt koos järgmisega:
-Sparkfun Red Board
-Sparkfuni leivalaud
-LCD -plaat
-Potentsiomeeter
-Temperatuuriandur
-Servo
-USB/Arduino adapter
-hüppaja juhtmed (vähemalt 25)
USB -sisendiga sülearvuti (Windows 10)
3D -prinditud objekt (valikuline)
Samm: mikrokontrolleri seadistamine
Mõelge sellele: kogu süsteem koosneb üksikutest üksustest, millest igaüks rakendab lõpptulemuse saavutamiseks olulist tegurit. Sel põhjusel on tungivalt soovitatav luua vooluahela pilt enne juhtmete kinnitamist keerdunud jamas.
Iga üksiku mudeli pildid leiate mikrokontrolleri tööriistakomplekti kasutusjuhendist või selle veebisaidilt aadressil
Alustage temperatuurianduri, potentsiomeetri, servoklemmide ja LCD -plaadi külge kinnitamisega. LCD -ekraani suuruse ja selle jaoks vajalike juhtmete arvu tõttu on soovitatav paigutada see leivalauale oma poolele, teised tükid teisele poole ja potentsiomeeter peaks olema kohas, kus keegi saab keerake selle nuppu lihtsalt.
Viide:
LCD: c1-16
Servo: i1-3 (GND + -)
Temperatuuriandur: i13-15 (- GND +)
Potentsiomeeter: g24-26 (- GND +)
Seejärel alustage hüppajajuhtmete ühendamist mikrokontrollerite iga tihvtiga; kuigi üldises suures skeemis meelevaldne, loodi disain nende oluliste ühendustega:
Potentsiomeetri ühendamine LCD -ekraaniga: f25 - e3
Servo GND juhe: j1 - digitaalsisend 9
Temperatuuriandur GND: j14 - analoogsisend 0
LCD-sisendid: e11-e15-digitaalsisend 2-5
e4 - digitaalsisend 7
e6 - digitaalsisend 6
(Märkus. Kui see õnnestub, peaksid mõlemad LCD -serva tuled süttima ja potentsiomeeter aitab adapteri toite korral reguleerida selle heledust.)
Valikuline: nõude osana kasutati 3D -prinditud objekti. Et vältida nõrgemate osade võimalikku kahjustamist, asetati pikendatud ümbris varrukana LCD -ekraani ümber. LCD-ekraani mõõtmised osutusid ligikaudu 2-13/16 "x 1-1/16" x 1/4 "ja seega muudeti oluliselt ainult kõrgust. Kui 3D-printer on hõlpsasti saadaval, kaaluge isikliku objekti lisamist arvestage, et mõõtmised võivad erineda.
3. samm: MATLAB -i seadistamine
Installige MATLABi värskendatud versioon (2016a ja uuemad), mis on saadaval MathWorksi veebisaidil https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Pärast avamist minge vahekaardil Avaleht lisandmoodulitele ja laadige alla "MATLABi tugipakett Arduino riistvarale", et mikrokontrolleri käsud oleksid juurdepääsetavad.
Pärast lõpetamist saab teha testi, et leida mikrokontrolleri ühenduvus oma arvuti/sülearvutiga. Pärast nende ühendamist tööriistakomplekti USB -adapteriga sisestage käsk "fopen (serial ('nada'))."
Ilmub tõrketeade, milles konnektor on "COM#", mida on vaja arduino objekti loomiseks, kui see on kogu aeg sama sisend.
Kuna LCD -l pole otsest ühendust Arduino raamatukoguga, tuleb sõnumite kuvamiseks luua uus raamatukogu. Soovitatav on pärast faili "Arduino LCD" otsimist ja kausta +arduinoioaddons paigutamist luua LCDAddon.m -fail MATLAB -i abiaknast leitud LCD -näitest või kasutada lisatud tihendatud kausta ja kopeerida kogu selle sisu eelnimetatud kausta.
Kui see õnnestub, on MATLABis Arduino objekti loomise kood järgmine.
a = arduino ('com#', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
4. samm: funktsioonid
Looge funktsioon MATLAB. Sisendite jaoks kasutame muutujaid "eff" ja "T_min"; väljundite puhul, ehkki üldises kujunduses mittevajalikud, kasutasime tulemuste andmete sisaldamiseks muutujat "B". Sisend "eff" võimaldab reguleerida servo maksimaalset kiirust ja sisend "T_min" juhib soovitud minimaalset temperatuuri. Väärtus "B" peaks seega tootma maatriksi, mis sisaldab kolme veergu aja, temperatuuri ja ventilaatori efektiivsuse kohta. Lisaks on detailidena boonusena allpool loetletud koodil ka if-lause, nii et ventilaatori kiirus väheneb viiekümne protsendi võrra, kui see jõuab soovitud miinimumtemperatuurini.
Kui kõik sisendid ja hüppajajuhtmed on paigutatud täpselt ja eeldades, et arduino -ühenduse port on COM4 ja funktsiooni nimi on "fanread", peaks piisama järgmisest koodist:
funktsioon [B] = ventilaatori lugem (Tmin, eff)
selge a; selge lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
t = 0; t_max = 15; % aeg sekundites
lcd = addon (a, 'ExampleLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2');
initializeLCD (lcd, 'Ridad', 2, 'Veerud', 2);
kui eff> = 1 || e <0
viga ('Ventilaator ei aktiveeru, kui eff ei ole seatud vahemikku 0 kuni 1.')
lõpp
t = 1: 10 % silmuste/intervallide arv
selge c; % takistab korduvat viga
v = lugemispinge (a, 'A0');
TempC = (v-0,5)*100; % hinnang pingevahemikele 2,7–5,5 V
kui TempC> Tmin kui TempC
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff/2); % lülitage servo poole kiirusega sisse
spd = 50;
muidu
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff); % lülitage servo ette antud kiirusel sisse
spd = 100;
lõpp
muidu
c = ['Temp', num2str (TempC, 3), 'C Off'];
writePWMDutyCycle (a, 'D9', 0); % välja lülitatud, kui see on juba sisse lülitatud
spd = 0;
lõpp
printLCD (LCD, c);
paus (3); % kolm sekundit kulub silmuse kohta
aeg (t) = t.*3;
temppplot (t) = TempC;
tegu (t) = spd;
alamplaan (2, 1, 1)
plot (aeg, temppplot, 'b-o') % joondiagramm
telg ([0 33 0 40])
xlabel ('Aeg (sekundites)')
ylabel ('Temperatuur (C)')
oota
graafik ([0 33], [Tmin Tmin], 'r-')
oota
graafik ([0 33], [Tmin+2 Tmin+2], 'g-')
alamplaan (2, 1, 2)
tulp (aeg, tegu) % tulpdiagramm
xlabel ('Aeg (sekundites)')
ylabel ('Tõhusus (%)')
lõpp
B = ülevõtmine ([aeg; templlot; toiming]);
lõpp
Nüüd, kui funktsioon on valmis, on aeg testida.
Samm: testimine
Nüüd testige käsuaknas funktsiooni, sisestades "funktsiooni_nimi (sisendväärtus_1, sisendväärtus_2)" ja vaadake. Veenduge, et ühtegi Arduino objekti pole juba olemas; kui jah, kasutage selle eemaldamiseks käsku "kustuta a". Vigade ilmnemisel kontrollige ja kontrollige, kas mõni pistik on vales kohas või on kasutatud valesid digitaalseid või analoogsisendeid. Tulemused võivad olla erinevad, kuigi see võib olla põhjustatud teatud hüppajajuhtmete ja temperatuurianduri paigutusest.
Tulemuste ootused peaksid muutma servo jõudlust ja LCD -ekraanil olevaid andmeid. Iga kolme sekundilise intervalliga peaks tekstirida näitama temperatuuri Celsiuse järgi ja seda, kas ventilaator on aktiivne, kui ventilaator töötab täiskiirusel, poolel kiirusel või mitte. Andmed ei tohiks tõenäoliselt olla järjepidevad, kuigi kui soovite rohkem erinevaid tulemusi, asetage "Tmin" väärtus ahela toodetud keskmise temperatuuri lähedale.
6. samm: järeldus
Kuigi katse ja eksituse meetodil oli raske ülesanne, osutusid lõpptulemused üsna huvitavaks ja rahuldustpakkuvaks. Süsteem kui selline aitab illustreerida, kui palju keerulisi masinaid või isegi mõnda nende osa võib vaadelda kui kogumit sõltumatuid osi, mis on kokku pandud konkreetse eesmärgi saavutamiseks.
Lõppprojekti üsna lihtsa ülesehituse tõttu saavad need, kes on huvitatud selle toimivuse parandamisest, teha lõpptootes muudatusi ja muudatusi, mis muudavad projekti paremaks ja keerukamaks. Siiski näitab see vooluahela nõrkusi, nagu servo aktiveerimine, mille tulemuseks on vooluahela pinge näidu juhuslikud kõikumised, mis võivad põhjustada selle, et süsteem ei anna kunagi identseid tulemusi. Samuti on olnud probleeme servo kiiruse muutuse nägemisega, kui "eff" on seatud 0,4 ja kõrgemale. Kui oleks kasutatud temperatuuri- ja niiskusandurit, oleks lõplik mudel keerulisem, kuid näitaks ühtlasemaid väärtusi. Sellest hoolimata on see kogemus, mis näitab, et keeruline masin võib toimida selle lihtsate osade kombinatsioonina.
Soovitan:
Ainulaadne kella mudel, mida toetab Arduino servomootorid: 5 sammu
Ainulaadne kella mudel, mida toetab Arduino servomootorid: selle juhendiga näitan teile, kuidas luua kella, kasutades Arduino Nano ja servomootoreid. Selleks vajate järgmisi elemente:
Kliimaseadme automaatne lüliti: 5 sammu
Automaatne kliimaseadme lüliti: kuna inimestel on igapäevaelus vaja teha erinevaid asju, unustame sageli mõned väikesed detailid, põhjustades mõnikord tõsiseid tagajärgi, unustades kliimaseadme välja lülitada. Kuigi inimesed kogemata
Kliimaseadme trükkplaadi õpetus oma töö ja remondiga: 6 sammu
Kliimaseadme trükkplaadi õpetus oma töö ja remondiga: Hei, mis toimub, poisid! Akarsh siin CETechist. Kas olete kunagi mõelnud, mis teie kliimaseadmete siseküljel toimub? Kui jah, siis peaksite selle artikli läbi vaatama, sest täna annan ülevaate seostest ja sellest
Kliimaseadme automaatne sisselülitamine: 5 sammu
Kliimaseadme automaatne sisselülitamine: seda seadet nimetatakse automaatselt sisselülitatavaks kliimaseadmeks. Kui olete kuumas toas ja olete just kooli lõpetanud, olete lihtsalt liiga väsinud, et konditsioneeri sisse lülitada, on see seade teie jaoks ideaalne. Selle seadme mehhanism on väga lihtne. W
120 V kliimaseadme välklamp LED -i tõotusküünla tüübist 1 (COB): 7 sammu
120 V kliimaseadme lamp vilgub 1. tüüpi LED -i küünalde küünalt (COB): kas teil on Halloweeni kummitamise lõpuleviimiseks vaja virvendavaid tulesid? Kas olete pettunud muudest lahendustest? Kas soovite sulatada jootet ja uuesti elektroonikat? Siis on see juhendatav teie tänaval. See juhitav aadress käsitleb ainult tegelikku värelemist