Mikrodenetleyici ile RPM ölçümü (cpu fan hız göstergesi)

| Haziran 3, 2023 Tarihinde güncellendi
Mikrodenetleyici ile RPM ölçümü (cpu fan hız göstergesi)

RPM ölçm devresi PIC16F627 mikrodenetleyici üzerine kurulu display üzerinde fan hızını görüntülüyor. Yazılım assembly dili ile hazırlanmış.

PCBway Türkiye PCB Manufacturer PCB Assembly

PC’niz kendisi CPU fanının hızını çok iyi ölçebilir ve bunu Windows’taki bir uygulamada görüntüleyebilir veya bilgisayar sıfırlandığında BIOS Menüsüne gidebilir ve fan hızını doğrudan buradan okuyabilirsiniz.

Bunu yapmamın ana nedeni, tanıdığım birinin bilgisayardan bağımsız olarak CPU Soğutucu Fanlarını ölçebilen/test edebilen bağımsız bir cihaz istemesidir. Ve işte karşınızda, PIC16F627 tabanlı bir CPU Soğutucu Fan Hızı Test Cihazı. Hız, gösterildiği gibi 4 adet 7 segmentli ekranda görüntülenir.

Bu küçük CPU Fanının hızı yaklaşık 5000 RPM’dir (gösterildiği gibi 5109 RPM), boyutuna göre fena değil. Fanın hızını ölçmek, fan üzerindeki Takometrik darbe pimi aracılığıyla PIC’e gönderilen darbeleri hesaplamak kadar basit bir meseledir. Aslında bilgisayar da aynı şekilde fanın hızını ölçer. 5V darbeleri oluşturmak için Takometrik darbe pimini 5V’a bağlamak için bir çekme direnci kullanılır.

fan-tester-circuit-schematic

Darbeleri ve geçen süreyi yakalamak için TMR0 ve TMR1 birlikte kullanılır. Örneğin, 1 saniyelik süre içindeki darbe miktarının yakalanması, fanın hangi frekansta olduğunu verir. dönüşler, örn. 60Hz. RPM’ye dönüştürmek için Hz cinsinden frekansı 60 ile çarpmak basit bir meseledir, bu durumda bu 3600 RPM verir.

Oldukça az sayıda 7 segmentli ekran olduğu için, tüm segmentler aynı anda kontrol edilecekse, yapılması gereken çok fazla kablolama olacaktır. Bu nedenle, kablolama miktarını ve akım tüketimini en aza indirmek için bir anahtarlama yöntemi kullanılır. Her segmenti açmak/kapatmak için ayrı transistör kullanarak, PIC yedi segmentli ekranda aynı anda bir sayı gösterecektir. Bu proje için sayıları sağdan sola gösterecektir. Mantıksal olarak, bu aşağıdakilerin meselesidir. Diyelim ki, ölçülen RPM 4189 RPM’dir, ardından aşağıdakiler gerçekleşir:

Sağdan 1. segmentte 9’u görüntüleyin, ardından 20ms geciktirin.
Sağdan 2. segmentte 8’i görüntüleyin, ardından 20ms geciktirin.
Sağdan 3. segmentte 1’i görüntüleyin, ardından 20ms geciktirin.
Sağdan 4. segmentte 4’ü görüntüleyin, ardından 20ms geciktirin.

Bu yöntem, izleyiciye 7 segmentli ekranın 4’ünün de aynı anda RPM’yi gösterdiğine dair bir “algı” verecektir.

PIC kaynaklı akımı daha da azaltmak için, bir BCD – 7 segment kod çözücü, yani CD4511 kullanılır. Bunu kullanmak, PIC16F627’deki pin kullanımını da azaltacaktır. Bu nedenle, PIC’de daha fazla boş bağlantı noktası bulunacaktır.

Cihazın çalışması sırasında transistörlerin yayıcısı biraz sıcak görünüyor. Biraz soğutmak için, transistörler üzerindeki stres yükünü azaltmak için bir soğutucu kullanılması önerilir. Aksi takdirde, soğutucuya gerçekten ihtiyaç yoktur.

cpu-rpm-fan-olcum-display-speed-counter

Ek olarak Türkçe açıklamaları ile RPM ölçüm projesine ait döküman projenin detayları ve kaynak asm kodu var yukarıdaki sitede bulunan proje ve bu dökümanın daha faydalı olacağını düşünüyorum

Bu programda DC motorun devir sayısı hesabı motor diski ile birlikte çalışan optokuplör yardımıyla bulunuyor. Motordan geribildirim sinyali optik alıcı ve verici arasına yerleştirilmiş diskin çıkışından alınmaktadır.(DSC-PORTB 4.bit) Motorun geri beslemesi motorla beraber optik alıcı ve vericisi arasında dönen bir disk tarafından sağlanmaktadır. Diskin üzerindeki iki delik vasıtasıyla bir turda optik alıcı iki kere darbe üretmektedir. Bu darbe ile DSC çıkışında

