U

pwm yardım

Başlatan uzeyir, 30 Nisan 2013, 18:28:28

uzeyir

sevgili arkadaşlar 0-5 volt arası değerlere göre akım ayarı yapabilecek devre tasarlamak istiyorum.  ancak adc ile pwm konusunda yardıma ihtiyacım var.  örneğin 3 voltta gelen akımın %80 inini kullanacağım. 4 voltta akımın %60 ını kullananacağım 5 voltta akımın %10 unu kullanmak istiyorum. 5voltu geçince akımın tamamen kesilmesini istiyorum. yardım edebilrmisiniz acaba. adc okutabiliyorum. ete hocamın pwm derslerinide okudum ancak adc ile pwm okutmasını bilmiyorum.

ete

Yazdıklarından bir şey anlamadım. Ne istediğini hiç anlamadım.
Hiç bilmeyen birine anlatır gibi anlat lütfen.
Ete

uzeyir

Ete hocam adc kanaldan voltaj okutacağım. 3 volta kadar mosfettten  akımın tamamını akmasını istiyorum. . 3 volttan sonra 4 volta kadar akımın %80 ninin akmasını istiyorum. 4 volttan sonra akımın % 50 sinin akmasını istiyorum.  5 voltta akımın % 10 nunun akmasını istiyorum. yani  mosfetten geçen akımı pwm ile kontrol etmek istiyorum.  bilgilerinize. 

ete

PWM ile Akım kontrolünü bağdaştıramadım bir türlü. Voltaj kontrolü yapabilirsin.  Ama akım kontrolü yapabilirmisin pek bilemedim.
Ayrıca birde ADC okumaktan bahsediyorsun okunan ADC ne yapacak?
Neden bir devre şeması çizip buraya koymuyorsun. Böylece yapmak istediğin daha kolay anlaşılabilirdi.

Ete

uzeyir

sayın hocam şekildeki gibi  bir devre olacak 

uzeyir

pwm çıkışından mosfetin kontrol edecek.

uzeyir

sayın ete hocam ben buna benzer bir devre ile hidroliz sistemi  kontrol etmek istiyorum. yani çıkan hidrojen gazı  miktarını dc voltaj şeklinde okutup ona göre akım ayarlamak istiyorum. örneğin 20 amperlik bir mosfet kullanacağım. hidrojen gazının miktarına göre akımı arttırıp çoğaltacağım. devreyi nette gezinirken buldum. benim işime yarayabilecek bir devre olduğuna inandım. buradaki mantıkla aynı olacak.

pwm.c

akımdan kastın pwm Duty cycle oranı mı? yoksa akım regülatörü mü lazım?
_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-

uzeyir

#8
pwm duty cycle oranı, yani hidrojen gazı oranım arttıkça akımı sınırlayacağım.  bunuda mosfettle pwm duty cycle oranı ile yapabilirim herhalde. 

ete

Şemadan da pek bir şey anlamadım. Bir sürü bilinmeyeni var. Bildiğim şemalara pek benzemiyor.
12F683 kullanılmış bu tamam. Bir ADC girişi birde PWM çıkışı var buda tamam.
ADC girişi ne ölçüyor (kaç volt) belli değil .Üstelik Pic'e giren 2 adet girişi daha varki onlarda birer kondansatörle pice aktarılmış. Bunlara bir anlam veremedim.
Her neyse ben buna fazla bulaşmayayım.

12F683 ile ADC okuması yapacak isen aşağıdakileri sırası ile yapman gerekiyor.
1. Aşağıdaki Define tanımlamalarını programınbaşına yerleştir.
DEFINE ADC_BITS 10    ' ADCIN resolution  (Bits)
DEFINE ADC_CLOCK 1    ' ADC clock source  (Fosc/8)
DEFINE ADC_SAMPLEUS 30 ' ADC sampling time (uSec)

2. Komparatörleri iptal et ; CMCON0 = 7
3. Analog select registerine değer ver. Analog çalışacak pinlerin karşılığı "1" yapılacak diğerleri "0" olacaktır.
    ANSEL   = %000x0xxx  (X ile gösterilenler analog pinleri göstermektedir. )
4. ADCON0=%10000000  registerine bu değeri vererek 10 bit okumayı aktive et.
5. ADC okuyacak olan pinleri TRISGPIO registerinde 1 olarak ayarla.

Aynı işlemcide PWM çıkışını aktif etmek için;
' ============= PWM Ayarları =========
CCP1CON = %00000000 ' CCP1, PWM mode
PR2 = xxx
T2CON = %00000111 ' TMR2 on, prescaler 1:16 'bu işlemcide PWM Timer2 ile çalışıyor.
CCPR1L = 0
komut satırlarını kullan. PR2 değerini seçeceğin frekansa göre hesaplaman gerekir.
Örnek vermek gerekir ise 10 Khz lik bir PWM sinyali için kullanılacak değerler şunlardır.
PR2=99
T2CON=%00000100  'Bölme oranı 1/1 olarak alındı=
Maksimum Duty değeri 400 olacaktır. %50 duty için 200 değeri kullanılır.
CCP1CON = %00001100  PWM sinyali aktive edildi.
X=DUTY
          CCP1CON.4=X.0
          CCP1CON.5=X.1
          CCPR1L=x>>2
X=DUTY eşitliğinde örnek veriyorum %80 PWM uygulayacak isen 400 * 80/100=320 değerini Duty değeri olarak kullanman gerekecektir.

Gerisini sen hallet artık.

Ete

uzeyir

çok teşekkür ederim ete hocam ben gerisini hallederim . sağolun

Powered by EzPortal