Sisällysluettelo:

Arduinon ilmastointilaite: 6 vaihetta
Arduinon ilmastointilaite: 6 vaihetta

Video: Arduinon ilmastointilaite: 6 vaihetta

Video: Arduinon ilmastointilaite: 6 vaihetta
Video: Как проверить генератор. За 3 минуты, БЕЗ ПРИБОРОВ и умений. 2024, Heinäkuu
Anonim
Arduinon ilmastointilaite
Arduinon ilmastointilaite

Osana demonstraatiota tiimimme kyvystä luoda malli älylaitelaitteesta markkinointitarkoituksiin tavoitteena oli luoda järjestelmä, jossa lämpötila -anturi lukee piirin tiedot ja muuntaa tiedot lämpötila -arvoksi, joka on sekä näytetään valaistulla näytöllä ja keskitytään siihen, kytkeytyykö tuuletin päälle vai pois. Tarkoituksena on auttaa mukautumaan matkustajien ajo -olosuhteisiin käyttämällä automaattista järjestelmää, joka myös näyttää lämpötilan välittömässä läheisyydessä.

Käyttämällä Arduino -mikrokontrollerisarjaa ja MATLAB -versioita 2016b ja 2017b pystyimme osoittamaan nämä tulokset suhteellisen menestyksekkäästi.

Vaihe 1: Laitteet

Laitteet
Laitteet

Mikro -ohjainsarja, jossa on seuraavat:

-Sparkfun Red Board

-Sparkfun Breadboard

-LCD -levy

-Potentiometri

-Lämpösensori

-Servo

-USB/Arduino -sovitin

-hyppyjohdot (vähintään 25)

Kannettava tietokone (Windows 10), jossa on USB -tulo

3D -tulostettu objekti (valinnainen)

Vaihe 2: Mikro -ohjaimen asennus

Mikro -ohjaimen asennus
Mikro -ohjaimen asennus
Mikro -ohjaimen asennus
Mikro -ohjaimen asennus
Mikro -ohjaimen asennus
Mikro -ohjaimen asennus
Mikro -ohjaimen asennus
Mikro -ohjaimen asennus

Ajattele tätä: koko järjestelmä koostuu yksittäisistä yksiköistä, joista jokainen soveltaa merkittävää tekijää lopputulokseen. Tästä syystä on erittäin suositeltavaa luoda piiristä kuva ennen johtojen kiinnittämistä mutkikkaaseen sotkuun.

Kunkin yksittäisen mallin kuvat ovat mikro -ohjaimen työkalusarjan käyttöoppaassa tai sen verkkosivustolla osoitteessa

Aloita kiinnittämällä lämpötila -anturi, potentiometri, servoliittimet ja LCD -levy levylle. On suositeltavaa, että nestekidenäytön koon ja sen johtojen lukumäärän vuoksi se asetetaan omalle leipälevyn puolelle ja muut osat toiselle puolelle ja että potentiometri on alueella, jossa joku voi kääntää nuppia helposti.

Viitteenä:

LCD: c1-16

Servo: i1-3 (GND + -)

Lämpötila-anturi: i13-15 (- GND +)

Potentiometri: g24-26 (- GND +)

Aloita seuraavaksi hyppyjohtojen yhdistäminen mikro -ohjainyksiköiden kuhunkin nastaan; Vaikka koko yleissuunnitelmassa mielivaltainen, malli luotiin seuraavilla tärkeillä yhteyksillä:

Potentiometrin liittäminen nestekidenäyttöön: f25 - e3

Servo GND -johto: j1 - digitaalitulo 9

Lämpötila -anturi GND: j14 - analogiatulo 0

LCD-tulot: e11-e15-digitaalitulo 2-5

e4 - Digitaalitulo 7

e6 - Digitaalitulo 6

(Huomautus: Jos onnistuu, LCD -näytön molempien valojen pitäisi vilkkua ja potentiometri voi auttaa säätämään kirkkauttaan, kun se saa virtansa verkkolaitteesta.)

