Buton Sorunu 16f84a

Başlatan Asdemir, 21 Aralık 2015, 06:58:02

Asdemir

Merhaba herkese, ödevimi yaparken karşılaşıp aşamadığım bi sorunum var sizlere sormak istedim. Öncelikle devrenin çalışma mantığından bahsedeyim LDR nin üzeri kapatıldığında evdeki ışıkları yakacak o sırada bi motor ileri çalışacak perdeleri kapatmak için, atıyorum iki saniye kadar sonra motor duracak ama evin ışıkları yanlaya  devam edecek çünkü elimiz hala ldrnin üzerinde. elimizi çekince de evin ışıklandırması sönecek bu sefer motoru ters yönde 2 saniye çalıştırıp durduracagım, bu işlemi döngü halinde devam ettirecegim.

Ama ne yazıkki bir sürü uğraşlar sonucu beceremedim ne yaptıysam yapayım elim ldrnin üzerindeyken ışıklandırma ile motor aynı anda çalışıyor ama motor verilen süre sonunda durmuyor aşşağıda yazdıgım yazılımla daha iyi anlabilirim sanırım

ldr=1 elimin ldrnin üzerinde oldugu durum, yani direnç değerinin düşüp bağlı oldugu bite gerilim geldiği durum.



http://hizliresim.com/65RG2k


http://hizliresim.com/VvpRVR

gördüğünüz gibi rb0 ile rb2 aynı anda yanıyor buton basılıyken bir türlü çözemedim üstadlar bi yardımcı olursanız çok sevinirim...


Maxim

öncelikle 16F84A dan kurtulman lazım

analog girişli bir pic daha mantıklı olacaktır
zira ldr çıkışı tam sıfır veya tam 5v olmaz
ışığa göre değişeceğinden dolayı arada kararsız durumlar karşına çıkar

örnek 0-5 gerilim okuma yaparsan ldr çıkışından
dersinki : voltaj 1 ve altındaysa 0 kabul et, voltaj 3.5 ve üzeri ise 1 kabul et ... gibi..

bu arada kodlarını resim olarak verme, kod tag içine al.

son olarak kodunda mantık hatası var
if ldr=1 goto ldr_on demişsin
sonra ldr_on dan goto ldr_off demişsin?
yani hem on - hem off hepsi çalışıyor sürekli

şöyle yap
KONTROL:
IF LDR=1 THEN GOSUB LDR_ON
IF LDR=0 THEN GOSUB LDR_OFF
GOTO KONTROL

LDR_ON:
FDFD
FDF
FD
RETURN

LDR_OFF:
GFGG
GHGH
GH
RETURN


mehmet

Kapalı - açık konumu için bir de kapan
koymak lazım. Yoksa bir konumda motor
devamlı çalışacak.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

apsis

Kristal kondansatörlerini 22pF yap uygulamda sıkıntı olur :)
"Makineye Beyin" MEKATRONİK

Asdemir

Alıntı yapılan: mehmet - 21 Aralık 2015, 10:02:01
Kapalı - açık konumu için bir de kapan
koymak lazım. Yoksa bir konumda motor
devamlı çalışacak.

hocam nasıl yaparım acaba dediğinizi

mehmet

Deneyin bakalım;
DEFINE OSC 4

PORTA = 0
PORTB = 0
TRISB = 0
TRISA = 1

'diğer ayarlar....

SYMBOL LDR = PORTA.0
SYMBOL LED = PORTB.0
SYMBOL M_AC = PORTB.1
SYMBOL M_KAPA = PORTB.2


WHILE 1

IF LDR = 1 THEN
LED = 1
M_AC = 1
M_KAPA = 0
PAUSE 2000
M_AC = 0
M_KAPA = 0
WHİLE LDR = 1
WEND
END IF

IF LDR = 0 THEN
M_AC = 1
M_KAPA = 1
PAUSE 2000
M_AC = 0
M_KAPA = 0
LED = 0
WHİLE LDR = 0
WEND
END IF

WEND

END.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

Asdemir

Alıntı yapılan: mehmet - 23 Aralık 2015, 02:17:16
Deneyin bakalım;
DEFINE OSC 4

PORTA = 0
PORTB = 0
TRISB = 0
TRISA = 1

'diğer ayarlar....

SYMBOL LDR = PORTA.0
SYMBOL LED = PORTB.0
SYMBOL M_AC = PORTB.1
SYMBOL M_KAPA = PORTB.2


WHILE 1

IF LDR = 1 THEN
LED = 1
M_AC = 1
M_KAPA = 0
PAUSE 2000
M_AC = 0
M_KAPA = 0
WHİLE LDR = 1
WEND
END IF

IF LDR = 0 THEN
M_AC = 1
M_KAPA = 1
PAUSE 2000
M_AC = 0
M_KAPA = 0
LED = 0
WHİLE LDR = 0
WEND
END IF

WEND

END.



Hocam allah sizden razı olsun, ufak bir kaç hata vardı onları da ben düzelttim. Gerçekten çok teşekkür ederim, bu konuyu açıp size sorduğumdan beri ben de hala deniyordum. Yani ödevimi size yaptırdığımı düşünmenizi istemem gerçekten uğraşıp yapamamıştım. Çok sağolun, iyi akşamlar...

harti212

Araya Döngü koymazsanız bir sonraki komuta mikrosaniye hızında geçtiği için, önce ne kadar döngü kaç saniye ediyor onu hesaplamalısınız.