INHOUDSOPGAWE:

EF 230: Home System 3000 Instrueerbaar: 4 stappe
EF 230: Home System 3000 Instrueerbaar: 4 stappe

Video: EF 230: Home System 3000 Instrueerbaar: 4 stappe

Video: EF 230: Home System 3000 Instrueerbaar: 4 stappe
Video: 220 В переменного тока от 12 В 90 А Автомобильный генератор переменного тока 1000 Вт DIY 2024, Julie
Anonim
EF 230: Home System 3000 Instrueerbaar
EF 230: Home System 3000 Instrueerbaar

Die Home System 3000 is 'n toestel wat 'n Arduino, 'n temperatuursensor, 'n piezo -zoemer, 'n optiese detektor/fototransistor en 'n servo gebruik om maniere te wys om die energie -doeltreffendheid van die huis te verbeter.

Stap 1: Temperatuursensor

Temperatuur sensor
Temperatuur sensor

· Gebruik u krag- en aarddrade

die mikrobeheerder aan die kant van die broodbord

· Plaas die temperatuursensor in die broodbord en voer die ooreenstemmende krag- en gronddrade dienooreenkomstig

· Let op dat die temperatuursensor drie tande het, en die middelste punt het 'n draad wat van die poort "A0" loop.

· Kode vir temperatuursensor:

answer = questdlg ('Begin asseblief die arduino- en servo -startkode', 'response', 'Ok', 'Ok')

prompt = 'Druk op enige sleutel om te begin'

pouse

prompt1 = 'Stel minimum temperatuur'

x = invoer (prompt1)

prompt2 = 'Stel maksimum temperatuur'

y = invoer (prompt2)

prompt3 = 'druk op enige sleutel om te begin'

pouse

figuur

h = geanimeerde lyn;

byl = gca;

ax. YGrid = 'aan';

ax. YLim = [65 85];

stop = vals;

startTime = datetime ('nou');

terwyl ~ stop

% Lees huidige spanningswaarde

v = readVoltage (a, 'A0');

% Bereken temperatuur vanaf spanning (gebaseer op datablad)

TempC = (v - 0.5)*100;

TempF = 9/5*TempC + 32;

Kry die huidige tyd

t = datetime ('nou') - startTime;

Voeg punte by animasie

byvoegings (h, datum (t), TempF)

Dateer asse op

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

datetick ('x', 'keep limits')

getrek

Gaan die stoptoestand na

stop = readDigitalPin (a, 'D12');

Stap 2: Gonser

Gonser
Gonser

· Draai die gonser in wat gebruik word om 'n uiterste hoë of uiterste lae temperatuur te toon

· Geen draad word van die positiewe kolom na die positiewe kant van die zoemer gelei nie

· In plaas daarvan word 'n draad van die positiewe kant van die zoemer na 'n poort met die naam "11" gelei

Dit sal later gebruik word om die ligging van die zoemer in die geskrewe kode te noem.

· Kode vir gonser:

as TempF> = y

disp ('sluit deur, dit is warm')

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

andersif TempF <= x

disp ('sluit deur, dit is koud')

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

einde

einde

Stap 3: Optiese detektor/fototransistor

Optiese detektor/fototransistor
Optiese detektor/fototransistor

· Hierdie sensor benodig weerstande in teenstelling met die ander

· Maak seker dat al vier die punte van die sensor in die lus ingesluit is nadat die drade in die stekker gekoppel is

· Die sensor bespeur 'n verandering in lig, wat beweging voorstel, en teken dit op as 'n inset

· Kode vir optiese detektor/fototransistor:

duidelik a

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

prompt = 'Stel ligvlakdrempel'

z = invoer (prompt)

lightLevel = 0

terwyl lightLevel ~ = -1

lightLevel = readVoltage (a, 'A1')

as ligvlak> = z

antwoord = questdlg ('wil u AC verander?', 'Ja', 'Nee')

skakel antwoord

geval 'Ja'

answer2 = questdlg ('Draai AC omhoog of omlaag?', 'response', 'Down', 'Up', 'Up')

skakel antwoord 2

geval 'af'

s = servo (a, 'D10');

vir hoek = 0:.1:.5

skryfPosisie (s, hoek);

current_position = readPosition (s);

huidige posisie = huidige posisie * 180;

% druk huidige posisie van servomotor

fprintf ('Huidige posisie is %d / n', huidige_posisie);

'n klein vertraging is nodig sodat die servo by die

% hoek daaraan vertel.

pouse (2);

einde

bring motor terug in 0 -hoekposisie

skryfPosisie (s, 0);

duidelik s

prompt = 'Druk op enige sleutel om voort te gaan'

questdlg ('AC afgewys', 'antwoord', 'Ok', 'Ok')

geval 'Up'

s = servo (a, 'D10');

vir hoek =.5:.1: 1

skryfPosisie (s, hoek);

current_position = readPosition (s);

huidige posisie = huidige posisie * 180;

% druk huidige posisie van servomotor

fprintf ('Huidige posisie is %d / n', huidige_posisie);

'n klein vertraging is nodig sodat die servo by die

% hoek daaraan vertel.

pouse (2);

einde

Stap 4: Servo

Servo
Servo

· Die servo verteenwoordig

'n lugversorger, en is 'n uitset van die bewegingsopsporingsinvoer

· Dit benodig 'n positiewe draad, gronddraad en 'n draad van poort "D9" na die servo

· Kode vir servo:

bring motor terug in 0 -hoekposisie

skryfPosisie (s, 0);

duidelik s

prompt = 'Druk op enige sleutel om voort te gaan'

questdlg ('AC opgedaag', 'antwoord', 'Ok', 'Ok')

einde

einde

pouse

breek

einde

einde

*Spesiale opmerking: sommige van die kode vir die servo is geïntegreer met die kode vir die optiese detektor/fototransistor.

Aanbeveel: