Բովանդակություն:

EF 230: Home System 3000 Ուսուցիչ ՝ 4 քայլ
EF 230: Home System 3000 Ուսուցիչ ՝ 4 քայլ

Video: EF 230: Home System 3000 Ուսուցիչ ՝ 4 քայլ

Video: EF 230: Home System 3000 Ուսուցիչ ՝ 4 քայլ
Video: Paradise or Oblivion 2024, Նոյեմբեր
Anonim
EF 230: Home System 3000 Instructable
EF 230: Home System 3000 Instructable

Home System 3000 -ը մի սարք է, որն օգտագործում է Arduino, ջերմաստիճանի տվիչ, պիեզո ազդանշան, օպտիկական դետեկտոր/ֆոտոտրանսիստոր և սերվո ՝ տան էներգաարդյունավետության բարձրացման ուղիները ցուցադրելու համար:

Քայլ 1: Temերմաստիճանի ցուցիչ

Երմաստիճանի ցուցիչ
Երմաստիճանի ցուցիչ

· Միացրեք հոսանքի և գրունտի լարերը

միկրոհսկիչը հացի տախտակի կողքին

· Տեղադրեք ջերմաստիճանի տվիչը հացի տախտակի մեջ և համապատասխանաբար անցկացրեք համապատասխան հոսանքի և գրունտի լարերը

