PİC İLE DİRENC KONTROL

Başlatan yusufrov, 06 Ekim 2015, 23:32:12

yusufrov

#15
ANADONGU:
HIGH LED
ADCIN 0,HAM
BAK: IF ADCON0.2=1 THEN BAK
LCDOUT $FE,1,"HAM=",#HAM
HAM=HAM+1
volt=(ham*/1250)/100
MVOLT=VOLT//10
MVOLT=VOLT MOD 10
VOLT = VOLT/10
LCDOUT$FE,$C0,"VOLT=",#VOLT,",",#MVOLT

IF VOLT>4 THEN KESME4
IF VOLT>3 THEN KESME3
IF VOLT>2 THEN KESME2
IF VOLT>1 THEN KESME1
IF VOLT>0 THEN KESME0

KESME0:
LOW LED
PAUSE 2
GOTO ANADONGU

osc 20mhz

yukarıdaki yazılımı pic in işlemesi ne kadar surer sizce.

yaptıgım yazılımda cıkış sıfır yapıp tekrar anadongudan kontrol ediyor anlayacagınız hızlı hızlı kontrol edip açıp acıp kapatmasını istiyorum.

fakat benim yazılımda pause olmamasına ragmen istedigim sıklıkta sonup yanmıyor.

birde lcd yanıp,yanıp sonuyor yazılar.
program ETE hocamızın egitim programının ayndır.
ben programda degişiklikler yaptıktan sonra ekran yanıp sonmeye başladı.

ete

Bir Led in yandığını görebilmen için onun 30-50 ms civarında yanık kalması gerekir.
Senin programda led in yanması ile sönmesi arasındaki süre belkide 1 ms bile değildir o nedenle ledi hep sönük görürsün.

Ete

yusufrov

ETE hocam bu programı tamamen sizden gordugum ve sitenizden aldıgım yardımlarla yaptım onun için yardımı olan herkese cok teşekkur ederim.

Ayrıca Arkadaşlar;
Program sema ve data bilgileri ekte ben ledin cok seri bir şekile yanıp sonmesini umuyordum fakat su an cok yavaş acaba nerede yanlış yaptığım konusunda yardımınızı rica ederim.

ete

Yanlışın led'e verilen yanma süresinin çok uzun olmasında muhtemelen.
Öncelikle şunu belirteyim. Aşağıdaki satırların yerine tek satır yazabilirsin.
'IF PORTA.5=1 THEN GOSUB KESME
'IF PORTA.4=1 THEN GOSUB KESME
'IF PORTA.3=1 THEN GOSUB KESME
'IF PORTA.2=1 THEN GOSUB KESME
'IF PORTA.1=1 THEN GOSUB KESME
'IF PORTA.0=1 THEN GOSUB KESME

yerine

IF (PORTA & %00111111)>0 THEN GOSUB KESME

Benzer mantık PORTD içinde kurulabilir ama her nedense PORTD pinlerinin set olma durumuna göre Pause süreleride değişiyor.
Mesela;
BASLA satırından hemen sonra PAUSE 500 deyip 500 ms lik bir gecikme koydun.  (LED=0 ve bu konumda 500 ms bekledi )
Ardından LED=1 ve Transistor=1 yapıp PORTA pinlerine bakıyorsun diyelimki birisi 1 ve KESME etiketine gittin. Gittin ama unutmaki GOSUB ile gittin. Bu şu anlama geliyor oradan mutlaka RETURN ile dönmelisin. Yoksa bir müddet sonra program STACK taşmasından dolayı kilitlenir kalır. Sende göremedim RETURN'u

Her neyse devam edelim KESME etiketine geldin.
- PORTD.0=0 olduğu için bir sonraki satıra geçtin. Burada PAUSE 500 var o halde LED=0 ve 500 ms bekledin. (etti 1000 ms )
- PORTD.1=0 olduğu için bir sonraki satıra geçtin. Burada PAUSE 500 var o halde LED=0 ve 500 daha bekledin etti 1500 ms.
- PORTD.2=0 olduğu için bir sonraki satıra geçtin. Burada Pause 500 var ve LED=0 ve 500 daha bekledin etti 2000 ms (2sn)
- PORTD.3=0 olduğu için bir sonraki satıra geçtin ve burada Pause 500 var ve LED=0 ve 500 daha bekledin etti 2500 ms
Buraya kadar led 500 ms yanık kaldı fakat 2000 ms sönük kalmış oldu. Sorun burada. Şayet led 500 ms yanık ve 500 ms sönük kalsa hiç sorun olmaz bence.
O nedenle PORT D için kurduğun mantığı düzelt bence.
Ayrıca KESME etiketinden dönme işini GOTO BASLA ile değil RETURN ile yapman gerek. Yada BASLA etiketinden KESME etiketine gelme işini GOSUB ile değil GOTO KESME şeklinde yap dönerkende GOTO BASLA ile dön.

Ete

yusufrov

Ete hocam hakkınızı helal edin ben yanlış dosya yuklemişim fakat oda iyi oldu ondaki takıldıgım butun noktaları açıklamışınız fakat benim asıl anlam veremediğim program dosyası  ekte pause 30 fakat genede cok yavaş çalışıyor.

Hem frekansı kontrol edip hemde potansiyometre ile voltaj ayarı yaptım sizin egitim örneginizin uzerinden degişiklik yaptım.

yusufrov


ete

Yoldayım. Yarın bakarım.
Ete

ete

Programda sorun gözükmüyor. Anlamak için denemek lazım. Ama yolladığın dosyalar simulasyon 8 versiyona ait kullanmadığım için onları açamıyorum.
Ancak şöyle bir bakınca Count komutu için parametre 1000 ms verilmiş. Bu demektir ki program her döngüde en az 1 sn bekleyerek çalışmaktadır. Bunuda simulasyonda izliyorsan bu sana bir kaç saniye gibi gelir. Gerçek devrede dene.

Ete

Powered by EzPortal