Bu proje, LED bileşenleri için bağımsız çalışan aktif soğutmanın tasarımı ve ardından uygulanmasıyla ilgili. Temeli, verimli ısı giderme için kullanılan 12V fan. Kontrol elemanı olarak ATMega16 mikrodenetleyicisi kullanılmış. Harici sensörler kullanarak LED modülün mevcut soğutma ihtiyaçlarına etkili ve gerektiği şekilde karşılayan, LED aydınlatma sisteminin ömrünü ve güvenilirliğini artıran bir devre.
LED’lerle aydınlatmanın avantajları arasında daha yüksek mekanik direnç, diyotların ömrü boyunca sabit parlaklık, daha düşük elektrik tüketimi, daha küçük boyutlar yer alır. Öte yandan, dezavantajları arasında ışığın nokta karakteri ve enerjinin yalnızca dörtte birinin ışığa dönüştüğü termal özellikleri yer alıyor. Gerisi atık ısıdır. LED, ışık kaynağı olmasının yanı sıra aynı zamanda dağıtılması gereken bir ısı kaynağıdır.
Soğutma, fanın oluşturduğu hava akışı ile aktif olarak gerçekleşir, bu durumda pasif soğutma yetersiz kalacaktır. Fan yalnızca gerektiğinde çalıştırılır. Termistörden gelen çıkış sinyaline göre cihaz, fanı çalıştıracağına veya devir sayısını ayarlayacağına karar verir. Bu projede genellikle PC’yi soğutmak için kullanılan bir fan kullanılmaktadır.
İçerisinde bulunan Hall sensör sayesinde TACHO sinyali adı verilen harici bir cihazla fanın dönüş hızını izlemek mümkündür. 12V DC ile çalışır, maksimum devir sayısı dakikada 4000’dir. Üç kablodan ikisi güçtür. Üçüncüsü devirleri ölçmek için kullanılır (sinyalin frekansı devirlerle ters orantılıdır). Döndürme sırasında %50 alternatifli dikdörtgen bir sinyal çıkışı sağlanır. Fan hızı kontrolü PWM kullanılarak uygulanır. PWM sinyali ile, N tipi bir MOSFET transistörü sürülür.
Sıcaklık ölçümü için ATMega16 mikro denetleyiciye NTC termistörü bağlanır. Köprünün düğüm noktalarında gerilim algılanır. Daha ileri karar verme için gerekli veriler böylece on bitlik bir A/D dönüştürücüyle elde edilebilir.
Projede 100kΩ dirençli termistör kullanılmıştır (bu değer 25°C sıcaklıkta geçerlidir). Termistörün karakteristiği genellikle doğrusal değildir. Bir direnci (50kΩ) seri olarak bağlarsak, gerilim eğrisi sıcaklığa bağlı olarak doğrusallaşır (kesikli bir düz çizgi ile yaklaşık olarak iki doğrusal denklemden sıcaklık hesaplaması – her biri farklı bir sıcaklık aralığı için). Bu değerler, ölçülen gerilimlerin referans gerilimle makul oranda olmasını sağlayacak şekilde seçilmiştir. Bu şekilde dönüştürücünün tüm aralığı kullanılır. Termistör, bir Wheatstone köprüsündeki diğer üç 50kΩ dirençle birlikte bağlanır. Ek olarak termistöre paralel olarak bir kapasitör bağlanır, üzerindeki voltaj daha kararlı olur.
Cihazın ekran görüntüleri
1 numaralı ekran: Sıcaklık, direnç ve devirlerin görüntülenmesi.
2 numaralı ekran: Gerilim, akım ve fan gücünün gösterilmesi.
3 numaralı ekran: LED göstergesi de dahil olmak üzere fan bloke olduğunda görüntülenir.
Program Açıklaması Başlatma – parametre ayarı
Başlatma sonrasında ilk olarak başlatma fonksiyonu (void init(void)) başlatılır, LCD ekran ile iletişimi başlatır ve başlangıç ekranını görüntüler. OK tuşuyla onaylandığında, termal direncin hesaplandığı LED modülünün gücünü ayarlama ekranı görüntülenir. + ve – tuşları 0-255W aralığında ayarlanabilir değerleri 1W’lık adımlarla değiştirir. Onaylandıktan sonra fan hızı ölçümü başlar. Programın başlangıcından itibaren PB3 pinine sabit bir yüksek seviye uygulanarak bu ölçüm başlatıldığında fan tam hızda çalışır.
Ölçülen değer yaklaşık 3 saniye sonra ekranda belirir ve onaylanmayı bekler. Daha sonra ortam sıcaklığı ve radyatörde istenilen sıcaklık ayarlanır. Başka bir onayın ardından çevre birimlerinin kayıtları (A/D dönüştürücü, sayaçlar, I/O pinleri) ayarlanır ve program daha sonra sonsuz bir döngüye atlar.
Bu sonsuz döngü içerisinde program, ATMega16 A/D dönüşümünün tamamlandığına dair bir gösterge ve ekranlar arasında geçiş yapmak için düğmeye basılması konusunda sürekli test yapar. Tüm kanalların dönüşüm sonuçları mevcutsa program A/D dönüşümü sonrasında kesmeyi kapatır ve açık olup olmadığını test eder.
Eğer öyleyse fan hızını ölçecek bir fonksiyon çağrılır. Bu ölçüm bittikten sonra A/D dönüştürücünün girişlerinde ölçülen gerilimlerden termistörün sıcaklığını, soğutucunun ısıl direncini hesaplayan bir fonksiyon çağrılır. Fan açıldığında hızını (mutlak ve göreceli olarak), voltajını, akımını ve güç tüketimini de belirler. Hesaplama sonuçları, kritik koşullar da dahil olmak üzere (soğutucuda izin verilen sıcaklığın aşılması, fanın bloke olması, termistörün bağlantısının kesilmesi) LCD ekranda görüntülenir. İlk iki durum, kritik işlevlerinden dolayı kırmızı bir LED ile de gösterilir.
A/D dönüşümü tamamlandıktan sonra kesme
Sıcaklık değişimi veya Termistör direnci, dönüşümün hızından dolayı yavaştır, belirli bir süre sonra yalnızca bir örnek kaydedilir. Yanlışlığı ortadan kaldırmak için kanal değiştirildikten sonra yalnızca onuncu örnek kaydedilmeye başlanır. Gürültü ve diğer kaynaklanan rastgele voltaj dalgalanmaları, her kanaldan 32 örneğin ortalaması alınarak ortadan kaldırılır.
Yeterli örnek elde edildiğinde kanal değiştirilir. Fan kapatıldığında ölçüm için yalnızca sıcaklık ölçümü için gerekli olan kanallar kullanılır. Kullanımdaki her kanal için 32 örneklik bir set elde edildikten sonra bunların ortalaması alınır ve daha sonraki hesaplamalar için geçerli verilerin varlığını belirtmek üzere bir bayrak ayarlanır. Termistör voltajının 900’ü aştığı bir durumda, ki bu referans voltajına karşılık geldiğinden doğru bağlantı ile mümkün değildir, termistörün yanlış bağlandığını bildiren bir bayrak ayarlanır.
RPM ölçüm fonksiyonu
Başlangıçta ölçüm sayacı sıfırlanır. Bir fonksiyon çağrısı sırasında üç ölçüm alınır ve sonuçlarının ortalaması alınır. Fan hızını ölçmek için PB3 kontrol pinine kısa süreliğine sabit bir yüksek seviye uygulanmalıdır. PWM sinyali uygulanırken hız ölçümü gerçekleştirilemez. Bu nedenle, PWM kontrol yazmacı kullanılarak çıkış kapatılır ve ilgili pin yüksek bir seviyeye ayarlanır. Fanın ataleti nedeniyle bu süre zarfında hızı sadece biraz artacak, ancak TACHO çıkışında periyodu kolayca ölçülebilen dikdörtgen bir sinyal üretilecektir.
Bunun için Sayaç/Zamanlayıcı Yakalama ünitesi 1 kullanılır. Kontrol kayıtları, yükselen kenar tespit edildiğinde sayacın durumu yakalanacak ve aynı zamanda taşma sonrasında kesme hizmeti etkinleştirilecek şekilde ayarlanır. Fonksiyon içerisinde, ölçümün tamamlandığına dair bir gösterge bekleyen bir döngü başlatılır (data_ready_rpm değişkeni).
Bir kenar yakalandıktan sonra kesme işleyicisinin bir parçası olarak, hassasiyet düşen kenara değiştirilir ve sayacın durumu başlangıç değişkeninde saklanır. İkinci kesmede sayacın durumu stop değişkenine kaydedilir. Başlatma ve durdurma değişkenlerinin değerlerindeki fark, fan devir periyodunun dörtte biri olan dikdörtgen sinyalin darbe uzunluğunu verir. Daha sonra data_ready_rpm bayrağı set edilir, sayaç değeri düşürülür ve bir sonraki ölçüm beklenir. Darbe uzunluğu ölçümü 3 kez tekrarlanır ve sonucun ortalaması alınır.
Kenar yakalamanın meydana gelmemesi durumunda, sayaç1 taştığında, bir kesme işleyicisi harekete geçirilir ve ölçüm sıfır değeriyle döndürülür. Bu, fanın dönmediği ve fonksiyonun sıfır RPM değeri döndürdüğü anlamına gelir. Ölçüm bittikten sonra PWM çıkışı tekrar başlar. Fonksiyon doğrudan hesaplanan devirleri döndürür. Fonksiyonun son kodu, fanın çalıştırılması sırasında hızın hızla değiştiği ve yanlış değerlerin görüntülenebileceği durumları ele alır.
Hesaplama işlevi
Termistördeki sıcaklık, köprüdeki düğüm voltajlarının farkıyla hesaplanır ve termistör direncinin sıcaklığa bağımlılığı, kesikli bir düz çizgiyle yaklaşık olarak hesaplanır. Hesaplanan parametrelere (sıcaklık ve ölçümün başlangıcında kullanıcı tarafından girilen ortam sıcaklığı ve modül gücü gibi parametreler) dayalı olarak termal direnç hesaplanır. Soğutma kontrolünün kendisi de hesaplamaların bir parçası olarak gerçekleştirilir. Sıcaklık değeri test edilir ve belirlenen değer aşıldığında fan çalıştırılır. Hız, aşağıda açıklanan algoritma tarafından kontrol edilir. Sıcaklık ayarlanan sıcaklığın altına düşerse fan kapatılacaktır. Kritik durumların belirtileri de test ediliyor. Bunlar arasında fanın tıkanması (fan açıkken sıfır hız) ve maksimum sıcaklığın aşılması yer alır.
Sıcaklık stabilizasyonu için hız kontrol algoritması
Hız kontrolü hesaplama fonksiyonu içerisinde gerçekleşir. Algoritma yalnızca fan açıkken yürütülür. Öncelikle bir önceki ölçüme göre sıcaklık değişimi 32 ölçüm için entegre edilerek delta_temperature değişkenine kaydedilir. Bu, sıcaklığın zamana bağlı eğilimini (yani sıcaklığın yükselip yükselmediğini) verir ve aynı zamanda genel eğilim olarak ters yöndeki küçük sıcaklık değişikliklerini filtreler.
Entegrasyon tamamlandıktan sonra algoritma, mevcut sıcaklığın belirtilen sıcaklıktan yüksek veya düşük olmasına göre bölme yapar. Daha yüksekse, daha yüksek bayrak ayarlanır ve eğimin negatif ve mutlak değerde sınır değerden küçük olup olmadığı test edilir. Bu koşul karşılanmazsa, PWM sinyalini üretmek için karşılaştırıcı kaydının değeri ve dolayısıyla fan hızı artacaktır.
Bu, sıcaklıktaki artışı yavaşlatmalı ve sonunda değeri sınıra eşit olan kılavuz çizgiye düşmesine neden olmalıdır. Aksine, mevcut sıcaklık belirtilenden düşükse alt bayrak ayarlanır ve algoritma, sıcaklığın sınır yönü boyunca artmaya başlamasını sağlamaya çalışır. Bu, karşılaştırma kaydının değerini ve dolayısıyla fanın hızını kademeli olarak azalttığı anlamına gelir. Sonuç, zaman içinde salınan bir sıcaklık seyridir; rotanın doğrusal kısmında ise kılavuz, programdaki limit değere göre belirlenmelidir (entegrasyon süresi boyunca 0,5 °C’lik bir değişiklik).
Sıcaklık belirtilen değeri (akım ile belirtilen değer arasında sıfır fark) aştığında, önceki durumun belirtilen sıcaklıktan daha yüksek veya daha düşük olmasına bağlı olarak (daha yüksek ve daha düşük değişkenleri test ederek) eğrinin mutlak değeri azalacaktır. Aynı zamanda karşılaştırma kaydının değeri değiştiğinde herhangi bir taşma veya eksik taşma olmaması da sağlanır.
Kaynak: urel.feec.vutbr.cz/MIA/2011/Paus/index.html
Şifre-Pass: 320volt.com
Yayım tarihi: 2023/10/26 Etiketler: Atmega16 Projeleri, atmel avr projeleri, fan kontrol, fan kontrol devresi, motor kontrol