avatar_elektro77

12F683 butonlu pwm led yakma sorunu

Başlatan elektro77, 07 Haziran 2019, 10:13:44

elektro77

aşagıdaki yazılımda ve devrede 12f683 butun kontrollü pwm devresinin boşta kalan pinlerine 3 adet led bağladım. bu ledler pwm in belli seviyelerini görsel açıdan göstermek için konuldu.
fakat gp3/mclr pinine bağlı olan ledi yakamıyorum. gp0 pinine bağlı olan ise gp1 yandığında sönüyor. sorunun nerelerden kaynaklandıği konusunda yardımcı olurmusunuz.
@ DEVICE PIC12F683
@ DEVICE PIC12F683, FCMEN_OFF
@ DEVICE PIC12F683, IESO_OFF
@ DEVICE PIC12F683, WDT_ON
@ DEVICE PIC12F683, BOD_ON
@ DEVICE PIC12F683, PWRT_ON
@ DEVICE PIC12F683, PROTECT_OFF
@ DEVICE PIC12F683, MCLR_OFF
@ DEVICE PIC12F683, INTRC_OSC_NOCLKOUT
@ DEVICE PIC12F683, BOD_ON

DEFINE OSC 4
OSCCON=%01100001
CMCON0 = 7
ADCON0=%10000000

DEFINE ADC_BITS 10
DEFINE ADC_CLOCK 1
DEFINE ADC_SAMPLEUS 30

' ============= PWM Ayarları =========
CCP1CON = %00001100 'CCP1, PWM mode
'PR2 = 249          'max Duty=1000 olacak %50 için 500 oluyor.249' 1 khz için
PR2 = 199          'max Duty=800 olacak %50 için 400 oluyor.199'  5 khz için
'PR2 = 49          'max Duty=200 olacak %50 için 100 oluyor.49' 5 khz için
T2CON = %00000101  'TMR2 on, prescaler(bölme oranı) 1:4 'bu işlemcide PWM Timer2 ile çalışıyor.
CCPR1L = 0

GPIO=0
TRISIO= %00110000
ANSEL = %01110001
WPU=0
'--------------------------------------------------
DUTY  VAR WORD
X    var word
artir var GPIO.4  'Arttırma
azalt var GPIO.5  'Azaltma 
kademe1led var GPIO.0 
kademe2led var GPIO.1 
kademe3led var GPIO.3 
PAUSE 300
'---------------------------------------------------

DUTY=200            'başlangıctaki pwm değeri. değiştirilebilir.

BASLA:
IF DUTY>100 THEN KADEME1LED=1 
IF DUTY>300 THEN KADEME2LED=1 
IF DUTY>400 THEN KADEME3LED=1

if ARTIR=1 and AZALT=0 then  
DUTY=DUTY+10
IF DUTY=810 THEN DUTY=800
endif 

if Azalt=1 and Artir=0 then  
DUTY=DUTY-10
IF DUTY=190 THEN DUTY=200
endif

PAUSE 5  'DEĞİŞİM HIZI.Bu değerle oynayarak pwm değişim hızı ayarlanır.

IF X=DUTY THEN BASLA
X=DUTY
CCP1CON.4=X.0
CCP1CON.5=X.1
CCPR1L=x>>2
goto basla
end

"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#1
bu mesaj tarafımdan silinmiştir.

elektro77

butonların yerini değiştirerek sorunu çözdüm. teşekkür ederim MB_77.
fakat aşağıdaki devrede triyağı kesime sokamıyorum. başlangıçta kesimde. Artır tuşuna bir kere basıp pwm i yükseltince iletime geçiyor. Fakat kesime geçmiyor. Dim yapmıyor. sebebi ne olabilir acaba.

"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#3
bu mesaj tarafımdan silinmiştir.

elektro77

#4
peki pwm kullanarak (şemadaki gibi) bir triağı nasıl bir devre ile dimleyebilirim. motor hız konrolünü nasıl yapabilirim. Veya 220volt ac motor hız kontrolünü yine pwm ile triak harici ne ile yapabilirim. Devre boyutu açısından alanım çok dar. ve kullandığım ac motor bir spiralin motoru. Ve yine devrenin tuş kontrollü olması şart.
"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

MB_77

#5
bu mesaj tarafımdan silinmiştir.

elektro77

uzun uğraşlardan sonra aşağıdaki devreyi tasarladım.Umduğum gibi olmasa da gerektiği gibi çalışıyor.

"Eğer bir konuyu öğrenmek istiyorsan o konunun öğretmeni ol; daha iyi öğrenmek istiyorsan o konuda bir kitap yaz; daha da iyi öğrenmek istiyorsan yazdığın kitabi oku"

Powered by EzPortal