Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Ang Home System 3000 ay isang aparato na gumagamit ng isang Arduino, isang sensor ng temperatura, isang piezo buzzer, isang optical detector / phototransistor, at isang servo upang maipakita ang mga paraan upang mapabuti ang kahusayan ng enerhiya sa bahay.
Hakbang 1: Sensor ng Temperatura
· Patakbuhin ang iyong lakas at mga ground wire mula sa
ang micro controller sa gilid ng board ng tinapay
· Ilagay ang sensor ng temperatura sa board ng tinapay, at patakbuhin ang kaukulang kapangyarihan at mga wire sa lupa nang naaayon
· Pansinin na ang sensor ng temperatura ay may tatlong prong, at ang gitnang prong ay may isang wire na tumatakbo mula sa port na "A0".
· Code para sa sensor ng temperatura:
answer = questdlg ('Mangyaring patakbuhin ang arduino at servo start code', 'tugon', 'Ok', 'Ok')
prompt = 'Pindutin ang anumang key upang magsimula'
huminto
prompt1 = 'Itakda ang minimum na temperatura'
x = input (prompt1)
prompt2 = 'Itakda ang maximum na temperatura'
y = input (prompt2)
prompt3 = 'pindutin ang anumang key upang magsimula'
huminto
pigura
h = animatedline;
palakol = gca;
ax. YGrid = 'on';
palakol. YLim = [65 85];
huminto = maling;
startTime = datime ('ngayon');
habang ~ huminto
% Basahin ang kasalukuyang halaga ng boltahe
v = readVoltage (a, 'A0');
% Kalkulahin ang temperatura mula sa boltahe (batay sa sheet ng data)
TempC = (v - 0.5) * 100;
TempF = 9/5 * TempC + 32;
% Kumuha ng kasalukuyang oras
t = datime ('ngayon') - startTime;
% Magdagdag ng mga puntos sa animasyon
mga addpoint (h, datenum (t), TempF)
% Update axes
ax. XLim = datenum ([t-segundo (15) t]);
datetick ('x', 'keeplimits')
drawnow
% Suriin ang kundisyon ng paghinto
itigil = readDigitalPin (a, 'D12');
Hakbang 2: Buzzer
· Wire sa buzzer na gagamitin upang magsenyas ng matinding mataas o matinding pagbasa ng mababang temperatura
· Walang wire na pinatakbo mula sa positibong haligi hanggang sa positibong bahagi ng buzzer
· Sa halip ay patakbuhin ang isang kawad mula sa positibong bahagi ng buzzer patungo sa isang port na may label na "11"
Gagamitin ito sa paglaon upang tawagan ang lokasyon ng buzzer sa nakasulat na code.
· Code para sa buzzer:
kung TempF> = y
disp ('isara ang pinto' ay mainit ')
playTone (a, 'D11', 500, 1)
kung hindi man TempF <= x
disp ('isara ang pinto malamig')
playTone (a, 'D11', 250, 1)
magtapos
magtapos
Hakbang 3: Optical Detector / Phototransistor
· Ang sensor na ito ay nangangailangan ng resisters hindi katulad ng iba
· Siguraduhin na ang lahat ng apat na prongs ng sensor ay kasama sa loop pagkatapos ng pag-plug sa mga wire
· Nakita ng sensor ang isang pagbabago sa ilaw, kumakatawan sa paggalaw, at itinatala ito bilang isang input
· Code para sa Optical Detector / Phototransistor:
linawin a
a = arduino ('/ dev / tty.usbserial-DN01DVI2', 'Uno', 'Library', 'Servo');
prompt = 'Itakda ang light level threshold'
z = input (prompt)
lightLevel = 0
habang lightLevel ~ = -1
lightLevel = readVoltage (a, 'A1')
kung lightLevel> = z
Sagot = questdlg ('nais bang baguhin ang AC?', 'Oo', 'Hindi')
lumipat ng sagot
kaso 'Oo'
answer2 = questdlg ('I-AC pataas o pababa?', 'tugon', 'Pababa', 'Pataas', 'Pataas')
lumipat ng sagot2
kaso 'Down'
s = servo (a, 'D10');
para sa anggulo = 0:.1:.5
isulat angPosisyon (s, anggulo);
current_position = readPosition (s);
current_position = kasalukuyang_posisyon * 180;
% print kasalukuyang posisyon ng servo motor
fprintf ('Kasalukuyang posisyon ay% d / n', kasalukuyang_posisyon);
% maliit na pagkaantala ang kinakailangan upang ang servo ay maaaring nakaposisyon sa
% anggulo na sinabi dito.
i-pause (2);
magtapos
% ibalik ang motor sa posisyon ng 0 na anggulo
isulat angPosisyon (s, 0);
malinaw s
prompt = 'Pindutin ang anumang key upang magpatuloy'
questdlg ('AC nakabagsak', 'tugon', 'Ok', 'Ok')
kaso 'Up'
s = servo (a, 'D10');
para sa anggulo =.5:.1: 1
isulat angPosisyon (s, anggulo);
current_position = readPosition (s);
current_position = kasalukuyang_posisyon * 180;
% print kasalukuyang posisyon ng servo motor
fprintf ('Kasalukuyang posisyon ay% d / n', kasalukuyang_posisyon);
% maliit na pagkaantala ang kinakailangan upang ang servo ay maaaring nakaposisyon sa
% anggulo na sinabi dito.
i-pause (2);
magtapos
Hakbang 4: Servo
· Ang servo ay kumakatawan
isang air conditioner, at isang output ng input ng detection ng paggalaw
· Nangangailangan ito ng positibong wire, ground wire, at isang wire mula sa port "D9" patungo sa servo
· Code para sa servo:
% ibalik ang motor sa posisyon ng 0 na anggulo
isulat angPosisyon (s, 0);
malinaw s
prompt = 'Pindutin ang anumang key upang magpatuloy'
questdlg ('AC nakabukas', 'tugon', 'Ok', 'Ok')
magtapos
magtapos
huminto
pahinga
magtapos
magtapos
* Espesyal na tala: ang ilan sa mga code para sa servo ay isinama sa code para sa optical detector / phototransistor.