İçindekiler:
Video: EF 230: Home System 3000 Eğitilebilir: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Home System 3000, evdeki enerji verimliliğini artırmanın yollarını göstermek için bir Arduino, bir sıcaklık sensörü, bir piezo buzzer, bir optik dedektör/fototransistör ve bir servo kullanan bir cihazdır.
Adım 1: Sıcaklık Sensörü
· Güç ve topraklama kablolarınızı
ekmek tahtasının yanındaki mikro denetleyici
· Sıcaklık sensörünü ekmek tahtasına yerleştirin ve ilgili güç ve topraklama kablolarını buna göre çalıştırın
· Sıcaklık sensörünün üç tırnağı olduğuna ve orta tırnağın "A0" bağlantı noktasından geçen bir kabloya sahip olduğuna dikkat edin.
· Sıcaklık sensörü kodu:
answer = questdlg('Lütfen arduino ve servo başlatma kodunu çalıştırın', 'yanıt', 'Tamam', 'Tamam')
komut istemi = 'Başlamak için herhangi bir tuşa basın'
Duraklat
istem1 = 'Minimum sıcaklığı ayarla'
x = girdi(istem1)
istem2 = 'Maksimum sıcaklığı ayarla'
y = girdi(istem2)
istem3 = 'başlamak için herhangi bir tuşa basın'
Duraklat
figür
h = animasyonlu çizgi;
balta = gca;
ax. YGrid = 'açık';
ax. YLim = [65 85];
dur = yanlış;
startTime = tarihsaat('şimdi');
~dururken
% Akım voltaj değerini oku
v = readVoltage(a, 'A0');
% Voltajdan sıcaklığı hesaplayın (veri sayfasına göre)
TempC = (v - 0.5)*100;
TempF = 9/5*TempC + 32;
% Geçerli saati al
t = tarihsaat('şimdi') - başlangıçsaati;
% Animasyona puan ekle
ekleme noktaları(h, datenum(t), TempF)
% Eksenleri güncelle
ax. XLim = tarih([t-saniye(15) t]);
datatick('x', 'tutun')
çizilmiş
% Durdurma durumunu kontrol edin
dur = readDigitalPin(a, 'D12');
2. Adım: Zil
· Aşırı yüksek veya aşırı düşük sıcaklık okumasını belirtmek için kullanılacak sesli uyarıcıyı bağlayın
· Buzzer'ın pozitif kolonundan pozitif tarafına kablo geçmez
· Bunun yerine, sesli uyarının pozitif tarafından "11" etiketli bir bağlantı noktasına bir kablo geçirilir.
Bu, daha sonra yazılı koddaki buzzer'ın yerini aramak için kullanılacaktır.
· Zil için kod:
TempF >= y ise
disp('kapıyı kapat hava sıcak')
playTone(a, 'D11', 500, 1)
yoksa TempF <= x
disp('kapıyı kapat' soğuk')
playTone(a, 'D11', 250, 1)
son
son
Adım 3: Optik Dedektör/Fototransistör
· Bu sensör diğerlerinden farklı olarak direnç gerektirir
· Kabloları taktıktan sonra sensörün dört ucunun da döngüye dahil edildiğinden emin olun.
· Sensör, hareketi temsil eden ışıktaki bir değişikliği algılar ve bunu giriş olarak kaydeder.
· Optik Dedektör/Fototransistör Kodu:
temizle
a = arduino('/dev/tty.usbserial-DN01DVI2', 'Uno', 'Kütüphaneler', 'Servo');
komut istemi = 'Işık seviyesi eşiğini ayarla'
z = giriş(istem)
ışıkSeviyesi = 0
while lightLevel ~= -1
lightLevel = readVoltage (a, 'A1')
lightLevel >= z ise
cevap = questdlg('AC'yi değiştirmek ister misiniz?', 'Evet', 'Hayır')
cevabı değiştir
durum 'evet'
answer2 = questdlg('AC'yi aç veya kapat?', 'yanıt', 'Aşağı', 'Yukarı', 'Yukarı')
cevap2'yi değiştir
durum 'Aşağı'
s = servo(a, 'D10');
açı için = 0:.1:.5
writePosition(lar, açı);
current_position = readPosition(lar);
current_position = current_position * 180;
% servo motorun geçerli konumunu yazdır
fprintf('Mevcut pozisyon %d\n', current_position);
Servonun pozisyona yerleştirilebilmesi için % küçük gecikme gereklidir.
% açı ona söyledi.
duraklat(2);
son
% motoru 0 açı konumuna geri getir
writePosition(s, 0);
temizle
komut istemi = 'Devam etmek için herhangi bir tuşa basın'
questdlg('AC kapatıldı', 'yanıt', 'Tamam', 'Tamam')
durum 'Yukarı'
s = servo(a, 'D10');
açı için =.5:1:1
writePosition(lar, açı);
current_position = readPosition(lar);
current_position = current_position * 180;
% servo motorun geçerli konumunu yazdır
fprintf('Mevcut pozisyon %d\n', current_position);
Servonun pozisyona yerleştirilebilmesi için % küçük gecikme gereklidir.
% açı ona söyledi.
duraklat(2);
son
Adım 4: Servo
· Servo temsil eder
bir klimadır ve hareket algılama girişinin bir çıkışıdır
· Pozitif bir kablo, topraklama kablosu ve "D9" bağlantı noktasından servoya giden bir kablo gerektirir
· Servo için kod:
% motoru 0 açı konumuna geri getir
writePosition(s, 0);
temizle
komut istemi = 'Devam etmek için herhangi bir tuşa basın'
questdlg('AC açıldı', 'yanıt', 'Tamam', 'Tamam')
son
son
Duraklat
kırmak
son
son
*Özel not: servo kodunun bir kısmı optik dedektör/fototransistör koduyla entegre edilmiştir.
Önerilen:
Cube Sat Eğitilebilir: 7 Adım
Küp Satılabilir Eğitilebilir: Caden Howard tarafından
Tinkercad Tasarımlarını Eğitilebilir Dosyalara Göm: 4 Adım (Resimlerle)
Tinkercad Tasarımlarını Eğitilebilir Dosyalara Göm: Etkileşimli bir Tinkercad tasarımını herhangi bir Eğitilebilir Dosyaya gömebileceğinizi biliyor muydunuz? İşte nasıl! Bu beceri, Tinkercad tasarımlarıyla ilgili nasıl yapılırları paylaşırken kullanışlı olacaktır ve Tinkerc ile şu anda açık olan Uzaktan Eğitim için mükemmeldir
TAD 130 Eğitilebilir: 20 Adım
TAD 130 Eğitilebilir: Genel Bakış
Uzay Marul Odası Eğitilebilir - Havayolu Lisesi Robotiği: 8 Adım
Uzay Marul Odası Eğitilebilirliği - Havayolu Lisesi Robotiği: Bu, bir robotik sınıfına kayıtlı üç lise öğrencisi tarafından yapılan bir Eğitilebilirliktir. NASA'nın Growing Beyond Earth Yarışması için uzayda marul yetiştirmek için bir oda oluşturacağız. Size kapsayıcıyı nasıl oluşturacağınızı göstereceğiz. Hadi bakalım
Bir Eğitilebilir Yazı Nasıl Gönderilir: 7 Adım
Bir Eğitilebilir Dosya Nasıl Gönderilir: Yani sadece okumaktan talimat oluşturmaya kadar adım atmaya karar verdiniz mi? Ama… hiçbir şeyin nasıl yapılacağı hakkında hiçbir fikriniz yok mu? Çok kolay, bu yüzden adım adım bir talimat tablosunun nasıl oluşturulacağını öğreteceğim