Satura rādītājs:
- 1. solis: aprīkojums
- 2. darbība: mikrokontrollera iestatīšana
- 3. darbība: MATLAB iestatīšana
- 4. solis: funkcijas
- 5. darbība: pārbaude
- 6. darbība. Secinājums
Video: Arduino gaisa kondicionēšanas modelis: 6 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:57
Demonstrējot mūsu komandas spēju mārketinga nolūkos izveidot viedās vilciena ierīces modeli, mērķis bija izveidot sistēmu, kurā temperatūras sensors nolasa ķēdes datus un pārvērš informāciju par temperatūras vērtību, kas ir tiek parādīts apgaismotā ekrānā un koncentrējas uz to, vai ventilators ieslēdzas vai izslēdzas. Mērķis ir palīdzēt pielāgot pasažieru braukšanas apstākļus, izmantojot automatizētu sistēmu, kas arī parāda temperatūru tiešā tuvumā.
Izmantojot Arduino mikrokontrolleru komplektu un MATLAB versijas 2016b un 2017b, mēs varējām šos rezultātus demonstrēt ar relatīviem panākumiem.
1. solis: aprīkojums
Mikrokontrolleru komplekts ar šādiem elementiem:
-Sparkfun Red Board
-Sparkfun maizes dēlis
-LCD panelis
-Potenciometrs
-Temperatūras sensors
-Servo
-USB/Arduino adapteris
-Džempera vadi (vismaz 25)
Klēpjdators (Windows 10) ar USB ieeju
3D drukāts objekts (pēc izvēles)
2. darbība: mikrokontrollera iestatīšana
Apsveriet to: visa sistēma sastāv no atsevišķām vienībām, un katra no tām piemēro nozīmīgu faktoru gala rezultātam. Šī iemesla dēļ ir ļoti ieteicams izveidot ķēdes attēlu, pirms piestiprināt vadus sarežģītā juceklī.
Katra modeļa attēlus var atrast mikrokontrolleru instrumentu komplekta rokasgrāmatā vai tā vietnē:
Sāciet ar temperatūras sensora, potenciometra, servo savienotāju un LCD piestiprināšanu pie tāfeles. Ieteicams LCD displeja izmēra un vajadzīgo vadu skaita dēļ to novietot uz savas maizes dēļa puses, bet pārējos gabalus - uz otru pusi, un lai potenciometrs atrastos vietā, kur kāds var viegli pagrieziet pogu.
Uzziņai:
LCD: c1-16
Servo: i1-3 (GND + -)
Temperatūras sensors: i13-15 (- GND +)
Potenciometrs: g24-26 (- GND +)
Pēc tam sāciet savienot džemperu vadus ar katru mikrokontrolleru bloku tapu; lai arī vispārējā shēmā patvaļīgs, dizains tika izveidots ar šādiem svarīgiem savienojumiem:
Potenciometra pievienošana LCD: f25 - e3
Servo GND vads: j1 - digitālā ieeja 9
Temperatūras sensors GND: j14 - analogā ievade 0
LCD ieejas: e11-e15-digitālā ieeja 2-5
e4 - digitālā ieeja 7
e6 - digitālā ieeja 6
(Piezīme: ja tas izdodas, abiem indikatoriem LCD ekrānā vajadzētu iedegties, un potenciometrs var palīdzēt pielāgot tā spilgtumu, tiklīdz no strāvas tiek piegādāts adapteris.)
Neobligāti: kā prasība tika izmantots 3D drukāts objekts. Lai izvairītos no trauslāku daļu bojājumiem, ap LCD uzmavu tika uzlikts pagarināts korpuss. LCD ekrāna izmēri izrādījās aptuveni 2-13/16 "x 1-1/16" x 1/4 ", un tādējādi tika būtiski mainīts tikai augstums. Ja 3D printeris ir viegli pieejams, apsveriet iespēju pievienot personisku objektu Jāņem vērā arī tas, ka mērījumi var atšķirties.
3. darbība: MATLAB iestatīšana
Instalējiet atjauninātu MATLAB versiju (2016a un jaunākas versijas), kas pieejama MathWorks vietnē https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Pēc atvēršanas cilnē Sākums dodieties uz Papildinājumi un lejupielādējiet "MATLAB atbalsta pakotni Arduino aparatūrai", lai būtu pieejamas mikrokontrollera komandas.
Kad tas ir pabeigts, var veikt pārbaudi, lai atrastu mikrokontrollera savienojamību ar datoru/klēpjdatoru. Pēc to pievienošanas ar USB adapteri no instrumentu komplekta ievietojiet komandu "fopen (serial ('nada'))".
Tiks parādīts kļūdas ziņojums, kurā norādīts, ka savienotājs ir "COM#", kas būs nepieciešams, lai izveidotu arduino objektu, ja vien tas vienmēr ir viens un tas pats.
Tā kā LCD nav tieša savienojuma ar Arduino bibliotēku, ir jāizveido jauna bibliotēka, lai parādītu ziņojumus. Ieteikums ir izveidot LCDAddon.m failu no LCD piemēra, kas atrodams MATLAB palīdzības logā pēc meklēšanas “Arduino LCD” un ievietošanas mapē +arduinoioaddons, vai izmantot pievienoto saspiesto mapi un nokopēt visu tās saturu iepriekš minētajā mape.
Ja tas ir veiksmīgs, kods Arduino objekta izveidei MATLAB ir tāds, kā parādīts zemāk.
a = arduino ('com#', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
4. solis: funkcijas
Izveidojiet MATLAB funkciju. Ievadiem mēs izmantojam mainīgos "eff" un "T_min"; attiecībā uz rezultātiem, lai gan tie nav nepieciešami vispārējā dizainā, mēs izmantojām mainīgo "B" kā veidu, kā saturēt datus no rezultātiem. Ievads "eff" ļauj pārvaldīt servo maksimālo ātrumu, un "T_min" ievade kontrolē vēlamo minimālo temperatūru. Tādējādi vērtībai "B" jāveido matrica, kurā ir trīs kolonnas par laiku, temperatūru un ventilatora efektivitāti. Turklāt, kā papildinājums detaļām, zemāk uzskaitītajam kodam ir arī paziņojums “if”, lai ventilatora ātrums tiktu samazināts par piecdesmit procentiem, kad tas sasniegs vēlamo minimālo temperatūru.
Ja visas ieejas un savienojuma vadi ir novietoti precīzi un pieņemot, ka arduino savienojuma ports ir COM4 un funkcijas nosaukums ir "fanread", pietiek ar šādu kodu:
funkcija [B] = fanread (Tmin, eff)
notīrīt a; skaidrs LCD; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');
t = 0; t_max = 15; % laika sekundēs
lcd = addon (a, 'PiemērsLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2');
initializeLCD (LCD, 'Rindas', 2, 'Kolonnas', 2);
ja eff> = 1 || e <0
kļūda ('Ventilators neaktivizēsies, ja efekts nav iestatīts no 0 līdz 1.')
beigas
t = 1: 10 % cilpu/intervālu skaits
skaidrs c; % novērš atkārtotu kļūdu
v = lasīt spriegumu (a, 'A0');
TempC = (v-0,5)*100; % novērtējums sprieguma diapazoniem 2,7-5,5 V
ja TempC> Tmin, ja TempC
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff/2); % ieslēdziet servo ar pusi ātruma
spd = 50;
citādi
c = ['Temp', num2str (TempC, 3), 'C On'];
writePWMDutyCycle (a, 'D9', eff); % ieslēdziet servo ar norādīto ātrumu
spd = 100;
beigas
citādi
c = ['Temp', num2str (TempC, 3), 'C Off'];
writePWMDutyCycle (a, 'D9', 0); % izslēgts, ja tas jau ir ieslēgts
spd = 0;
beigas
printLCD (LCD, c);
pauze (3); Katrai cilpai paiet % trīs sekundes
laiks (t) = t.*3;
temppplot (t) = TempC;
akts (t) = spd;
apakšplāksne (2, 1, 1)
diagramma (laiks, tempplot, 'b-o') % līniju grafiks
ass ([0 33 0 40])
xlabel ('Laiks (sekundes)')
ylabel ('Temperatūra (C)')
uzgaidi
gabals ([0 33], [Tmin Tmin], 'r-')
uzgaidi
diagramma ([0 33], [Tmin+2 Tmin+2], 'g-')
apakšplāksne (2, 1, 2)
josla (laiks, darbība) % joslu diagramma
xlabel ('Laiks (sekundes)')
ylabel ('Efektivitāte (%)')
beigas
B = transponēt ([laiks; tempplot; akts]);
beigas
Tagad, kad funkcija ir pabeigta, ir pienācis laiks pārbaudīt.
5. darbība: pārbaude
Tagad pārbaudiet funkciju komandu logā, ievietojot "function_name (input_value_1, input_value_2)" un skatieties. Pārliecinieties, ka neviens Arduino objekts jau nepastāv; ja tā, izmantojiet komandu "notīrīt", lai to noņemtu. Ja rodas kļūdas, pārbaudiet un pārbaudiet, vai kādi savienotāji nav ievietoti nepareizā vietā un vai tiek izmantotas nepareizas digitālās vai analogās ieejas. Paredzams, ka rezultāti būs atšķirīgi, lai gan to var izraisīt dažu džemperu vadu un temperatūras sensora novietošana.
Rezultātu cerībām vajadzētu mainīt servo veiktspēju un datus LCD. Katru trīs sekunžu intervālu teksta rindiņā jāparāda temperatūra Celsija grādos un tas, vai ventilators ir aktīvs, kamēr ventilators darbojas ar pilnu ātrumu, pusi ātruma vai bez ātruma. Dati, visticamāk, nedrīkst būt konsekventi, lai gan, ja vēlaties vairāk dažādu rezultātu, novietojiet "Tmin" vērtību tuvu ķēdes vidējai temperatūrai.
6. darbība. Secinājums
Lai gan galīgais rezultāts bija grūts uzdevums, kas jāveic izmēģinājumu un kļūdu ceļā, izrādījās diezgan interesants un apmierinošs. Sistēma kā tāda palīdz ilustrēt, cik sarežģītas mašīnas vai pat dažas to daļas var uzskatīt par neatkarīgu detaļu kolekciju, kas saliktas kopā, lai sasniegtu konkrētu mērķi.
Tā kā gala projekts ir diezgan vienkāršots, tie, kam ir interese uzlabot tā veiktspēju, gala produktā var veikt izmaiņas un izmaiņas, kas var padarīt projektu labāku un sarežģītāku. Tomēr tas atklāj ķēdes vājās vietas, piemēram, servo aktivizēšanu, kā rezultātā rodas sporādiskas ķēdes sprieguma rādījumu svārstības, kas var izraisīt to, ka sistēma nekad nesniedz identiskus rezultātus. Ir bijušas arī problēmas ar servo ātruma izmaiņu novēršanu, kad "eff" ir iestatīts uz 0,4 un augstāku. Ja tiktu izmantots temperatūras un mitruma sensors, galīgais modelis būtu sarežģītāks, taču tam būtu konsekventākas vērtības. Tomēr šī ir pieredze, kas parāda, ka sarežģīta mašīna var darboties kā tās vienkāršo daļu kombinācija.
Ieteicams:
Miniaturizējošs Arduino autonomais robots (Land Rover / automašīna) 1. posms Modelis 3: 6 soļi
Miniaturizējošs Arduino autonomais robots (Land Rover / automašīna) 1. posms: 3. modelis: es nolēmu miniaturizēt Land Rover / Car / Bot, lai samazinātu projekta lielumu un enerģijas patēriņu
Automātiskā ventilatora/gaisa kondicionēšanas sistēma: 6 soļi
Automātiskā ventilatora/gaisa kondicionēšanas sistēma: Laipni lūdzam! Šajā pamācībā es jums pastāstīšu, kā izveidot savu automātisko ventilatora/gaisa kondicionēšanas sistēmu. Šī pamācība attiecas uz loga ventilatoru, ko izmanto, lai vasaras karstumā atdzesētu telpas. Šī projekta mērķis ir
Gaisa piesārņojuma noteikšana + gaisa filtrēšana: 4 soļi
Gaisa piesārņojuma noteikšana + gaisa filtrēšana: Vācijas Šveices Starptautiskās skolas studenti (Aristobulus Lam, Victor Sim, Nathan Rosenzweig un Declan Loges) sadarbojās ar MakerBay darbiniekiem, lai izveidotu integrētu gaisa piesārņojuma mērīšanas un gaisa filtrēšanas efektivitātes sistēmu. Šī
HRV (mājas gaisa apmaiņas ierīce) Arduino kontrolieris ar gaisa ekonomizētāju: 7 soļi (ar attēliem)
HRV (mājas gaisa apmaiņas ierīce) Arduino kontrolieris ar gaisa ekonomizētāju: HRV Arduino kontrolieris ar gaisa ekonomizētāju Es negribēju maksāt 200 ASV dolārus par jaunu. Es vienmēr gribēju kaut ko ar gaisa taupīšanas līdzekli
120 V gaisa kondicionēšanas lampas mirgošana no 1. tipa LED sveču sveces (COB): 7 soļi
120V gaisa kondicionētāja spuldzes mirgošana no 1. tipa LED sveču sveces (COB): vai jums ir vajadzīgas dažas mirgojošas gaismas, lai jūsu Helovīna vajāšana būtu pabeigta? Vai esat neapmierināts ar citiem risinājumiem? Vai vēlaties izkausēt lodēt un atkārtoti izmantot elektroniku? Tad šis Instructable ir tieši jūsu alejā. Šis Instructable adresē tikai faktisko mirgošanu el