avatar_BİDİL

16F877A HPWM İLE AYARLI VOLTAJ ÇIKIŞI

Başlatan BİDİL, 14 Ekim 2024, 13:04:18

BİDİL

Merhaba arkadaşlar.

1,50v ila 5,00v arasında yazılım ile ayarlanabilecek mümkün olduğunca hassas bir voltaj elde etmeye çalışıyorum. Öncelikle pot entegre kullanarak hızlıca çözeyim istedim ancak maliyetlerinden dolayı ekonomik bir çözüme yönelmek daha uygun geldi. Sonuç olarak 16F877A ile pwm çıkışı alıp rc devresinden çıkan voltajı opamp ile izole etmek istiyorum. Aslına bakarsanız sonuç aldım, en azından simülasyonda olmuş gibi görünüyor.
Gerek pwm ayarları gerekse analog kısımda sitedeki projelerden , ete hocanın ders notlarından kopyala yapıştır yöntemi ile derme çatma bir şeyler yaparak hem anlamaya hem de sonuç alamaya çalıştım. Açıkçası birçok konuda eleştiriye ihtiyacım var.

Gerek frekans konusunda gerekse analog konusunda sonuca yönelik bir çalışma oldu, pratikte çalışır mı bilmiyorum, voltajdaki hassasiyet ve kararlılığı nasıl sağlayabilirim?,

Pwm ayarları doğru mu?
LM358'in kullanım şekli doğru mu?

Desteğiniz için teşekkür ederim. 


ete

#1
Öncelikle 4Mhz de çalışan program FS_OSC ile çalıştırılmaz yerine XT_OSC kullanman gerekiyorç
Basla satırından evvel i hatta CCP1CON.2=1 satırından evvel Duty değeri sıfırlanarak GOSUB KANAL yazılmalı böylece ilk çalıştırmada PWM nin %50 duty değeri ile açılması önlenmeli.
Ekran komutlarında ekranı sildirme komutu olan ,1 değerini iki defa vermişsin.Bana kalırsa Basla satırından evvel önce ekranı sildirip sonra ana programa geç. Böylece sildirme komutları nedeni ile ekranın süreki göz kırpmasını engellemiş olursun. ,1 rakamı yerine oraya $80 yazman yeterlidir.
Gelelim PWM ayarlarına, 5Khz lik frekansı kullanmışsın bence mahsuru yok. Ama 10Khz kullansan belkide daha iyi olurdu.Ama olaya hassas ayarlı bir voltaj elde etme açısından bakarsak bu seferde Duty çözünürlüğü üzerinden konuşmamız gerekir. Neden dersen, PWM duty değeri çözünürlüğün 8 bitlik ve maksimum değerin 200. Hassas bir ayarlama istersen çözünürlüğünü 10 bit'e çıkarman daha doğru olur.Örnek vereyim 4 Khz lik frekansı kullanır ve TMR2 bölme oranını 1/1 yapıp PR2 değerinide 249 alırsan çözünürlüğün 10 bit olacaktır. Bu durumda Duty değişkenini byte değil Word olarak tanımlamalısın. Zİra maksimum değerin artık 1000 olacaktır.Duty değer üzerinden hesapladığın formülün değişmeyecektir. Yine aynı formül ile X değerini heaplayacaksın.
Hassas bir voltaj ayarı yapabilmen için % Duty değeri üzerinden çalışmak yerine direk Duty değeri üzerinden çalışman daha doğru olur. %Duty ile toplam 100 kademede voltaj değişikliği elde edersin Duty değeri üzerinden gidersen mevcut verdiğin değerler ile 200 kademen olur. 4Khz frekansa dönersen 1000 kademen olur. Tabiiki 1000 kademe derken duty değerinin her bir artışında çıkış voltajın mv seviyesinde artış göstermeyecektir. Bunun için birden fazla değer artışı gerekecektir. Ama çözünürlüğün yüksek olacağı çin hassasiyetin artacaktır.

LM358'i kullanış şeklin bence doğru değil. Voltaj takipçisi (voltage follower) denilen bir yöntem var onu kullan daha iyi sonuç alırsın. Tarif gerekirse girişi yine pozitif giriştem yap. Negatif girişe bağlı dirençleri kaldır negatif girişi direk 1 nolu pine yani çıkışa bağla. BU şekilde elde ettiğin voltajı kayıpsız şekilde kuvvetlendirmiş olursun.
Başkada söyleyecek bir şey yok sanırım.

Ete


Powered by EzPortal