Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Kodusüsteem 3000 on seade, mis kasutab kodu energiatõhususe parandamiseks võimalusi Arduino, temperatuuriandurit, piesosummerit, optilist detektorit/fototransistorit ja servot.
Samm: temperatuuriandur
· Juhtige toite- ja maandusjuhtmeid
mikrokontroller leivalaua küljele
· Asetage temperatuuriandur leivalauale ja juhtige vastavalt toite- ja maandusjuhtmeid
· Pange tähele, et temperatuurianduril on kolm haru ja keskmisel harul on traat, mis jookseb pordist "A0".
· Temperatuurianduri kood:
answer = questdlg ('Palun käivitage arduino ja servo käivituskood', 'response', 'Ok', 'Ok')
prompt = 'Alustamiseks vajutage suvalist klahvi'
paus
prompt1 = 'Määra minimaalne temperatuur'
x = sisend (viip1)
prompt2 = 'Määra maksimaalne temperatuur'
y = sisend (viip2)
prompt3 = 'alustamiseks vajutage suvalist klahvi'
paus
joonis
h = animatedline;
kirves = gca;
ax. YGrid = 'sees';
kirves. YLim = [65 85];
peatus = vale;
startTime = datetime ('praegu');
samas ~ seisma
% Loe praegust pinge väärtust
v = lugemispinge (a, 'A0');
% Arvutage temperatuur pinge põhjal (andmelehe põhjal)
TempC = (v - 0,5)*100;
TempF = 9/5*TempC + 32;
% Hangi praegune aeg
t = datetime ('praegu') - startTime;
% Lisa animatsioonile punkte
lisandeid (h, kuupäev (t), TempF)
% Telgede värskendamine
ax. XLim = kuupäev ([t-sekundit (15) t]);
andmestik ('x', 'keeplimits')
tõmmatud
% Kontrollige seisukorra olekut
stop = readDigitalPin (a, 'D12');
2. samm: helisignaal
· Juhe sumerisse, mida kasutatakse äärmiselt kõrge või väga madala temperatuuri näitamiseks
· Positiivsest tulbast ei edastata traati sumisti positiivsele küljele
· Selle asemel suunatakse traat helisignaali positiivsest küljest sadamasse, millel on silt "11"
Seda kasutatakse hiljem helina asukoha määramiseks kirjutatud koodis.
· Signaali kood:
kui TempF> = y
disp ('sulge uks, see on kuum')
playTone (a, 'D11', 500, 1)
elseif TempF <= x
disp ("sulgege uks, see on külm")
playTone (a, 'D11', 250, 1)
lõpp
lõpp
3. samm: optiline detektor/fototransistor
· See andur nõuab takistit, erinevalt teistest
· Veenduge, et pärast juhtmete ühendamist on kõik neli anduri haru silmusesse lisatud
· Andur tuvastab liikumist kujutava valguse muutuse ja salvestab selle sisendina
· Optilise detektori/fototransistori kood:
selge a
a = arduino ('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Libraries', 'Servo');
prompt = 'Valgustustaseme läve seadmine'
z = sisend (viip)
valgusaste = 0
samas lightLevel ~ = -1
lightLevel = readVoltage (a, 'A1')
kui lightLevel> = z
vastus = questdlg ('tahaks vahelduvvoolu muuta?', 'jah', 'ei')
lülita vastus
juhtum "jah"
answer2 = questdlg ('Kas lülitada vahelduvvoolu üles või alla?', 'vastus', 'alla', 'üles', 'üles')
lülita vastus2
juhtum 'alla'
s = servo (a, 'D10');
nurga korral = 0:.1:.5
writePosition (s, nurk);
praegune_positsioon = readPosition (s);
praegune_positsioon = praegune_positsioon * 180;
Servomootori praeguse asukoha printimine %
fprintf ('Praegune asukoht on %d / n', praegune_asend);
% väike viivitus on vajalik, et servo saaks paigutada
% nurk, mis talle on öeldud.
paus (2);
lõpp
% viia mootor tagasi 0 nurga asendisse
writePosition (s, 0);
selge s
prompt = 'Jätkamiseks vajutage suvalist klahvi'
questdlg ('AC keelatud', 'vastus', 'Ok', 'OK')
juhtum 'Üles'
s = servo (a, 'D10');
nurga korral =.5:.1: 1
writePosition (s, nurk);
praegune_positsioon = readPosition (s);
praegune_positsioon = praegune_positsioon * 180;
Servomootori praeguse asukoha printimine %
fprintf ('Praegune asukoht on %d / n', praegune_asend);
% väike viivitus on vajalik, et servo saaks paigutada
% nurk, mis talle on öeldud.
paus (2);
lõpp
Samm: servo
· Servo esindab
kliimaseade ja on liikumistuvastuse sisendi väljund
· See nõuab positiivset traati, maandusjuhet ja traati pordist "D9" kuni servo
· Servo kood:
% viia mootor tagasi 0 nurga asendisse
writePosition (s, 0);
selge s
prompt = 'Jätkamiseks vajutage suvalist klahvi'
questdlg ('AC sisse lülitatud', 'vastus', 'ok', 'okei')
lõpp
lõpp
paus
murda
lõpp
lõpp
*Erimärkus: osa servo koodist on integreeritud optilise detektori/fototransistori koodiga.