Valinnainen: 3D -tulostettua esinettä käytettiin osana vaatimusta. Hauraammille osille mahdollisesti aiheutuvien vaurioiden välttämiseksi LCD -paneelin ympärille asetettiin pidempi kotelo. Nestekidenäytön mitat osoittautuivat noin 2-13/16 "x 1-1/16" x 1/4 ", joten vain korkeus muuttui merkittävästi. Jos 3D-tulostin on helposti saatavilla, harkitse henkilökohtaisen esineen lisäämistä Huomaa myös, että mitat voivat vaihdella.

Vaihe 3: MATLAB -asennus

MATLAB -asennus
MATLAB -asennus
MATLAB -asennus
MATLAB -asennus

Asenna MATLABin päivitetty versio (2016a ja siitä eteenpäin), joka on saatavana MathWorksin verkkosivustolta https://www.mathworks.com/products/matlab.html?s_tid=srchtitle. Kun olet avannut, siirry Aloitus-välilehden Lisäosat-kohtaan ja lataa "MATLAB Support Package for Arduino Hardware", jotta mikrokomentojen komennot ovat käytettävissä.

Kun olet valmis, voit tehdä testin löytääksesi mikro -ohjaimen yhteyden tietokoneeseen/kannettavaan tietokoneeseen. Kun olet liittänyt ne työkalusarjan USB -sovittimeen, kirjoita komento "fopen (serial ('nada'))."

Näyttöön tulee virhesanoma, jossa liitin on "COM#", jota tarvitaan arduino-objektin luomiseen niin kauan kuin se on aina sama tulo.

Koska nestekidenäytöllä ei ole suoraa yhteyttä Arduinon kirjastoon, viestien näyttämiseksi on luotava uusi kirjasto. Suositus on luoda LCDAddon.m -tiedosto MATLAB -ohjeikkunassa olevasta LCD -esimerkistä sen jälkeen, kun on tehty haku "Arduino LCD" ja sijoitettu +arduinoioaddons -kansioon, tai käytä liitettyä pakattua kansiota ja kopioi kaikki sen sisältö edellä mainittuun kansio.

Jos onnistuu, koodi Arduino -objektin luomiseksi MATLABissa on alla.