· Ուշադրություն դարձրեք, որ ջերմաստիճանի տվիչն ունի երեք ճառագայթ, իսկ միջնամասում `« A0 »նավահանգստից անցնող մետաղալար:

· Temperatureերմաստիճանի տվիչի կոդ.

answer = questdlg («Խնդրում ենք գործարկել arduino և servo մեկնարկի ծածկագիրը», «պատասխան», «Լավ», «Լավ»)

հուշում = 'Սկսելու համար սեղմեք ցանկացած ստեղն'

դադար

prompt1 = 'Սահմանել նվազագույն ջերմաստիճանը'

x = մուտքագրում (հուշում 1)

prompt2 = 'Սահմանել առավելագույն ջերմաստիճան'

y = մուտքագրում (հուշում 2)

prompt3 = 'սկզբի համար սեղմեք ցանկացած ստեղն'

դադար

գործիչ

h = անիմացիոն գիծ;

կաց = gca;

ax. YGrid = 'միացված';

կաց. YLim = [65 85];

կանգառ = կեղծ;

startTime = datetime («այժմ»);

while ~ կանգ առնել

% Ընթերցել ընթացիկ լարման արժեքը

v = readVoltage (a, 'A0');

% Հաշվել ջերմաստիճանը լարման միջոցով (տվյալների թերթիկի հիման վրա)

TempC = (v - 0.5)*100;

TempF = 9/5*TempC + 32;

% Ստացեք ընթացիկ ժամանակը

t = datetime ('now') - startTime;

% Ավելացրեք անիմացիային

հավելյալ կետեր (h, datenum (t), TempF)

% Թարմացնել առանցքները

ax. XLim = տվյալների քանակ ([t-վայրկյան (15) t]);

datetick ('x', 'keeplimits')

ոչ -ոքի

% Ստուգեք կանգառի վիճակը

stop = readDigitalPin (a, 'D12');

Քայլ 2: Buzzer

Բզզոց
Բզզոց

· Ireխի լար, որը կօգտագործվի ծայրահեղ բարձր կամ ծայրահեղ ցածր ջերմաստիճանի ընթերցման ազդանշան տալու համար

· Ոչ մի մետաղալար չի անցնում դրական սյունակից դեպի ազդանշանի դրական կողմը

· Փոխարենը, ազդանշանի դրական կողմից մետաղալար է անցնում «11» պիտակով նավահանգիստ:

Սա հետագայում կօգտագործվի գրված կոդի մեջ ազդանշանի գտնվելու վայրը զանգահարելու համար:

· Buանգի կոդ.

եթե TempF> = y

disp («փակիր դուռը, տաք է»)

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

elseif TempF <= x

disp («փակիր դուռը, ցուրտ է»)

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

վերջ

վերջ

Քայլ 3. Օպտիկական դետեկտոր/ֆոտոտրանսիստոր

Օպտիկական դետեկտոր/ֆոտոտրանսիստոր
Օպտիկական դետեկտոր/ֆոտոտրանսիստոր

· Այս սենսորը պահանջում է դիմադրողներ ՝ ի տարբերություն մյուսների

· Համոզվեք, որ սենսորի բոլոր չորս ճյուղերն ընդգրկված են հանգույցում լարերը միացնելուց հետո

· Սենսորը հայտնաբերում է լույսի փոփոխություն ՝ ներկայացնելով շարժումը և գրանցում այն որպես մուտք

· Օպտիկական դետեկտորի/ֆոտոտրանսիստորի կոդ.

պարզ ա

a = arduino ('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Գրադարաններ', 'Servo');

հուշում = 'Սահմանել լուսավորության մակարդակի շեմ'

z = մուտքագրում (հուշում)

lightLevel = 0

մինչդեռ lightLevel = -1

lightLevel = կարդալՎոլտաժ (a, 'A1')

եթե lightLevel> = z

answer = questdlg («կցանկանա՞ք փոխել AC- ը», «Այո», «Ոչ»)

փոխել պատասխանը

գործ 'այո'

answer2 = questdlg («Փոխե՞լ AC- ը վեր կամ վար», «պատասխան», «Down», «Up», «Up»)

փոխել պատասխանը 2

գործ «ներքև»

s = servo (a, 'D10');

անկյունի համար = 0:.1:.5

writePosition (ներ, անկյուն);

current_position = readPosition (ներ);

ընթացիկ_դիրք = ընթացիկ_դիրք * 180;

servo շարժիչի տպման ընթացիկ դիրքը

fprintf ('Ընթացիկ դիրքը %d / n' է, ընթացիկ_դիրքը);

% փոքր ուշացում է պահանջվում, որպեսզի սերվոն կարողանա տեղակայվել այնտեղ

% ասված անկյունը դրան:

դադար (2);

վերջ

% շարժիչը վերադարձնել 0 անկյան դիրքի

writePosition (ներ, 0);

հստակ s

հուշում = 'Շարունակելու համար սեղմեք ցանկացած ստեղն'

questdlg («AC- ն մերժված է», «պատասխան», «Լավ», «Լավ»)

գործ «վեր»

s = servo (a, 'D10');

անկյունի համար =.5:.1: 1

writePosition (ներ, անկյուն);

current_position = readPosition (ներ);

ընթացիկ_դիրք = ընթացիկ_դիրք * 180;

servo շարժիչի տպման ընթացիկ դիրքը

fprintf ('Ընթացիկ դիրքը %d / n' է, ընթացիկ_դիրքը);

% փոքր ուշացում է պահանջվում, որպեսզի սերվոն կարողանա տեղակայվել այնտեղ

% ասված անկյունը դրան:

դադար (2);

վերջ

Քայլ 4: Սերվո

Սերվո
Սերվո

· Servo- ն ներկայացնում է

օդորակիչ և շարժման հայտնաբերման մուտքի ելք է

· Այն պահանջում է դրական մետաղալար, հողային մետաղալար և մետաղալար «D9» նավահանգստից դեպի սերվո

· Սերվոյի կոդը ՝

% շարժիչը վերադարձնել 0 անկյան դիրքի

writePosition (ներ, 0);

հստակ s

հուշում = 'Շարունակելու համար սեղմեք ցանկացած ստեղն'

questdlg («AC- ն հայտնվեց», «պատասխան», «Լավ», «Լավ»)

վերջ

վերջ

դադար

ընդմիջում

վերջ

վերջ

*Հատուկ նշում. Սերվոյի որոշ ծածկագիր ինտեգրված է օպտիկական դետեկտորի/ֆոտոտրանսիստորի կոդի հետ:

Խորհուրդ ենք տալիս: