Innholdsfortegnelse:

EF 230: Home System 3000 Instruerbar: 4 trinn
EF 230: Home System 3000 Instruerbar: 4 trinn

Video: EF 230: Home System 3000 Instruerbar: 4 trinn

Video: EF 230: Home System 3000 Instruerbar: 4 trinn
Video: Как выбрать сейф для дома? Какой сейф лучше и не дорого... 2024, Juli
Anonim
EF 230: Home System 3000 Instruerbar
EF 230: Home System 3000 Instruerbar

Home System 3000 er en enhet som bruker en Arduino, en temperatursensor, en piezo -summer, en optisk detektor/fototransistor og en servo for å vise måter å forbedre energieffektiviteten i hjemmet.

Trinn 1: Temperatursensor

Temperatur sensor
Temperatur sensor

· Kjør strøm- og jordledningene fra

mikrokontrolleren på siden av brødbrettet

· Plasser temperatursensoren i brødbrettet, og kjør de tilsvarende strøm- og jordledningene tilsvarende

· Legg merke til at temperatursensoren har tre tenner, og den midterste tappen har en ledning som går fra porten "A0".

· Kode for temperatursensor:

answer = questdlg ('Vennligst kjør startkode for arduino og servo', 'svar', 'Ok', 'Ok')

prompt = 'Trykk på hvilken som helst tast for å begynne'

pause

prompt1 = 'Angi minimumstemperatur'

x = input (prompt1)

prompt2 = 'Still inn maksimal temperatur'

y = input (prompt2)

prompt3 = 'trykk på hvilken som helst tast for å begynne'

pause

figur

h = animert linje;

ax = gca;

ax. YGrid = 'på';

ax. YLim = [65 85];

stopp = usant;

startTime = datetime ('nå');

mens ~ stopp

% Les nåværende spenningsverdi

v = readVoltage (a, 'A0');

% Beregn temperatur fra spenning (basert på datablad)

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

TempF = 9/5*TempC + 32;

% Få nåværende tid

t = datetime ('nå') - startTime;

% Legg til poeng i animasjonen

tilleggspunkter (h, datenum (t), TempF)

% Oppdater akser

ax. XLim = datenum ([t-sekunder (15) t]);

datetick ('x', 'keeplimits')

tegnet

% Kontroller stopptilstanden

stop = readDigitalPin (a, 'D12');

Trinn 2: summer

Summer
Summer

· Ledning i summeren som skal brukes til å signalisere en ekstrem høy eller ekstrem lav temperaturavlesning

· Ingen ledning føres fra den positive kolonnen til den positive siden av summeren

· I stedet føres en ledning fra den positive siden av summeren til en port merket "11"

Dette vil bli brukt senere for å kalle plasseringen av summeren i den skrevne koden.

· Kode for summer:

hvis TempF> = y

disp ('lukk døren det er varmt')

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

elseif TempF <= x

disp ('lukk døren, det er kaldt')

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

slutt

slutt

Trinn 3: Optisk detektor/fototransistor

Optisk detektor/fototransistor
Optisk detektor/fototransistor

· Denne sensoren krever motstand i motsetning til de andre

· Kontroller at alle fire pinner på sensoren er inkludert i sløyfen etter at du har plugget inn ledningene

· Sensoren registrerer en endring i lys, som representerer bevegelse, og registrerer den som en inngang

· Kode for optisk detektor/fototransistor:

klar a

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

prompt = 'Angi terskel for lysnivå'

z = input (ledetekst)

lightLevel = 0

mens lysnivå ~ = -1

lightLevel = readVoltage (a, 'A1')

hvis lysnivå> = z

answer = questdlg ('ønsker du å endre AC?', 'Ja', 'Nei')

bytt svar

sak 'Ja'

answer2 = questdlg ('Skru AC opp eller ned?', 'svar', 'Ned', 'Opp', 'Opp')

bytt svar 2

sak 'Ned'

s = servo (a, 'D10');

for vinkel = 0:.1:.5

writePosition (s, vinkel);

current_position = readPosition (s);

current_position = current_position * 180;

% utskrifts nåværende posisjon for servomotor

fprintf ('Nåværende posisjon er %d / n', nåværende posisjon);

% liten forsinkelse kreves slik at servoen kan plasseres ved

% vinkel fortalt til det.

pause (2);

slutt

% bringe motoren tilbake til 0 vinkelposisjon

writePosition (s, 0);

klar s

prompt = 'Trykk på en tast for å fortsette'

questdlg ('AC slått ned', 'svar', 'Ok', 'Ok')

sak 'Opp'

s = servo (a, 'D10');

for vinkel =.5:.1: 1

writePosition (s, vinkel);

current_position = readPosition (s);

current_position = current_position * 180;

% utskrifts nåværende posisjon for servomotor

fprintf ('Nåværende posisjon er %d / n', nåværende posisjon);

% liten forsinkelse kreves slik at servoen kan plasseres ved

% vinkel fortalt til det.

pause (2);

slutt

Trinn 4: Servo

Servo
Servo

· Servoen representerer

et klimaanlegg, og er en utgang fra bevegelsesdeteksjonsinngangen

· Det krever en positiv ledning, jordet ledning og en ledning fra port "D9" til servoen

· Kode for servo:

% bringe motoren tilbake til 0 vinkelposisjon

writePosition (s, 0);

klar s

prompt = 'Trykk på en tast for å fortsette'

questdlg ('AC slått opp', 'svar', 'Ok', 'Ok')

slutt

slutt

pause

gå i stykker

slutt

slutt

*Spesiell merknad: noe av koden for servoen er integrert med koden for den optiske detektoren/fototransistoren.

Anbefalt: