PIC16F876 ile pwm uygulamalarında örnek olabilecek bir proje 9 adet fan kontrol edilebiliyor 3 adet BUZ72 Mosfet ile PIC çıkışları güçlendirilmiş LM60 Sıcaklık sensörlerinden gelen bilgiye göre hız değişiyor R ve G ledleri ile sıcaklık durumu gözlemlenebiliyor CC5X ile hazırlanmış kaynak C ve hex kodları devre şeması var
Fan hızı kontrolörü
Evimdeki bilgisayarlarda bulunan ticari fan hızı denetleyicileriyle ilgili bazı kötü deneyimlerden sonra, kendim için daha iyisini yapmanın kolay olacağına karar verdim. Gerçekten de birkaç akşam sonra bu sonuçları elde ettim….
Her biri bir (grup) fan(lar)ın hızını kontrol eden üç sıcaklık sensörü desteklenir. Her sensör için küçük bir potmetre, üzerinde fanın çalışmaya başlayacağı gerçek sıcaklığın seçilmesine izin verir. Daha yüksek sıcaklıklar, fan hızında doğrusal bir artışa neden olur.
Ölçülen sıcaklık düştüğünde, kontrol istikrarsızlığını önlemek için gerçek fan hızı yalnızca çok yavaş bir şekilde (birkaç dakika alarak) düşürülür. Ek bir potmetre, sıcaklıktan bağımsız olarak minimum fan hızı sağlar. Devre, düşük maliyetli bir PIC 16F676 mikrodenetleyici sayesinde çok az bileşenle oluşturulmuştur. Bu kontrolör, analog girişlerin A/D dönüşümü, uygun sinyal filtreleme ve fanları çalıştırmak için PWM çıkış sinyallerinin oluşturulması ile ilgilenir. Fanların PWM sürüşü, değişken görev döngüsü ile hızlı bir açma/kapama anahtarıdır, bu nedenle çıkış transistörleri, birçok fanı çalıştırırken bile soğuk kalacaktır. İki renkli bir LED, rengi kademeli olarak yeşilden kırmızıya değiştirerek görsel bir sıcaklık göstergesi verir.
Bu proto uygulama, iki fan grubunu kontrol eden iki sensör için kurulu bileşenlere sahiptir. Anahtar yalnızca güvenlik yedeklemesi içindir: bir şey bozulursa veya amaçlandığı gibi çalışmazsa, anahtar devrenin diğer çalışmasından bağımsız olarak tam fan hızı sağlar.
[schematic_small.gif] Devrenin tam şeması (üç sensör ve fan grubu ile tam donanımlı olduğunda). PIC mikrodenetleyicisinin devre içi programlaması için 5 pimli bir başlığın ve PC’den veya programlayıcıdan programlama sırasında güç elde etmek için güç kaynağındaki diyotların kullanıldığına dikkat edin. Anahtarlama gücü MOSFET’lerinin (burada BUZ72) seçimi çok kritik değildir: diğer birçok tür de iş görecektir.
LM60 sıcaklık sensörlerinin çıkış voltajı, doğrudan PIC analog girişlerine uygulamak için biraz düşüktür. Opamp’lı analog amplifikasyonun ekstra bileşenlerinden kaçınmak için AD referans voltajını 1,6 volt’a düşürdüm. Bu, %0 ila %100 fan hızı kontrolü için kullanılan aralık olan 10 santigrat derece sıcaklık aralığı için 64 LSB sayısı elde eder.
Firmware ‘C’ Kaynak kodu ve derlenmiş ‘hex’ görüntüsü. C kodu, CC5x’in ücretsiz sürümüyle derlemek için yazılmıştır.
Note: before programming (erasing) a 16F676 device, first read its CONFIG register and its last (0x3ff) program word! These contain factory-programmed calibration values, that become lost by (re-)programming! 1st sample: read last program word=343C config:’bandgap midhigh’
Operation: TMR0 is used to count up, driven by the internal oscillator. In ‘set_fans()’ the counter value is compared with target values to create PWM output signals. Four analog inputs are sampled: three LM60 temperature sensors and one ‘minimum fan speed’ setting. At TMR0 wrap-around all PWM outputs are activated and a limited amount of computation is done. During the TMR0 loop, the PWM outputs are reset one-by-one.
The PWM frequency can be adjusted with the TMR0 prescaler, typically between 64 and 512 Hz. A global ‘time’ is maintained for a slow reduction of fan speed,
avoiding control loop instability. Note that this notion of time floats with the TMR0 prescaler.The PIC16F676 performs A-to-D conversion on the 4 analog inputs, and creates a PWM output signal to drive the fans. Besides 3 temperature values, one for each group of fans, it samples a value for a shared minimum fan speed setting. On rising temperatures, the fan speed rises linearly and immediatly. On decreasing temperatures, the fan speed decreases only very slowly, to avoid control instability: from 100% to 0 speed in about 8 minutes. Lowest temp setting (turn left): 20 to 30 degrees celcius results in 0 to 100% fan speed. Highest temp setting (turn right): 65 to 80 degrees celcius results in 0 to 100% fan speed.
Kaynak: jos.vaneijndhoven.net/fancntl/index.html (kapalı)
Şifre-Pass: 320volt.com
Yayım tarihi: 2008/09/25 Etiketler: BUZ72, hız kontrol, LM60, microchip pic projeleri, mosfet, PIC16F876 örnekleri, pic16f876 pwm, pwm devreleri, Sıcaklık
I am interesting for this.
Please, send me hex, asm and/or C code, for this project.
Thank You.
Milan.
jos.vaneijndhoven.net/fancntl/fan.c
jos.vaneijndhoven.net/fancntl/fan.hex
jos.vaneijndhoven.net/fancntl/fan_schematic.pdf
Thank You.
Milan.