ana sayfa > Microchip, Projelerim > Pic16F876 İle Frekans Ayarlı HPWM Motor Kontrol Sistemi

Pic16F876 İle Frekans Ayarlı HPWM Motor Kontrol Sistemi

Pazartesi, 13 Ağu 2012 yorum ekle yorumlara git
Pic16F876 İle Frekans Ayarlı HPWM Motor Kontrol Sistemi

Merhaba arkadaşlar.

Son çalışmam olan Frekans ayarlı pwm motor kontrol devresini sizlerle paylaşmak istiyorum.
DC motorlarda PWM sinyalinin hem Duty değerinin hemde Frekansının motorun çalışması esnasında anlık olarak değiştirilebileceği ve motor üzerindeki etkilerinin görülebileceği eğitim amaçlı yapılabilecek güzel bir uygulamadır.

Devrede Mikrodenetleyici olarak pic16F876 kullandım. Sistemin temeli 16F876 Mikrodenetleyicisine ve HPWM donanımı üzerine kurulmuştur. Sistemin Mikrodenetleyici kısmı ile birbirinde optik izolatörler vasıtasıyla yalıtılmıştır. Yük kısmında IRF540N mosfet kullandım. Mosfeti sürmek için ise TLP250 Mosfet sürücü kullandım. Yük kısmı ile mcu kısmı TLP250 ile şaseler komple yalıtılmıştır. Bu şekilde Yük Kısmında oluşabilecek herhangi bir arızadan Mikrodenetleyicimiz ve çevre donanımları hiçbir zarar görmez. Bunun yanı sıra yük kısmı ile Mikrodenetleyici kısmı arasında elektriksel bağlantı olmadığı için Mikrodenetleyici Beslemesi ile Motor beslemesi ayrı olarak verilmektedir.

Normalde bu tür sistemlerde PWM Frekansı sabit olup PWM frekansının Duty/Cyle Değeri değişkendir. Ben ise Hem Duty değerinin hemde PWM frekansının motor çalışması sırasında değiştirip motorun çalışması üzerindeki etkilerini görmeyi hedefledim. Bu konuda epeyce deneyimlerim oldu. Sistemi çeşitli motorlar üzerinde denedim ve çeşitli sonuçlara vardım. Yazımın ilerleyen kısımlarında yaptığım tespitleri belirteceğim. Şimdi sistemi tanıtmaya devam edelim.

Mosfet olarak IRF540N mosfetini kullandığımı belirtmiştim. Drain-Source arası 100V bir gelirime ve 33A drain akımına dayanabilmektedir. Bu mosfeti her nedense çok seviyorum. Favori mosfetlerimden biridir diyebilirim. :)

Mosfetler anahtarlama için 10V Gate gelirimine ihtiyaç duyarlar. Bu gelirimde RDS direnci en küçüktür. Bu yüzden TLP250 besleme gelirimi min. 10V seviyesinde olmalıdır. TLP250 Datasheedini incelediğimde Besleme konusunda bayağı geniş bir aralığa sahip olduğunu görüyorum. 10 ile 35V aralığında bir besleme voltajı uygulanabileceği söyleniyor. Ben TLP250 beslemesi için birde 7812 regülatör kullanmıştım. Bu yüzden Motor beslemesini 24V dan fazla vermenizi tavsiye etmiyorum.Yinede kullanacağınız motora göre besleme voltajını 15 volt ile 24 volt arasında verebilirsiniz. TLP250 ile ayrıntılı bilgiyi Datasheet sayfalarından bulabilirsiniz

Bu sürücünün Pin yapısı ise aşağıdaki gibidir.
TLP250

Burada ise Kullandığım mosfet ile ilgili teknik detayları görebilirsiniz.
IRF540N

Sistemin çalışması ile ilgili edindiğim sonuçlara gelince şunları söyleyebilirim.

İnsan kulağı normalde 10Khz ve üzeri sesleri duyamaz. Bu yüzden motor sürücülerinde de 10Khz ve üzeri PWM frekansları tercih edilir. Doğal olarak Düşük frekanslarda Özellikle 5Khz Ve altında bütün motorlarda ses geliyordu.

Aşağıda sistemin çalışmasıyla ilgili bir video ekledim. Videoda görüleceği üzere kullandığım motor 12 voltluk küçük küçük bir motor olduğu için yüksek frekanslarda pek verim alamadım. Sebebi ise besleme voltajının düşük kalması idi. Max. Frekansımız olan 10416hz alınca motordan hiç ses çıkmıyordu. Fakat dutuy değerini 90 ve üzerindeyken motor dönmeye başlıyordu. Bu genel olarak bütün motorlarda geçerli idi. Eğer PWM frekansı yüksek tutulacaksa besleme voltajıda yüksek tutulmalıdır.

Dediğim gibi yüksek frekanslarda duty değeri düşük olunca motorda hareketlenme olmuyordu. Bu yüzden ben genelde 1Khz Frekanslarda motoru sürüyordum. Bu düşük frekansta motordan biraz ses geliyor. Fakat benim için ses önemli değil. Hatta çıkan ses hoşuma bile gidiyor diyebilirim. :) :)

Eğer Sesten rahatsız olanlar için 8KHz ve üzerinde çoğu motordan hiç ses gelmiyor..

Ayrıca bir adet röle ile motor yönünü değiştirebiliyoruz. Bu iş için Sisteme bir adet yön değiştirme butonu koydum.Motorun çalışması esnasında yön değiştirme butonuna basıldığı anda motor yumuşak bir şekilde durup,Yön değiştirdikten sonra tekrar yumuşak bir şekilde eski devrine ulaşır. Aslında röle yerine bi H köğrüsü kurularakta devir yönünü değiştirebilirdim. Sanırım bu kısımda biraz kolaya kaçtım 😀

Devre şeması aşağıdaki gibidir.
Devre Şeması

Sistemin çalışma Videosu;

Videodan görüleceği üzere Motor sabit bir devirde çalışıyorken PWM frekansını arttırdığımda motor devrinde bir düşüş yaşanıyor.

Devreyle ilgili bazı resimler ekliyeyim 😉
Motor Kontrol
Motor Kontrol
Motor Kontrol
Motor Kontrol

Resimlerdende anlaşılacağı üzere LCD ekranın sağ tarafında boş bir konnektör ksım var. Bu kısım ne işe yarıyor derseniz şöyle açıklayayım. İleride 12F Serisi Bir MCU ile Bi encoder modülü tasarlamayı düşünüyorum. 12Fxxx MCU ile Encoderden gelen palsları sayıp devir olarak hsaplayıp SPI veya I2C ile motor kontrol karına göndermeyi düşünüyorum. Şimdilik böyle bişey yapmamışım. O konnektöre işlemcinin Boştaki I/O larını bağlayarak eğer ileride böyle bir iş yaparsam şuanki kart ile kolayca bağlantı kurabileyim diye düşündüm. Bu yüzden şimdilik oradaki konnektörün herhangi bir işlevi yoktur.

Son olarak arkadaşlar dikkat etmeniz gekeren bazı noktaları belirteyim. Benim kullandığım motor nominal akımı 1 amper civarlarında olduğu için motor beslemesinin girişinde 3A diyot kullanımışım. Eğer sizin kullandığınız motor daha fazla akım çekiyorsa kesinlike yük kısmını biraz değiştirmelisiniz.

Öncelikle kullanacağınız Diyotu motorun çektiği akıma göre bir değer seçmelisiniz ve IRF540 mutlaka daha büyük bir soğutucuya bağlanmalıdır. Bende pek fazla ısınma olmuyor ama sizin kesinlikle mosfeti çok iyi soğutmalısınız.Bunun için PCB birazdeğişiklik isteyebilir. Bunların dışında Beslemeniz Temiz olsun yeter.

Devrenin PCB si mevcutur arkadaşlar. Proteus kullanmayanlar için Şemayı ve pcbyi PDF olarak ekliyorum. Program PicBasic ile yazılmıştır. Umarım faydalı olabilmişimdir.

Dosyaları Buradan İndirebilirsiniz.

Categories: Microchip, Projelerim Tags:
  1. ali
    Cuma, 15 Kas 2013 zamanında 06:12 | #1

    hocam mrb öncelikle emeklerine sağlık ,çok faydalı bır kaynak oldu benım için, röle yerine bi H köprüsü kururak devir yönünü kontrol etmek istesek ne gibi değişlikler yapmamız gerekir. teşekkürler

  2. Ferhat YOL
    Cuma, 15 Kas 2013 zamanında 20:13 | #2

    Bu devre üzerinde artık zor olur. PCB felan değişmesi lazım

  3. Çarşamba, 29 Eki 2014 zamanında 02:28 | #3

    merhaba hocam
    öncelikle elerine sagılık gercekten güzel yayınlar mevcut ben bişeyi berak ettim şu pcb deki resmi inceledim malzemelerin resim larini falan pertinask yüzeye çizmişsin onu nasıl yaptıngını anlata bilirmisn

    • Ferhat YOL
      Çarşamba, 29 Eki 2014 zamanında 12:03 | #4

      Aynı yöntemle basıyorum. Yine ütü tekniği. Elemanların ayna görüntüsünü kuşe kağıdına çıkarıp normal baskı devre basar gibi bakırsız tarafa basıyorum.

  4. Yiğit
    Çarşamba, 14 Oca 2015 zamanında 20:44 | #5

    Merhabalar,
    Öncelikle çok başarılı ve işlevsel bir proje olmuş emeğinize sağlık.Yalnız 8.2 kullanmama rağmen proteusta çalıştıramadım.”Cannot find model file ‘TLP250.MDF’. ve “Sumulation failed due to netlist linker errors.” hataları aldım.Bir fikriniz var mı? İkinci olarak devrenin breadboardda da kurulma şansı var mıdır?

    Teşekkürler

  5. Pazartesi, 20 Haz 2016 zamanında 22:49 | #6

    Sayın ferhat bey merhaba;Güzel bir uygulama yapmışsınız emeğinize sağlık.
    Sorum şu olacak benim tlp250 yi kullandığım devrede TLP250 nin beslemesini +24VDC olarak kullandım ,fakat bir süre sonra(5 dakika) TLP250 ler ısınmaya başalıyor.Ne yaptısam çözemedim.Bu sorunla karşılaştınızmı ,çözüm ne olabilir.

    Not: Mosfet olarak IRF540N kullandım.Mosfetle kontrol ettiğim yük bir bobin ve bobin 0V ile +24V arası enerjilendirilmesi gerekiyor.Bobinin max. akım 2,5Amper

  1. şimdilik geri bağlantı yok