a = arduino ('com#', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

Vaihe 4: Toiminnot

Toiminnot
Toiminnot
Toiminnot
Toiminnot

Luo MATLAB -toiminto. Sisääntuloihin käytämme muuttujia "eff" ja "T_min"; tuotoksissa, vaikka ne olisivat tarpeettomia yleissuunnittelussa, käytimme muuttujaa "B" keinona sisällyttää tietoja tuloksista. Tulo "eff" mahdollistaa servon suurimman nopeuden hallinnan, ja tulo "T_min" ohjaa haluttua minimilämpötilaa. Arvon "B" pitäisi siis tuottaa matriisi, joka sisältää kolme saraketta puhaltimen ajan, lämpötilan ja tehokkuuden osalta. Lisäksi yksityiskohtaisena bonuksena alla luetellussa koodissa on if-lause, jonka mukaan tuulettimen nopeus laskee 50 prosenttia, kun se saavuttaa halutun minimilämpötilan.

Jos kaikki tulot ja hyppyjohdot on sijoitettu täsmälleen ja olettaen, että arduino -liitännän portti on COM4 ja toiminnon nimi on "fanread", seuraavan koodin pitäisi riittää:

toiminto [B] = fanread (Tmin, eff)

selkeä a; clear lcd; a = arduino ('com4', 'uno', 'Libraries', 'ExampleLCD/LCDAddon');

t = 0; t_max = 15; % aikaa sekunneissa

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

initializeLCD (lcd, 'Rivit', 2, 'Sarakkeet', 2);

jos eff> = 1 || e <0

virhe ('Tuuletin ei aktivoidu, ellei eff ole asetettu välille 0 ja 1.')

loppuun

t = 1: 10 % silmukoita/aikavälejä

kirkas c; % estää virheen toistumisen

v = lukujännite (a, 'A0');

Lämpötila = (v-0,5)*100; % arvio jännitealueille 2,7-5,5 V

jos TempC> Tmin jos TempC

c = ['Lämpö', numero2str (TempC, 3), 'C Päällä'];

writePWMDutyCycle (a, 'D9', eff/2); % käynnistä servo puoleen nopeuteen

spd = 50;

muu

c = ['Lämpö', numero2str (TempC, 3), 'C Päällä'];

writePWMDutyCycle (a, 'D9', eff); % käynnistä servo annetulla nopeudella

spd = 100;

loppuun

muu

c = ['Lämpö', numero2str (TempC, 3), 'C Pois'];

writePWMDutyCycle (a, 'D9', 0); % sammutettu, jos se on jo päällä

spd = 0;

loppuun

printLCD (lcd, c);

tauko (3); % kolme sekuntia kuluu silmukkaa kohti

aika (t) = t.*3;

tempplot (t) = Lämpötila;

act (t) = spd;

osajuoni (2, 1, 1)

plot (aika, tempplot, 'b-o') % viivakaavio

akseli ([0 33 0 40])

xlabel ('Aika (sekuntia)')

ylabel ('Lämpötila (C)')

pidä kiinni

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

pidä kiinni

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

osajuoni (2, 1, 2)

palkki (aika, teko) % pylväskaavio

xlabel ('Aika (sekuntia)')

ylabel ('Tehokkuus (%)')

loppuun

B = transponoi ([aika; tempplot; act]);

loppuun

Nyt kun toiminto on valmis, on aika testata.

Vaihe 5: Testaus

Testaus
Testaus
Testaus
Testaus

Testaa nyt toiminto komentoikkunassa lisäämällä "function_name (input_value_1, input_value_2)" ja katso. Varmista, ettei Arduino -objektia ole jo olemassa; Jos näin on, poista se komennolla "a a". Jos virheitä ilmenee, tarkista ja tarkista, ovatko liittimet väärässä paikassa tai käytetäänkö väärää digitaalista tai analogista tuloa. Tulosten odotetaan vaihtelevan, vaikka tämä saattaa johtua tiettyjen hyppyjohtojen ja lämpötila -anturin sijoittamisesta.

Tulosten odotusten pitäisi muuttaa servon suorituskykyä ja nestekidenäytön tietoja. Joka kolmen sekunnin välein tekstirivillä tulee näyttää lämpötila celsiusasteina ja onko puhallin aktiivinen puhaltimen ollessa käynnissä täydellä nopeudella, puolinopeudella tai ilman nopeutta. Tietojen ei todennäköisesti pitäisi olla johdonmukaisia, mutta jos haluat enemmän erilaisia tuloksia, aseta "Tmin" -arvo lähellä piirin tuottamaa keskilämpötilaa.

Vaihe 6: Johtopäätös

Johtopäätös
Johtopäätös

Lopputulokset osoittautuivat varsin mielenkiintoisiksi ja tyydyttäviksi, vaikka ne olisivat vaikeita kokeilla ja erehtyä. Järjestelmä sinänsä auttaa havainnollistamaan sitä, kuinka monta monimutkaista konetta tai jopa joitakin niiden osia voidaan pitää kokoelmana itsenäisistä osista, jotka on sijoitettu yhteen tietyn tavoitteen saavuttamiseksi.

Lopullisen projektin melko yksinkertaisen suunnittelun vuoksi ne, jotka ovat kiinnostuneita parantamaan sen suorituskykyä, voivat tehdä lopputuotteeseen muutoksia ja muutoksia, jotka voivat tehdä projektista paremman ja yksityiskohtaisemman. Se paljastaa kuitenkin piirin heikkouksia, kuten servon aktivoinnin, joka johtaa satunnaisiin vaihteluihin piirin jännitteen lukemassa, mikä voi aiheuttaa sen, että järjestelmä ei koskaan tuota samanlaisia tuloksia. Myös servonopeuden muutoksen havaitsemisessa on ollut ongelmia, kun "eff" on asetettu 0,4 ja korkeammalle. Jos lämpötila- ja kosteusanturia olisi käytetty, lopullinen malli olisi monimutkaisempi, mutta sen arvot olisivat yhdenmukaisempia. Tämä on kuitenkin kokemus, joka osoittaa, että monimutkainen kone voi toimia yhdistelmänä sen yksinkertaisista osista.

Suositeltava: