Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Home System 3000 adalah perangkat yang menggunakan Arduino, sensor suhu, buzzer piezo, detektor optik/fototransistor, dan servo untuk menampilkan cara meningkatkan efisiensi energi rumah.
Langkah 1: Sensor Suhu
· Jalankan kabel daya dan arde Anda dari
pengontrol mikro ke sisi papan roti
· Tempatkan sensor suhu ke dalam papan roti, dan jalankan kabel daya dan arde yang sesuai
· Perhatikan bahwa sensor suhu memiliki tiga cabang, dan cabang tengah memiliki kabel yang mengalir dari port "A0".
· Kode untuk sensor suhu:
answer = questdlg('Please run arduino and servo start code', 'response', 'Ok', 'Ok')
prompt = 'Tekan sembarang tombol untuk memulai'
berhenti sebentar
prompt1 = 'Setel suhu minimum'
x = masukan(prompt1)
prompt2 = 'Setel suhu maksimum'
y = masukan(prompt2)
prompt3 = 'tekan sembarang tombol untuk memulai'
berhenti sebentar
angka
h = garis animasi;
kapak = gca;
ax. YGrid = 'aktif';
kapak. YLim = [65 85];
berhenti = salah;
startTime = datetime('sekarang');
sementara ~berhenti
% Baca nilai tegangan saat ini
v = readVoltage(a, 'A0');
% Hitung suhu dari tegangan (berdasarkan lembar data)
TempC = (v - 0,5)*100;
TempF = 9/5*TempC + 32;
% Dapatkan waktu saat ini
t = datetime('sekarang') - startTime;
% Tambahkan poin ke animasi
titik tambahan(h, datenum(t), TempF)
% Perbarui sumbu
ax. XLim = datenum([t-detik(15) t]);
datetick('x', 'keeplimits')
ditarik
% Periksa kondisi berhenti
berhenti = readDigitalPin(a, 'D12');
Langkah 2: Buzzer
· Kawat di bel yang akan digunakan untuk menandakan pembacaan suhu yang sangat tinggi atau sangat rendah
· Tidak ada kabel yang mengalir dari kolom positif ke sisi positif bel
· Sebagai gantinya kabel dijalankan dari sisi positif buzzer ke port berlabel "11"
Ini akan digunakan nanti untuk memanggil lokasi buzzer dalam kode tertulis.
· Kode untuk bel:
jika TempF >= y
disp('tutup pintunya panas')
playTone(a, 'D11', 500, 1)
elseif TempF <= x
disp('tutup pintu karena dingin')
playTone(a, 'D11', 250, 1)
akhir
akhir
Langkah 3: Detektor Optik / Fototransistor
· Sensor ini membutuhkan resistor tidak seperti yang lain
· Pastikan keempat cabang sensor disertakan dalam loop setelah mencolokkan kabel
· Sensor mendeteksi perubahan cahaya, mewakili gerakan, dan merekamnya sebagai input
· Kode untuk Detektor Optik/Fototransistor:
jelas
a = arduino('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Libraries', 'Servo');
prompt = 'Setel ambang batas tingkat cahaya'
z = masukan(cepat)
tingkat cahaya = 0
sementara lightLevel ~= -1
lightLevel = readVoltage (a, 'A1')
jika lightLevel >= z
answer = questdlg('mau ganti AC?', 'Ya', 'Tidak')
ganti jawaban
kasus 'Ya'
answer2 = questdlg('Naik atau Turunkan AC?', 'respons', 'Turun', 'Naik', 'Naik')
ganti jawaban2
kasus 'Turun'
s = servo(a, 'D10');
untuk sudut = 0:.1:.5
writePosition(s, sudut);
posisi_saat ini = readPosition(s);
posisi_saat ini = posisi_saat ini * 180;
% cetak posisi motor servo saat ini
fprintf('Posisi saat ini adalah %d\n', posisi_saat ini);
% penundaan kecil diperlukan agar servo dapat diposisikan pada
% sudut diberitahu untuk itu.
jeda (2);
akhir
% mengembalikan motor ke posisi sudut 0
writePosition(s, 0);
jelas s
prompt = 'Tekan sembarang tombol untuk melanjutkan'
questdlg('AC ditolak', 'respons', 'Oke', 'Oke')
kasus 'Naik'
s = servo(a, 'D10');
untuk sudut =.5:.1:1
writePosition(s, sudut);
posisi_saat ini = readPosition(s);
posisi_saat ini = posisi_saat ini * 180;
% cetak posisi motor servo saat ini
fprintf('Posisi saat ini adalah %d\n', posisi_saat ini);
% penundaan kecil diperlukan agar servo dapat diposisikan pada
% sudut diberitahu untuk itu.
jeda (2);
akhir
Langkah 4: Servo
· Servo mewakili
AC, dan merupakan output dari input deteksi gerakan
· Membutuhkan kabel positif, kabel ground, dan kabel dari port "D9" ke servo
· Kode untuk servo:
% mengembalikan motor ke posisi sudut 0
writePosition(s, 0);
jelas s
prompt = 'Tekan sembarang tombol untuk melanjutkan'
questdlg('AC muncul', 'respons', 'Oke', 'Oke')
akhir
akhir
berhenti sebentar
merusak
akhir
akhir
*Catatan khusus: beberapa kode untuk servo terintegrasi dengan kode untuk detektor optik/fototransistor.