Përmbajtje:
- Hapi 1: Pajisjet
- Hapi 2: Konfigurimi i mikrokontrolluesit
- Hapi 3: Konfigurimi i MATLAB
- Hapi 4: Funksionet
- Hapi 5: Testimi
- Hapi 6: Përfundimi
Video: Modeli i kondicionimit Arduino: 6 hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Si pjesë e një demonstrimi të aftësisë së ekipit tonë për të krijuar një model të një pajisje treni të zgjuar për qëllime marketingu, objektivi ishte krijimi i një sistemi në të cilin një sensor i temperaturës lexon të dhënat nga qarku dhe konverton informacionin në një vlerë të temperaturës që është shfaqet në një ekran të ndriçuar dhe fokusohet nëse një ventilator ndizet ose fiket. Qëllimi është të ndihmojë në akomodimin e kushteve të udhëtimit të udhëtarëve duke përdorur një sistem të automatizuar që gjithashtu vepron për të shfaqur temperaturën në afërsi të menjëhershme.
Duke përdorur një çantë mikrokontrolluesi Arduino dhe versionet MATLAB 2016b dhe 2017b, ne ishim në gjendje t'i demonstronim këto rezultate me sukses relativ.
Hapi 1: Pajisjet
Kompleti i mikrokontrolluesit me sa vijon:
-Sparkfun Red Board
-Sparkfun Breadboard
-Bord Bordi
-Potentiometër
-Sensor temperature
-Servo
-Përshtatës USB/Arduino
-Telat Jumper (25, minimumi)
Laptop (Windows 10) me hyrje USB
Objekt i printuar 3D (opsional)
Hapi 2: Konfigurimi i mikrokontrolluesit
Konsideroni këtë: i gjithë sistemi përbëhet nga njësi të vetme që secila aplikon një faktor domethënës drejt rezultatit përfundimtar. Për këtë arsye, rekomandohet shumë të vendosni një imazh të qarkut para se të lidhni telat në një rrëmujë të ndërlikuar.
Imazhet e secilit model individual mund të gjenden në manualin e kompletit të veglave të Mikrokontrolluesit ose në faqen e tij në internet në
Filloni me bashkimin e sensorit të temperaturës, potenciometrit, lidhësit servo dhe LCD në tabelë. Rekomandohet që për shkak të madhësisë së LCD dhe kërkesës për numrin e telave për të, ajo duhet të vendoset në gjysmën e vet të pjatës së bukës me pjesët e tjera në gjysmën tjetër dhe që potenciometri të jetë në një zonë që dikush të kthejeni lehtë çelësin e tij.
Per referim:
LCD: c1-16
Servo: i1-3 (GND + -)
Sensori Temp: i13-15 (- GND +)
Potenciometër: g24-26 (- GND +)
Tjetra, filloni të lidhni telat e bluzave me secilën kunj të njësive të mikrokontrolluesit; edhe pse arbitrar në skemën e përgjithshme të madhe, dizajni u krijua me këto lidhje të rëndësishme:
Lidhja e Potenciometrit me LCD: f25 - e3
Teli Servo GND: j1 - Hyrja dixhitale 9
Sensori Temp GND: j14 - Hyrja Analog 0
Hyrjet LCD: e11-e15-Hyrja dixhitale 2-5
e4 - Hyrja dixhitale 7
e6 - Hyrja dixhitale 6
(Shënim: Nëse është i suksesshëm, të dy dritat në skajin e LCD -së duhet të ndizen dhe potenciometri mund të ndihmojë në rregullimin e shkëlqimit të tij pasi të ketë dhënë fuqinë nga përshtatësi.)
Opsionale: Një objekt i printuar 3D u përdor si pjesë e një kërkese. Për të shmangur dëmtimet e mundshme në pjesët më të brishta, një kuti e zgjatur u vendos si një mëngë rreth LCD. Matjet e ekranit LCD u vërtetuan se ishin afërsisht 2-13/16 "x 1-1/16" x 1/4 ", dhe kështu vetëm lartësia u ndryshua ndjeshëm. Nëse një printer 3D është i disponueshëm, merrni parasysh shtimin e një objekti personal, edhe pse e panevojshme. Gjithashtu, kini parasysh se matjet mund të ndryshojnë.
Hapi 3: Konfigurimi i MATLAB
Instaloni një version më të azhurnuar të MATLAB (2016a dhe në vazhdim), i disponueshëm në faqen e internetit të MathWorks https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Pasi të hapet, shkoni te Shtesat në skedën Home dhe shkarkoni "Paketa Mbështetëse MATLAB për Arduino Hardware" që komandat e mikrokontrolluesit të jenë të arritshme.
Pasi të përfundojë, mund të bëhet një test për të gjetur lidhshmërinë e mikrokontrolluesit me kompjuterin/laptopin e dikujt. Pasi t'i lidhni me përshtatësin USB nga kompleti i veglave, futni komandën "hap (serial ('nada'))"."
Një mesazh gabimi do të shfaqet duke treguar lidhësin si "COM#", i cili do të jetë i nevojshëm për të krijuar një objekt arduino për sa kohë që ai është i njëjti hyrje në çdo kohë.
Për shkak të faktit se LCD nuk ka lidhje të drejtpërdrejtë me bibliotekën Arduino, duhet të krijohet një bibliotekë e re për të shfaqur mesazhe. Një rekomandim është të krijoni një skedar LCDAddon.m nga shembulli LCD i gjetur në dritaren e ndihmës MATLAB pasi të kërkoni "Arduino LCD" dhe ta vendosni në dosjen +arduinoioaddons, ose të përdorni dosjen e ngjeshur të bashkangjitur dhe të kopjoni të gjithë përmbajtjen e tij në të lartpërmendurat dosje.
Nëse është i suksesshëm, atëherë kodi për të krijuar një objekt Arduino në MATLAB është siç tregohet më poshtë.
a = arduino ('com#', 'uno', 'Bibliotekat', 'ShembullLCD/LCDAddon');
Hapi 4: Funksionet
Krijoni një funksion MATLAB. Për hyrjet, ne përdorim variablat "eff" dhe "T_min"; për daljet, edhe pse të panevojshme në modelin e përgjithshëm, ne përdorëm variablin "B" si një mënyrë për të përmbajtur të dhënat nga rezultatet. Hyrja "eff" lejon menaxhimin e shpejtësisë maksimale të servo, dhe hyrja "T_min" kontrollon temperaturën minimale të dëshiruar. Vlera "B" duhet të prodhojë kështu një matricë që përmban tre kolona për kohën, temperaturën dhe efikasitetin e ventilatorit. Gjithashtu, si një bonus për detajet, kodi i listuar më poshtë gjithashtu ka një deklaratë if nëse shpejtësia e ventilatorit do të ulet me pesëdhjetë për qind kur të afrohet me temperaturën minimale të dëshiruar.
Nëse të gjitha hyrjet dhe telat e kërcyesit janë vendosur saktësisht dhe duke supozuar se porta e lidhjes arduino është COM4 dhe emri i funksionit është "fanread", kodi i mëposhtëm duhet të jetë i mjaftueshëm:
funksioni [B] = fanread (Tmin, eff)
pastroj a; lcd qartë; a = arduino ('com4', 'uno', 'Bibliotekat', 'ShembullLCD/LCDAddon');
t = 0; t_max = 15; % kohë në sekonda
lcd = addon (a, 'ShembullLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
inicializoni LCD (lcd, 'Rows', 2, 'Columns', 2);
nëse eff> = 1 || e <0
gabim ('Tifozi nuk do të aktivizohet nëse eff nuk është vendosur midis 0 dhe 1.')
fund
për t = 1: 10 % numri i sythe/intervaleve
c e qartë; % parandalojnë përsëritjen e gabimit
v = readVoltage (a, 'A0');
TempC = (v-0.5)*100; % vlerësim për diapazonin e tensionit 2.7-5.5 V
nëse TempC> Tmin nëse TempC
c = ['Temp', num2str (TempC, 3), 'C On'];
shkruajPWMDutyCycle (a, 'D9', eff/2); % aktivizoni servo me gjysmën e shpejtësisë
spd = 50;
tjeter
c = ['Temp', num2str (TempC, 3), 'C On'];
shkruajPWMDutyCycle (a, 'D9', eff); % aktivizoni servo me shpejtësinë e dhënë
spd = 100;
fund
tjeter
c = ['Temp', num2str (TempC, 3), 'C Off'];
shkruajPWMDutyCycle (a, 'D9', 0); % mbyllet nëse tashmë është aktiv
spd = 0;
fund
printLCD (LCD, c);
pauzë (3); % tre sekonda kalojnë për lak
koha (t) = t.*3;
tempplot (t) = TempC;
akt (t) = spd;
nënplot (2, 1, 1)
grafiku i grafikut (koha, tempplot, 'b-o') %
boshti ([0 33 0 40])
xlabel ('Koha (sekonda)')
ylabel ('Temperatura (C)')
prit
komplot ([0 33], [Tmin Tmin], 'r-')
prit
komplot ([0 33], [Tmin+2 Tmin+2], 'g-')
nënplot (2, 1, 2)
bar (koha, veprimi) % grafiku i shiritit
xlabel ('Koha (sekonda)')
ylabel ('Efikasiteti (%)')
fund
B = transpozoj ([koha; tempplot; veproj]);
fund
Tani që funksioni është i plotë, është koha për të provuar.
Hapi 5: Testimi
Tani testoni funksionin në dritaren e komandës duke futur "emrin e funksionit (vlera hyrëse_, vlera hyrëse_2)" dhe shikoni. Sigurohuni që asnjë objekt Arduino nuk ekziston tashmë; nëse është kështu, përdorni komandën "clear a" për ta hequr atë. Nëse ndodhin gabime, kontrolloni dhe shihni nëse ndonjë lidhje është në vendin e gabuar ose nëse përdoren hyrje të gabuara dixhitale ose analoge. Rezultatet pritet të ndryshojnë, edhe pse kjo mund të shkaktohet nga vendosja e telave të caktuara të kërcyesit dhe sensorit të temperaturës.
Pritjet e rezultateve duhet të prodhojnë ndryshime në performancën e servo dhe të dhënat në LCD. Me çdo interval prej tre sekondash, një rresht teksti duhet të shfaqë temperaturën në Celsius dhe nëse ventilatori është aktiv ose jo ndërsa ventilatori funksionon me shpejtësi të plotë, gjysmë shpejtësie ose pa shpejtësi. Të dhënat ka shumë të ngjarë të mos jenë të qëndrueshme, megjithëse nëse dëshirojnë rezultate më të ndryshme, vendosni vlerën "Tmin" afër temperaturës mesatare të prodhuar nga qarku.
Hapi 6: Përfundimi
Megjithëse një detyrë e vështirë për tu realizuar me provë dhe gabim, rezultatet përfundimtare dolën të ishin mjaft interesante dhe të kënaqshme. Një sistem si i tillë ndihmon për të ilustruar se sa makina të ndërlikuara, apo edhe disa pjesë të tyre, mund të shihen si një koleksion i pjesëve të pavarura të vendosura së bashku për të arritur një qëllim specifik.
Për shkak të modelimit mjaft të thjeshtuar të projektit përfundimtar, ata që kanë interes të përmirësojnë performancën e tij mund të bëjnë ndryshime dhe ndryshime në produktin përfundimtar që mund ta bëjnë projektin më të mirë dhe më të përpunuar. Sidoqoftë, ai zbulon dobësi në qark, siç është aktivizimi i servo -s, duke rezultuar në luhatje sporadike në leximin e tensionit të qarkut, gjë që mund të bëjë që sistemi të mos prodhojë kurrë rezultate identike. Gjithashtu, ka pasur probleme me shikimin e një ndryshimi në shpejtësinë e servo kur "eff" është vendosur 0.4 dhe më e lartë. Sikur të ishte përdorur një sensor i temperaturës dhe lagështisë, modeli përfundimtar do të ishte më i komplikuar, por do të paraqiste vlera më të qëndrueshme. Sidoqoftë, kjo është një përvojë që tregon se një makinë komplekse mund të funksionojë si një kombinim i pjesëve të saj të thjeshta.
Recommended:
Miniaturizimi i Robotit Autonom të Arduino (Land Rover / Makinë) Faza 1 Modeli 3: 6 Hapa
Miniaturizimi i Robotit Autonome Arduino (Land Rover / Makinë) Faza1Modeli 3: Vendosa të miniaturizoj Land Rover / Car / Bot për të zvogëluar madhësinë dhe konsumin e energjisë të projektit
Ashensor modeli i kontrolluar nga Arduino: 7 hapa (me fotografi)
Ashensor modeli i kontrolluar nga Arduino: Në këtë udhëzues do t'ju tregoj se si kam ndërtuar një ashensor lodrash me dy nivele, me dyer rrëshqitëse të punës dhe një makinë që lëviz lart e poshtë sipas kërkesës. Zemra e ashensorit është një Arduino Uno (ose në këtë rast një Metro Adafruit), me Adafruit Moto
Modeli i Automatizuar i Paraqitjes së Hekurudhave që Drejton Dy Trena (V2.0) - Bazuar në Arduino: 15 hapa (me fotografi)
Modeli i Automatizuar Paraqitja e Hekurudhave që Drejton Dy Trena (V2.0) | Bazuar në Arduino: Automatizimi i modeleve të modelit të hekurudhave duke përdorur mikrokontrolluesit Arduino është një mënyrë e shkëlqyeshme për të bashkuar mikrokontrolluesit, programimin dhe modelimin e hekurudhave në një hobi. Ka një mori projektesh të disponueshme për drejtimin e një treni në mënyrë autonome në një model hekurudhor
Modeli i thjeshtë i modeluar i modelit hekurudhor - Arduino e kontrolluar: 11 hapa (me fotografi)
Modeli i thjeshtë i modeluar i modelit hekurudhor | Arduino e kontrolluar: Mikrokontrolluesit Arduino janë një shtesë e shkëlqyeshme për modelin e hekurudhave, veçanërisht kur merren me automatizimin. Këtu është një mënyrë e thjeshtë dhe e lehtë për të filluar me modelimin e automatizimit të hekurudhave me Arduino. Pra, pa asnjë zhurmë të mëtejshme, le të fillojmë
Modeli Monoprice Modeli Retro i Shkëputshëm Mod: 26 hapa (me fotografi)
Modeli Monoprice Modeli Retro i Shkëputshëm: këto kufje janë me vlerë të madhe (25 dollarë), por kablloja e bashkangjitur është shumë e gjatë. tani pas kësaj ju mund të merrni çdo gjatësi të kabllit që dëshironi. ose mund të marrësh një dongle bluetooth dhe të kesh kufje pa tel me tingull të shkëlqyeshëm. kufje Bluetooth kjo është përshtatja