Sisällysluettelo:

EF 230: Kotijärjestelmä 3000 Ohjeellinen: 4 vaihetta
EF 230: Kotijärjestelmä 3000 Ohjeellinen: 4 vaihetta

Video: EF 230: Kotijärjestelmä 3000 Ohjeellinen: 4 vaihetta

Video: EF 230: Kotijärjestelmä 3000 Ohjeellinen: 4 vaihetta
Video: EF 230 Roomba Project video (Fall 2018) 2024, Marraskuu
Anonim
EF 230: Kotijärjestelmä 3000 Instructable
EF 230: Kotijärjestelmä 3000 Instructable

Home System 3000 on laite, joka käyttää Arduinoa, lämpötila -anturia, pietsosummeria, optista ilmaisinta/valotransistoria ja servoa näyttääkseen tapoja parantaa kodin energiatehokkuutta.

Vaihe 1: Lämpötila -anturi

Lämpösensori
Lämpösensori

· Käytä virta- ja maadoitusjohtoja

mikro -ohjain leipälevyn sivulle

· Aseta lämpötila -anturi leipälevyyn ja vedä vastaavat virta- ja maadoitusjohdot sen mukaisesti

· Huomaa, että lämpötila -anturissa on kolme piikkiä ja keskimmäisessä piikissä on johto, joka kulkee portista "A0".

· Lämpötila -anturin koodi:

answer = questdlg ('Suorita arduino ja servon käynnistyskoodi', 'vastaus', 'Ok', 'Ok')

prompt = 'Aloita painamalla mitä tahansa näppäintä'

tauko

prompt1 = 'Aseta minimilämpötila'

x = tulo (kehote1)

prompt2 = 'Aseta maksimilämpötila'

y = syöttö (kehote2)

prompt3 = 'paina mitä tahansa näppäintä aloittaaksesi'

tauko

kuva

h = animoitu rivi;

kirves = gca;

ax. YGrid = 'päällä';

ax. YLim = [65 85];

stop = epätosi;

startTime = päivämääräaika ('nyt');

~ pysähdy

% Lue nykyinen jännitearvo

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

% Laske lämpötila jännitteestä (tietolomakkeen perusteella)

Lämpötila = (v - 0,5)*100;

Lämpötila = 9/5*TempC + 32;

% Hae nykyinen aika

t = datetime ('now') - startTime;

% Lisää pisteitä animaatioon

lisäosat (h, datenum (t), TempF)

% Päivitä akselit

ax. XLim = nollapiste ([t-sekuntia (15) t]);

datetick ('x', 'keeplimits')

vedetty

% Tarkista pysäytystila

stop = readDigitalPin (a, 'D12');

Vaihe 2: summeri

Summeri
Summeri

· Johto summerissa, jota käytetään ilmoittamaan äärimmäisen korkeasta tai äärimmäisen alhaisesta lämpötilasta

· Johtoa ei johdeta positiivisesta kolonnista summerin positiiviselle puolelle

· Sen sijaan lanka johdetaan summerin positiiviselta puolelta porttiin, jossa on merkintä "11"

Tätä käytetään myöhemmin kutsumaan summerin sijainti kirjoitetussa koodissa.

· Summerin koodi:

jos TempF> = y

disp ('sulje ovi, se on kuuma')

playTone (a, 'D11', 500, 1)

elseif TempF <= x

disp ('sulje ovi, se on kylmä')

playTone (a, 'D11', 250, 1)

loppuun

loppuun

Vaihe 3: Optinen ilmaisin/valotransistori

Optinen ilmaisin/valotransistori
Optinen ilmaisin/valotransistori

· Tämä anturi vaatii vastuksia, toisin kuin muut

· Varmista, että kaikki neljä anturin piikkiä ovat silmukassa johtojen kytkemisen jälkeen

· Anturi havaitsee valon muutoksen, joka kuvaa liikettä, ja tallentaa sen tulona

· Optisen ilmaisimen/valotransistorin koodi:

kirkas a

a = arduino ('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Libraries', 'Servo');

prompt = 'Aseta valotaso kynnys'

z = syöttö (kehote)

lightLevel = 0

kun taas lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

jos lightLevel> = z

answer = questdlg ('haluaisi muuttaa AC: tä?', 'Kyllä', 'Ei')

vaihda vastaus

tapaus 'Kyllä'

answer2 = questdlg ('Käännetäänkö AC ylös tai alas?', 'vastaus', 'Alas', 'Ylös', 'Ylös')

Vaihda vastaus 2

tapaus "alas"

s = servo (a, 'D10');

kulmalle = 0:.1:.5

writePosition (s, kulma);

current_position = readPosition (s);

nykyinen_asento = nykyinen_asento * 180;

% tulostus servomoottorin nykyisestä sijainnista

fprintf ('Nykyinen sijainti on %d / n', current_position);

% pieni viive tarvitaan, jotta servo voidaan sijoittaa

% kulma kertoi sen.

tauko (2);

loppuun

% palauta moottori 0 -kulma -asentoon

writePosition (s, 0);

kirkas s

prompt = 'Jatka painamalla mitä tahansa näppäintä'

questdlg ('AC pois päältä', 'vastaus', 'Ok', 'Ok')

tapaus 'ylös'

s = servo (a, 'D10');

kulmalle =.5:.1: 1

writePosition (s, kulma);

current_position = readPosition (s);

nykyinen_asento = nykyinen_asento * 180;

% tulostus servomoottorin nykyisestä sijainnista

fprintf ('Nykyinen sijainti on %d / n', current_position);

% pieni viive tarvitaan, jotta servo voidaan sijoittaa

% kulma kertoi sen.

tauko (2);

loppuun

Vaihe 4: Servo

Servo
Servo

· Servo edustaa

ilmastointilaite, ja se on liiketunnistustulon lähtö

· Se vaatii positiivisen johdon, maadoitusjohdon ja johdon portista "D9" servoon

· Servon koodi:

% palauta moottori 0 -kulma -asentoon

writePosition (s, 0);

kirkas s

prompt = 'Jatka painamalla mitä tahansa näppäintä'

questdlg ('AC käynnistyi', 'vastaus', 'Ok', 'Ok')

loppuun

loppuun

tauko

tauko

loppuun

loppuun

*Erityinen huomautus: osa servon koodista on integroitu optisen ilmaisimen/valotransistorin koodiin.

Suositeltava: