Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

Pic PWM kullanımı

Başlatan electricman, 22 Haziran 2011, 15:33:34

electricman

16f877 nin PWM modunu kullanırken
setup_timer_2(T2_DIV_BY_4, 120 ,1);
seklinde pwm frekansını belirledik ve cıkısına 1000rpm motor bagladık diyelim
set_pwm1_duty(30) yazdıgımıza 250rpm
set_pwm1_duty(60) yazdıgımıza 500rpm ile doner mi yoksa bunun baska bir kriteri mi var bu konuda takılıyorum

Mucit23

Bunun birçok kriteri olabilir. Birkere Rpm değeri verdiğin voltaja göre ve motordan motora değişir. herhangi bir motor 12 voltda %60 duty ile 500rpm döneken başka bi motor 2500rpm dönebilir..

electricman

12V 1000 rpm lik bir dc motor yine 12 V ta calıstırıcam l298 ile sürecem ama bu pwm degerleri tam buna denk geliyor mu bu onemli suan

VFR

Tam olarak denk gelmez. Devri sabit tutmak için geri besleme yapmalısın. Encoder ile devir sayısını ölçüp geri besleme yaparak pwm değerini değiştirip anlık olarak istediğin devir sayısına getirebilirsin.

electricman

peki geri beslemeyi nasıl yapıcam

VFR

Şimdi motorun 1000rpm ve sen pwm olarak 60 verdin, normalde 500 devir dönmesi lazım ama dönmez. Bu yüzden devir sayısını ölçeceksin, mesela 490 çıktı, o zaman pwm'i biraz daha arttırman lazım. Mesela 61 yaptın 495 çıktı. Bunun gibi okunan değer ile istediğin değeri karşılaştırarak devir sayısını sabit tutabilirsin. Bu en basit yöntem. Daha hassas bir uygulama için PID kontrolüyle yapabilirsin geri beslemeyi.

electricman

tesekkür ederim iyi bir kontrol kitabı bulayım o zaman calısmaya baslayayım

tayyar

Motorun milinden mekanik olarak tahrik edilen sistemin yüklenmesinide unutmayınız. 12v luk motora 6 volt verdiğinizde yükünüzde motoru kastıracaktır. Bu durumda 500rpm görmeniz imkansıza yakındır.

Devri sabit tutmak istiyorsanız bahsedildiği gibi motor devrini ölçen ve buna tepki veren bir sistem kurmanız gerekmektedir. ( en basiti encoder + pwm tahrik )

Daha ötesinde de konuya healme'nin dediği gibi PID ile yaklaşabilirsin.
--EGEMENLİK KAYITSIZ ŞARTSIZ MİLLETİNDİR--

electricman

istedigimiz degerleri bulduk diyelim ben bu integral alıcısını devreye opamplarla mı kurucam? bi enkoder ile geri beslemeli yaptıgımıza hangi enkoderi kullanabilirim?

VFR

Analog olarak opamplarla yapabilirsin. Ama yazılımda da yapabilirsin opamp kullanmadan.
Encoder olarakta senin ihtiyacını hangisi karşılarsa onu kullanırsın. Hassasiyet çok önemli değilse kendin yapabilirsin.
[IMG]http://img386.yukle.tc/images/8289Adsiz.png[/img]
Şekildeki gibi bir sistem kurabilirsin. Delik sayısının çokluğu hassasiyetini belirler.

electricman

pic icinde yazılım ile mümkün mü bu kontrol bunu arastırcagım

VFR

PID için örnek bir program:
previous_error = setpoint - actual_position
integral = 0
start:
  error = setpoint - actual_position
  integral = integral + (error*dt)
  derivative = (error - previous_error)/dt
  output = (Kp*error) + (Ki*integral) + (Kd*derivative)
  previous_error = error
  wait(dt)
  goto start

electricman

tesekkür ederim diski motorun miline baglıyorm rb0 ile saydırıyorum ama ben motora daha yük baglayacagım pek yer kalmıyo

VFR

İşte bu yüzden encoderli motorlarda, encoder motorun arkasına bağlıdır.
Önüne bağlandığında yer kaplaması ciddi bir sıkıntı malesef.

electricman

evet o motorlardan arıyorum gercekten yer kaplıyo önüne koydugumuza tesekkür ederim ilgine