İçindekiler:
- Adım 1: Ekipman
- Adım 2: Mikrodenetleyici Kurulumu
- Adım 3: MATLAB Kurulumu
- Adım 4: Fonksiyonlar
- Adım 5: Test Etme
- 6. Adım: Sonuç
Video: Arduino Klima Modeli: 6 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Ekibimizin pazarlama amaçları için bir akıllı tren cihazı modeli oluşturma becerisinin bir gösteriminin parçası olarak amaç, bir sıcaklık sensörünün devreden veri okuduğu ve bilgiyi bir sıcaklık değerine dönüştürdüğü bir sistem oluşturmaktı. ışıklı bir ekranda görüntülenir ve bir fanın açılıp kapanmadığına odaklanılır. Amaç, yakın çevredeki sıcaklığı da gösteren otomatik bir sistem kullanarak yolcuların sürüş koşullarına uyum sağlamaya yardımcı olmaktır.
Bir Arduino mikrodenetleyici kiti ve 2016b ve 2017b MATLAB sürümlerini kullanarak, bu sonuçları göreceli başarı ile gösterebildik.
Adım 1: Ekipman
Aşağıdakilere sahip Mikrodenetleyici Kiti:
-Sparkfun Kırmızı Tahta
-Sparkfun Ekmek Tahtası
-LCD Kartı
-Potansiyometre
-Sıcaklık sensörü
-Servo
-USB/Arduino adaptörü
-Jumper Telleri (25, minimum)
USB girişli dizüstü bilgisayar (Windows 10)
3B Basılı Nesne (isteğe bağlı)
Adım 2: Mikrodenetleyici Kurulumu
Şunu düşünün: tüm sistem, her biri nihai sonuca yönelik önemli bir faktör uygulayan tek birimlerden oluşur. Bu nedenle, kabloları karışık bir şekilde bağlamadan önce devrenin bir görüntüsünü kurmanız şiddetle tavsiye edilir.
Her bir modelin görüntüleri, Mikrodenetleyici araç kitinin kılavuzunda veya https://learn.sparkfun.com/tutorials/tags/arduino?page=all adresindeki web sitesinde bulunabilir.
Sıcaklık sensörünü, potansiyometreyi, servo konektörleri ve LCD'yi panoya takarak başlayın. LCD'nin boyutu ve kablo sayısı gerekliliği nedeniyle, devre tahtasının kendi yarısına, diğer parçalar ise diğer yarısına yerleştirilmesi ve potansiyometrenin birisinin görebileceği bir alanda olması önerilir. düğmesini kolayca çevirin.
Referans için:
LCD: c1-16
Servo: i1-3 (GND + -)
Sıcaklık Sensörü: i13-15 (- GND +)
Potansiyometre: g24-26 (- GND +)
Ardından, mikrodenetleyici birimlerinin her bir pimine atlama telleri bağlamaya başlayın; genel şemada keyfi olsa da, tasarım şu önemli bağlantılarla oluşturuldu:
Potansiyometreyi LCD'ye Bağlama: f25 -- e3
Servo GND kablosu: j1 -- Dijital Giriş 9
Sıcaklık Sensörü GND: j14 -- Analog Giriş 0
LCD girişleri: e11-e15 -- Dijital Giriş 2-5
e4 -- Dijital Giriş 7
e6 -- Dijital Giriş 6
(Not: Başarılı olursa, LCD'nin kenarındaki her iki ışık da yanıp sönmelidir ve adaptörden güç verildiğinde potansiyometre parlaklığını ayarlamaya yardımcı olabilir.)
İsteğe bağlı: Bir gereksinimin parçası olarak 3B yazdırılmış bir nesne kullanıldı. Daha kırılgan parçalara gelebilecek olası hasarı önlemek için, LCD'nin etrafına kılıf olarak uzatılmış bir kasa yerleştirildi. LCD ekranının ölçümlerinin yaklaşık 2-13/16" x 1-1/16" x 1/4" olduğu kanıtlandı ve bu nedenle yalnızca yükseklik önemli ölçüde değişti. Bir 3D yazıcı hazırsa, kişisel bir nesne eklemeyi düşünün, gereksiz olsa da, ölçümlerin farklılık gösterebileceğini de unutmayın.
Adım 3: MATLAB Kurulumu
MathWorks web sitesinde https://www.mathworks.com/products/matlab.html?s_tid=srchtitle bulunan MATLAB'ın (2016a ve sonrası) daha güncel bir sürümünü yükleyin. Açıldıktan sonra, Ana Sayfa sekmesindeki Eklentiler'e gidin ve mikrodenetleyici komutlarının erişilebilir olması için "Arduino Donanımı için MATLAB Destek Paketi"ni indirin.
Tamamlandığında, mikrodenetleyicinin kişinin bilgisayarına/dizüstü bilgisayarına bağlantısını bulmak için bir test yapılabilir. Bunları alet takımındaki USB adaptörüyle bağladıktan sonra "fopen(serial('nada'))" komutunu girin.
Her zaman aynı giriş olduğu sürece bir arduino nesnesi oluşturmak için gerekli olacak bağlayıcıyı "COM#" olarak belirten bir hata mesajı açılır.
LCD'nin Arduino kütüphanesine doğrudan bağlantısı olmadığından, mesajları görüntülemek için yeni bir kütüphane oluşturulmalıdır. Bir tavsiye, "Arduino LCD"yi aradıktan ve +arduinoioaddons klasörüne yerleştirdikten sonra MATLAB yardım penceresinde bulunan LCD örneğinden bir LCDAddon.m dosyası oluşturmak veya ekteki sıkıştırılmış klasörü kullanmak ve tüm içeriğini yukarıda belirtilen klasöre kopyalamaktır. dosya.
Başarılı olursa, MATLAB'da bir Arduino nesnesi oluşturma kodu aşağıda gösterildiği gibidir.
a=arduino('com#', 'uno', 'Kütüphaneler', 'ÖrnekLCD/LCDAddon');
Adım 4: Fonksiyonlar
Bir MATLAB işlevi oluşturun. Girişler için "eff" ve "T_min" değişkenlerini kullanıyoruz; çıktılar için, genel tasarımda gereksiz olsa da, sonuçlardan veri içermenin bir yolu olarak "B" değişkenini kullandık. "eff" girişi, servonun maksimum hızını yönetmeye izin verir ve "T_min" girişi, istenen minimum sıcaklığı kontrol eder. Dolayısıyla "B" değeri fanın süresi, sıcaklığı ve verimliliği için üç sütun içeren bir matris üretmelidir. Ayrıca, ayrıntıya bir bonus olarak, aşağıda listelenen kodda ayrıca, istenen minimum sıcaklığa yaklaştığında fan hızının yüzde elli oranında azalacağı bir if ifadesi vardır.
Tüm girişler ve jumper kabloları tam olarak yerleştirilmişse ve arduino bağlantısının portunun COM4 ve fonksiyon adının "fanread" olduğu varsayılarak aşağıdaki kod yeterli olacaktır:
fonksiyon [B] = fanokuma(Tmin, eff)
temizle a; clear lcd;a=arduino('com4', 'uno', 'Kütüphaneler', 'ÖrnekLCD/LCDAddon');
t=0; t_maks=15; saniye cinsinden % zaman
lcd=addon(a, 'ÖrnekLCD/LCDAddon', {'D7', 'D6', 'D5', 'D4', 'D3', 'D2'});
initializeLCD(lcd, 'Satırlar', 2, 'Sütunlar', 2);
eğer eff>=1 || e<0
error('eff, 0 ile 1 arasında ayarlanmadıkça fan devreye girmez.')
son
t=1:10 % döngü/aralık sayısı için
temizle c; % tekrarlanan hatayı engelle
v=readVoltage(a, 'A0');
SıcaklıkC=(v-0.5)*100; 2,7-5,5 V voltaj aralıkları için % tahmini
eğer TempC>Tmin ise TempC ise
c=['Temp ', num2str(TempC, 3), 'C Açık'];
writePWMDutyCycle(a, 'D9', eff/2); % servoyu yarım hızda aç
spd=50;
Başka
c=['Temp ', num2str(TempC, 3), 'C Açık'];
writePWMDutyCycle(a, 'D9', eff); % servoyu verilen hızda açın
spd=100;
son
Başka
c=['Temp ', num2str(TempC, 3), 'C Kapalı'];
writePWMDutyCycle(a, 'D9', 0); % zaten açıksa kapat
spd=0;
son
printLCD(lcd, c);
duraklat(3); Döngü başına geçen % üç saniye
zaman(t)=t.*3;
tempplot(t)=TempC;
act(t)=spd;
alt grafik(2, 1, 1)
arsa(zaman, tempplot, 'b-o') % çizgi grafiği
eksen([0 33 0 40])
xlabel('Zaman (saniye)')
ylabel('Sıcaklık (C)')
devam etmek
arsa([0 33], [Tmin Tmin], 'r-')
devam etmek
arsa([0 33], [Tmin+2 Tmin+2], 'g-')
alt grafik(2, 1, 2)
çubuk(zaman, hareket) % çubuk grafik
xlabel('Zaman (saniye)')
ylabel('Verimlilik (%)')
son
B=devir([zaman;tempplot;eylem]);
son
Artık fonksiyon tamamlandı, test zamanı.
Adım 5: Test Etme
Şimdi "function_name(input_value_1, input_value_2)" ekleyerek komut penceresinde işlevi test edin ve izleyin. Hiçbir Arduino nesnesinin mevcut olmadığından emin olun; öyleyse, kaldırmak için "temizle a" komutunu kullanın. Hatalar meydana gelirse, herhangi bir konektörün yanlış yerde olup olmadığını veya yanlış dijital veya analog girişlerin kullanılıp kullanılmadığını kontrol edin. Sonuçların değişmesi beklenir, ancak buna bazı atlama tellerinin ve sıcaklık sensörünün yerleştirilmesi neden olabilir.
Sonuçların beklentileri, servo performansında ve LCD'deki verilerde değişiklikler üretmelidir. Her üç saniyelik aralıklarla, bir metin satırı, sıcaklığı Santigrat cinsinden ve fanın tam hızda, yarım hızda veya hızsız çalışırken etkin olup olmadığını göstermelidir. Veriler büyük olasılıkla tutarlı olmamalıdır, ancak daha çeşitli sonuçlar isteniyorsa, "Tmin" değerini devre tarafından üretilen ortalama sıcaklığa yakın yerleştirin.
6. Adım: Sonuç
Deneme yanılma yoluyla başarılması zor bir görev olsa da, nihai sonuçların oldukça ilginç ve tatmin edici olduğu ortaya çıktı. Böyle bir sistem, kaç tane karmaşık makinenin veya hatta bazı parçalarının belirli bir amacı gerçekleştirmek için bir araya getirilmiş bağımsız parçaların bir koleksiyonu olarak görülebileceğini göstermeye yardımcı olur.
Nihai projenin oldukça basit tasarımı nedeniyle, performansını iyileştirmeye ilgi duyanlar, nihai üründe projeyi daha iyi ve daha ayrıntılı hale getirebilecek ince ayar ve değişiklikler yapabilir. Bununla birlikte, devrenin voltaj okumasında düzensiz dalgalanmalara neden olan servo aktivasyonu gibi devredeki zayıflıkları ortaya çıkarır ve bu da sistemin hiçbir zaman aynı sonuçları vermemesine neden olabilir. Ayrıca, "eff" 0,4 ve daha yüksek olarak ayarlandığında servo hızında bir değişiklik görmeyle ilgili sorunlar olmuştur. Bir sıcaklık ve nem sensörü kullanılmış olsaydı, nihai model daha karmaşık olurdu, ancak daha tutarlı değerler sunardı. Yine de bu, karmaşık bir makinenin basit parçalarının bir kombinasyonu olarak işlev görebileceğini gösteren bir deneyimdir.
Önerilen:
DIY Kovalı Klima: 13 Adım (Resimlerle)
DIY Bucket Klima: Hindistan'ın güneyinde oldukça sıcak bir yerde yaşıyorum ve çalışma alanım havasız oluyor. Eski bir kovayı DIY klimaya dönüştürerek bu soruna temiz bir çözüm buldum. AC'nin modeli çok basit, düşük maliyetli ama yine de etkilidir. Ba
Otomatik Klima Anahtarı: 5 Adım
Otomatik Klima Anahtarı: İnsanların günlük yaşamları boyunca yapması gereken çeşitli farklı şeyler olduğundan, çoğu zaman bazı küçük detayları unutuyoruz, bazen ciddi sonuçlara neden oluyoruz, klimayı kapatmayı unutmak bunlardan biri. İnsanlar yanlışlıkla
Otomatik Fan/Klima Sistemi: 6 Adım
Otomatik Fan/Klima Sistemi: Hoş Geldiniz! Bu Eğitilebilir Kitapta, kendi otomatik Fan/Klima Sisteminizi nasıl kuracağınız konusunda size yol göstereceğim. Bu Eğitim Tablosu, yaz sıcağında odaları soğutmak için kullanılan bir pencere fanı ile ilgilidir. Bu projenin amacı,
Çalışması ve Onarımı İle Klima PCB Eğitimi: 6 Adım
Çalışması ve Onarımı ile Klima PCB Eğitimi: Hey, Naber Beyler! Akarsh burada CETech'ten. Hiç Klimalarınızın iç tarafında neler olduğunu merak ettiniz mi? Evet ise, o zaman bu Makaleyi gözden geçirmelisiniz, çünkü bugün bağlantılar ve kompozisyon hakkında bir fikir vereceğim
Otomatik Açılan Klima Cihazı: 5 Adım
Otomatik Açılan Klima Cihazı: Bu cihaza Otomatik Açılan Klima Cihazı denir. Sıcak odanızdayken ve okulu yeni bitirdiyseniz, klimayı açamayacak kadar yorgunsanız, o zaman bu cihaz tam size göre. Bu cihazın mekanizması çok basittir.