TTL dalga biçimi üretilmektedir. DSC çıkışı kullanılarak bilgisayar motorun dönme hızını ölçmekte ve değiştirebilmektedir. Devir sayısı hesaplanırken temel mantık diskin 1 devri için geçen zamanı hesaplamak ve orantı kurarak 1 dakikadaki devir sayısını bulmaktır.Disk üzerinde 2 boşluk bulunduğundan DSC çıkışı dalga şeklinin yarı periyodunun süresini hesaplamamız yeterlidir.Daha sonra bu süre kullanılarak rpm değerini hesaplarız.

İkinci Projeyi hazırlayan: Barış Karaman – Emeği geçen hazırlayan kişilere teşekkürler.

mikrodenetleyici-ile-rpm-olcumu-cpu-fan-hiz-gostergesi

Şifre-Pass: 320volt.com

Yayım tarihi: 2010/09/06 Etiketler: , , , , ,



11 Yorum “Mikrodenetleyici ile RPM ölçümü (cpu fan hız göstergesi)

  1. mustafamacitmustafamacit

    sanırım kalibrasyona ihtiyacı var. o fan 5000 küsür RPM e çıkıcak tipte değil 🙂

    CEVAPLA
  2. AdemAdem

    Verdiğiniz asm kaynak kodu bozuk. Mplab derlerken hata veriyor. Hex dosyası oluşturulamıyor.

    CEVAPLA
  3. ipli jetonipli jeton

    Merhaba gevv bey. PIC16f627 yerine 628 kullanabilir miyiz? Parça sipariş verdiğim yerde 627 yerine 628 var. Onu alsam uyar mı?

    CEVAPLA
  4. Adem GdkAdem Gdk

    Linkleri verirken yanına archive.org linkini de koyarsanız iyi olur. Zira zaman içerisinde orjinal kaynağın olduüğu sayfa kapanmış olabiliyor.

    CEVAPLA
    1. gevvgevv Yazar

      Merhaba, kapanma ihtimaline karşı varsa web sayfası dahil tüm dosyalar için indirme linki veriliyor.

      CEVAPLA
      1. Adem GdkAdem Gdk

        Kafama takılan şeyler var. Birincisi kullanılan kristal kaçlık? Yazıda belirtilmemiş. Datasheetteki gibi 20Mhz’lik mi olacak?
        İkincisi pic16f627 piyasada pek bulunmuyor. Onun yerine ağabeyleri 16f628 veya 16f630’u kullansak devre çalışır mı?

        CEVAPLA
        1. gevvgevv Yazar

          asm kodunda “Instruction Cycle Time = 1 / (4MHz / 4) = 1us per instruction” diye bir açıklama var büyük ihtimal kristal 4mhz
          microchip sitesinde PIC16F627 sayfasında benzer mikrodenetleyici listesi var. Asm kodunda INCLUDE p16f627.inc bölümünü kullanacağınız entegreye göre değiştirip deneyin

          Similar Devices PIC16F627

          PIC16F627A
          PIC16F628
          PIC16F628A
          PIC16F648A

          https://www.microchip.com/wwwproducts/en/PIC16F627A

  5. Adem GdkAdem Gdk

    Devreyi kurup çalıştırdım. Yukarıda yazdığı gibi kaynak kodunda include kısmını değiştirerek kodu pic16f628a’ya attım. Devreyi kurdum sorunsuz çalışıyor. Fan devrini olması gerektiği gibi gösteriyor.
    Denemedim ama 4511 yerine 7447 kullanılarak ve transistör bağlantıları değiştirilerek anot display ile de kullanılabilir.

    Her iki entegre de birbirleri ile pin uyumlu. Bu arada kullanılan kristal 4MHz’likmiş. Denedim oldu. Baskı devresini de yaptım. Display’i karta kablo ile bağladım..

    rpm-measurement-with-microcontroller-cpu-fan-speed-indicator

    CEVAPLA
    1. gevvgevv Yazar

      Geri bildirim için teşekkürler. PCB çok düzenli olmuş elinize sağlık.

      İyi çalışmalar

      CEVAPLA
    2. AtillaAtilla

      asm dosyasında include kısmını 16f628a olarak düzelltikten sonra hex dosyasına ne ile dönüştürdünüz? hex dosyasını pic’e programladınız ve çalıştı mı? proeus ta simule ederken hata veriyor ve hex’e çevirirkende hata veriyor.

      CEVAPLA
  6. Adem GdkAdem Gdk

    Kendi yaptığım PCB’nin görüntüsü. yolların rahat gözükmesi için power plane’ler outline olarak seçildi. İlk paylaştığımdan farklı olarak kolay takma çıkarma için konektörlerin yönü sırt kısmı içeri bakacak şekilde değiştirildi.

    rpm-measurement-with-microcontroller-cpu-fan-speed-indicator

    CEVAPLA

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir