Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 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 efikasnosti doma.
Korak 1: Senzor temperature
· Provedite žice za napajanje i uzemljenje
mikro kontroler sa strane ploče za hljeb
· Stavite osjetnik temperature na ploču za kruh i provucite odgovarajuće žice za napajanje i uzemljenje u skladu s tim
· Uočite da senzor temperature 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 kod', 'odgovor', 'U redu', 'U redu')
prompt = 'Pritisnite bilo koji taster za početak'
pauza
prompt1 = 'Postavi minimalnu temperaturu'
x = ulaz (prompt1)
prompt2 = 'Postavi maksimalnu temperaturu'
y = ulaz (prompt2)
prompt3 = 'pritisnite bilo koji taster za početak'
pauza
figura
h = animirana linija;
ax = gca;
ax. YGrid = 'uključeno';
ax. YLim = [65 85];
stop = netačno;
startTime = datetime ('now');
while ~ stop
% Očitavanje trenutne vrijednosti napona
v = readVoltage (a, 'A0');
% Izračunajte temperaturu iz napona (na osnovu lista sa podacima)
TempC = (v - 0,5)*100;
TempF = 9/5*TempC + 32;
% Preuzmite trenutno vrijeme
t = datetime ('now') - startTime;
% Dodajte bodove animaciji
dodatne tačke (h, datumnum (t), TempF)
% Ažuriranje osi
ax. XLim = datumbroj ([t-sekundi (15) t]);
datetick ('x', 'keeplimits')
drawnow
% 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 pozitivne kolone do pozitivne strane zujalice
· Umjesto toga, žica se vodi s pozitivne strane zujalice do priključka s oznakom "11"
Ovo će se kasnije koristiti za pozivanje lokacije zujalice u pisanom kodu.
· Kôd za zujalicu:
ako je TempF> = y
disp ('zatvori vrata vruće je')
playTone (a, 'D11', 500, 1)
elseif 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 drugih
· Provjerite jesu li sva četiri zupca senzora uključena u petlju nakon uključivanja žica
· Senzor detektuje promjenu svjetlosti, koja predstavlja kretanje, i snima je kao ulaz
· Kod za optički detektor/fototranzistor:
jasno a
a = arduino ('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Biblioteke', 'Servo');
prompt = 'Postavi prag nivoa svjetlosti'
z = ulaz (upit)
lightLevel = 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
kućište "dolje"
s = servo (a, 'D10');
za ugao = 0:.1:.5
writePosition (s, angle);
current_position = readPosition (s);
trenutna pozicija = trenutna pozicija * 180;
% ispis trenutne pozicije servo motora
fprintf ('Trenutna pozicija je %d / n', trenutna_pozicija);
% potrebno je malo kašnjenje tako da se servo može postaviti na
% ugla na to.
pauza (2);
kraj
% vratiti motor u položaj 0 ugla
writePosition (s, 0);
clear s
prompt = 'Pritisnite bilo koji taster za nastavak'
questdlg ('AC isključen', 'odgovor', 'U redu', 'U redu')
slučaj 'Gore'
s = servo (a, 'D10');
za ugao =.5:.1: 1
writePosition (s, angle);
current_position = readPosition (s);
trenutna pozicija = trenutna pozicija * 180;
% ispis trenutne pozicije servo motora
fprintf ('Trenutna pozicija je %d / n', trenutna_pozicija);
% potrebno je malo kašnjenje tako da se servo može postaviti na
% ugla na to.
pauza (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:
% vratiti motor u položaj 0 ugla
writePosition (s, 0);
clear s
prompt = 'Pritisnite bilo koji taster za nastavak'
questdlg ('AC gore', 'response', 'Ok', 'Ok')
kraj
kraj
pauza
break
kraj
kraj
*Posebna napomena: neki od kodova za servo integrirani su sa kodom za optički detektor/fototranzistor.