Satura rādītājs:

EF 230: Mājas sistēma 3000 Instrukcijas: 4 soļi
EF 230: Mājas sistēma 3000 Instrukcijas: 4 soļi

Video: EF 230: Mājas sistēma 3000 Instrukcijas: 4 soļi

Video: EF 230: Mājas sistēma 3000 Instrukcijas: 4 soļi
Video: Первый запуск бензинового генератора. Плюс несколько советов 2024, Jūlijs
Anonim
EF 230: Instalējama mājas sistēma 3000
EF 230: Instalējama mājas sistēma 3000

Home System 3000 ir ierīce, kas izmanto Arduino, temperatūras sensoru, pjezo skaņas signālu, optisko detektoru/fototransistoru un servo, lai parādītu veidus, kā uzlabot mājas energoefektivitāti.

1. darbība: temperatūras sensors

Temperatūras sensors
Temperatūras sensors

· Vadiet strāvas un zemējuma vadus no

mikrokontrolleri uz maizes dēļa sāniem

· Ievietojiet temperatūras sensoru maizes dēlī un attiecīgi palaidiet atbilstošos strāvas un zemējuma vadus

· Ievērojiet, ka temperatūras sensoram ir trīs zari, bet vidējam - vads, kas iet no porta "A0".

· Temperatūras sensora kods:

answer = questdlg ('Lūdzu, palaidiet arduino un servo starta kodu', 'response', 'Ok', 'Ok')

prompt = 'Lai sāktu, nospiediet jebkuru taustiņu'

pauze

prompt1 = 'Iestatīt minimālo temperatūru'

x = ievade (uzvedne1)

prompt2 = 'Iestatīt maksimālo temperatūru'

y = ievade (uzvedne2)

prompt3 = 'lai sāktu, nospiediet jebkuru taustiņu'

pauze

figūra

h = animēta līnija;

cirvis = gca;

ax. YGrid = 'ieslēgts';

cirvis. YLim = [65 85];

stop = nepatiess;

startTime = datuma laiks ('tagad');

kamēr ~ apstāties

% Nolasīt pašreizējo sprieguma vērtību

v = lasīt spriegumu (a, 'A0');

% Aprēķināt temperatūru no sprieguma (pamatojoties uz datu lapu)

TempC = (v - 0,5)*100;

TempF = 9/5*TempC + 32;

% Iegūt pašreizējo laiku

t = datuma laiks ('tagad') - startTime;

% Pievienojiet punktus animācijai

papildinājumi (h, datenum (t), TempF)

% Asu atjaunināšana

ax. XLim = datums ([t-sekundes (15) t]);

datu atzīme ('x', 'keeplimits')

izvilkts

% Pārbaudiet apstāšanās stāvokli

stop = readDigitalPin (a, 'D12');

2. darbība: skaņas signāls

Signāls
Signāls

· Vadu skaņas signālā, kas tiks izmantots, lai rādītu ārkārtīgi augstu vai ārkārtīgi zemu temperatūru

· No pozitīvās kolonnas uz skaņas signāla pozitīvo pusi netiek vadīts vads

· Tā vietā vads tiek novadīts no skaņas signāla pozitīvās puses uz portu ar apzīmējumu "11"

Tas tiks izmantots vēlāk, lai rakstītajā kodā izsauktu skaņas signāla atrašanās vietu.

· Signāla kods:

ja TempF> = y

disp ('aizver durvis, ir karsts')

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

elseif TempF <= x

disp ('aizver durvis, ir auksts')

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

beigas

beigas

3. darbība: optiskais detektors/fototransistors

Optiskais detektors/fototransistors
Optiskais detektors/fototransistors

· Šim sensoram ir nepieciešami rezistori atšķirībā no citiem

· Pēc vadu pievienošanas pārliecinieties, vai visi četri sensora zari ir iekļauti cilpā

· Sensors nosaka gaismas izmaiņas, attēlojot kustību, un reģistrē tās kā ievadi

· Optiskā detektora/fototransistora kods:

skaidrs a

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

prompt = 'Iestatīt gaismas līmeņa slieksni'

z = ievade (uzvedne)

gaismas līmenis = 0

kamēr lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

ja lightLevel> = z

atbilde = questdlg ('vēlētos mainīt maiņstrāvu?', 'jā', 'nē')

pārslēgt atbildi

gadījums "jā"

answer2 = questdlg ('Pagriezt maiņstrāvu uz augšu vai uz leju?', 'atbilde', 'uz leju', 'uz augšu', 'uz augšu')

pārslēgt atbildi2

lieta "uz leju"

s = servo (a, 'D10');

leņķim = 0:.1:.5

writePosition (s, leņķis);

current_position = readPosition (s);

pašreizējā_pozīcija = pašreizējā_pozīcija * 180;

Servodzinēja pašreizējās pozīcijas drukāšana %

fprintf ('Pašreizējā pozīcija ir %d / n', pašreizējā_pozīcija);

Nepieciešama % neliela aizture, lai servo varētu novietot pie

% leņķis to pateica.

pauze (2);

beigas

% atgrieziet motoru 0 leņķa stāvoklī

writePosition (s, 0);

skaidrs s

prompt = 'Lai turpinātu, nospiediet jebkuru taustiņu'

questdlg ('maiņstrāva noraidīta', 'atbilde', 'labi', 'labi')

lieta 'uz augšu'

s = servo (a, 'D10');

leņķim =.5:.1: 1

writePosition (s, leņķis);

current_position = readPosition (s);

pašreizējā_pozīcija = pašreizējā_pozīcija * 180;

Servodzinēja pašreizējās pozīcijas drukāšana %

fprintf ('Pašreizējā pozīcija ir %d / n', pašreizējā_pozīcija);

Nepieciešama % neliela aizture, lai servo varētu novietot pie

% leņķis to pateica.

pauze (2);

beigas

4. solis: Servo

Servo
Servo

· Servo pārstāv

gaisa kondicionieris un ir kustības noteikšanas ieejas izeja

· Tam nepieciešams pozitīvs vads, zemējuma vads un vads no ostas "D9" līdz servo

· Servo kods:

% atgrieziet motoru 0 leņķa stāvoklī

writePosition (s, 0);

skaidrs s

prompt = 'Lai turpinātu, nospiediet jebkuru taustiņu'

questdlg ("AC ieslēgts", "atbilde", "Labi", "Labi")

beigas

beigas

pauze

pārtraukums

beigas

beigas

*Īpaša piezīme: daži servo kodi ir integrēti ar optiskā detektora/fototransistora kodu.

Ieteicams: