Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
Home System 3000 je uređaj koji koristi Arduino, temperaturni senzor, piezo zujalicu, optički detektor/fototranzistor i servo za prikaz načina za poboljšanje energetske učinkovitosti kuće.
Korak 1: Senzor temperature
· Provedite žice za napajanje i uzemljenje od
mikro upravljač sa strane ploče za kruh
· Stavite osjetnik temperature na ploču za kruh i provucite odgovarajuće žice napajanja i uzemljenja u skladu s tim
· Uočite da temperaturni osjetnik ima tri zupca, a srednji zub ima žicu koja vodi od priključka "A0".
· Kod senzora temperature:
answer = questdlg ('Molimo pokrenite arduino i servo početni kôd', 'odgovor', 'U redu', 'U redu')
prompt = 'Pritisnite bilo koju tipku za početak'
pauza
prompt1 = 'Postavi minimalnu temperaturu'
x = ulaz (prompt1)
prompt2 = 'Postavi maksimalnu temperaturu'
y = ulaz (prompt2)
prompt3 = 'pritisnite bilo koju tipku za početak'
pauza
lik
h = animirana linija;
sjekira = gca;
ax. YGrid = 'uključeno';
sjekira. YLim = [65 85];
stop = lažno;
startTime = datetime ('sad');
while ~ stop
% Očitavanje trenutne vrijednosti napona
v = readVoltage (a, 'A0');
% Izračunajte temperaturu iz napona (na temelju podatkovnog lista)
TempC = (v - 0,5)*100;
TempF = 9/5*TempC + 32;
% Dobijte trenutno vrijeme
t = datetime ('now') - startTime;
% Dodajte bodove animaciji
dodane točke (h, datumnum (t), TempF)
% Ažuriranje osi
ax. XLim = datumnum ([t-sekunde (15) t]);
datetick ('x', 'keeplimits')
izvlačenje
% Provjerite stanje zaustavljanja
stop = readDigitalPin (a, 'D12');
Korak 2: Zvučni signal
· Žica u zujalici koja će se koristiti za signaliziranje ekstremno visokih ili ekstremno niskih temperatura
· Ne vodi se žica od pozitivnog stupca do pozitivne strane zujalice
· Umjesto toga, žica se vodi s pozitivne strane zujalice do priključka s oznakom "11"
To će se kasnije koristiti za pozivanje mjesta zujalice u pisanom kodu.
· Kôd za zujalicu:
ako je TempF> = y
disp ('zatvori vrata vruće je')
playTone (a, 'D11', 500, 1)
inače TempF <= x
disp ('zatvori vrata hladno je')
playTone (a, 'D11', 250, 1)
kraj
kraj
Korak 3: Optički detektor/fototranzistor
· Ovaj senzor zahtijeva otpornike za razliku od ostalih
· Provjerite jesu li sva četiri zupca senzora uključena u petlju nakon uključivanja žica
· Senzor detektira promjenu svjetlosti koja predstavlja kretanje i bilježi je kao ulaz
· Kôd za optički detektor/fototranzistor:
očistiti a
a = arduino ('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Knjižnice', 'Servo');
prompt = 'Postavi prag razine svjetlosti'
z = ulaz (upit)
svjetlosna razina = 0
dok je LightLevel ~ = -1
lightLevel = readVoltage (a, 'A1')
ako je LightLevel> = z
answer = questdlg ('želite promijeniti AC?', 'Da', 'Ne')
prebaci odgovor
slučaj 'Da'
answer2 = questdlg ('Uključivanje AC -a gore ili dolje?', 'odgovor', 'Dolje', 'Gore', 'Gore')
prebaci odgovor2
slučaj 'Dolje'
s = servo (a, 'D10');
za kut = 0:.1:.5
writePosition (s, angle);
trenutna_polozba = readPosition (s);
trenutni položaj = trenutni položaj * 180;
% ispis trenutnog položaja servo motora
fprintf ('Trenutna pozicija je %d / n', trenutna_pozicija);
% potrebno je malo kašnjenje tako da se servo može postaviti na
% kuta koji mu je rečeno.
stanka (2);
kraj
% motor vratiti u položaj 0 kuta
writePosition (s, 0);
jasno s
prompt = 'Pritisnite bilo koju tipku za nastavak'
questdlg ('AC isključen', 'odgovor', 'U redu', 'U redu')
slučaj "Gore"
s = servo (a, 'D10');
za kut =.5:.1: 1
writePosition (s, angle);
trenutni_položaj = readPosition (s);
trenutni položaj = trenutni položaj * 180;
% ispis trenutnog položaja servo motora
fprintf ('Trenutna pozicija je %d / n', trenutna_pozicija);
% potrebno je malo kašnjenje tako da se servo može postaviti na
% ugla koji mu je izrečen.
stanka (2);
kraj
Korak 4: Servo
· Servo predstavlja
klima uređaj i izlaz je iz ulaza za detekciju pokreta
· Potrebna je pozitivna žica, žica za uzemljenje i žica od priključka "D9" do serva
· Kôd za servo:
% motor vratiti u položaj 0 kuta
writePosition (s, 0);
jasno s
prompt = 'Pritisnite bilo koju tipku za nastavak'
questdlg ('AC gore', 'response', 'Ok', 'Ok')
kraj
kraj
pauza
pauza
kraj
kraj
*Posebna napomena: neki od kodova za servo integrirani su sa kodom za optički detektor/fototranzistor.