3 Aralık 2011 Cumartesi

pic16f628a ile 3 saniye iptal butonu devresi

pic16f628a on off 3 saniye iptal butonu

Bulaşık ve çamaşır makinalarında çalışmayı 3 saniye basıldığında durduran butonu pic basic pro ile yazdığım basit bir kodla gerçekleştirdim. Uygulama çeşitli projelerde kullanılabilir.

Kod satırları arasında çalışmasını açıklamaya çalıştım. Ayrıca kontrol edilen satır iptal edilerek uzun zaman gecikmeleri için kullanılabilir. Tabi hassas bir zamanlama beklememek gerekir.

pic basic pro kodu:

@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_OFF
@ DEVICE pic16F628A, PWRT_On
@ DEVICE pic16F628A, PROTECT_ON
@ DEVICE pic16F628A, MCLR_off
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT
CMCON=7
OPTION_REG.7=0
PORTA=0
TRISA=%11111111
PORTB=0
TRISB=%11111101

elektroinfo VAR Byte

BASLA:

if PORTB.0=1 then portb.1=1 'BAŞLAT butonu motoru çalıştırır.

if PORTB.2=1 then portb.1=0 'DURDUR butonu motoru durdurur.

if portb.3=1 then goto saniye '3 SANİYE butonu saniye etiketine gönderir.

goto basla

saniye:

For elektroinfo=1 TO 5 step 1
Pause 100
'for next döngüsü ile 3 saniye boyunca her 100msde bir
'butonun
durumu kontrol edilir. İsis simulasyonu için step 5 verildi.Step
'değerleri simulasyonda bilgisayar özelliğinize göre değişiklik
gösterebilir.
'Gerçek uygulamada 30 verilmelidir.

'Ayrıca her komut satırının 1ms gecikmeye
'neden olduğu hesaplanmalıdır.


if portb.3=0 then goto basla 'Kontrol edilen pin.

Next

portb.1=0
'eğer buton durumunda bir değişme yoksa bu satıra gelinir ve motor, butona
'sürekli 3
saniye basıldığı için durur...

GoTo BASLA

Aşağıdaki linkten isis simulasyon pbp ve hex kodunu indirebilirsiniz.

3 saniye iptal butonu dosyalar download

alternatif link:

3 saniye iptal butonu dosyalar download

Yazıyı arkadaşlarınızla sosyal ağlarda paylaşın....Kırık download linklerini d.nacikaya@gmail.com adresine bildirebilirsiniz...

3 yorum:

TuncerKarakan dedi ki...

DAVUT hocam buda yeni ögrenciniz olarak benim kendi düşündüğüm birşey denedim işe yarıyor umarım kanaat kullanırsınız :))



BASLA:
IF TUS=0 THEN " eger tuş basılıysa "
PAUSE 3000 " 3 sny bekle "
ENDIF " dewam et "
IF TUS0=0 THEN " eger tus basılıysa "
HIGH ROLE " roleyi çek "
ENDIF " dewam et "
GOTO BASLA
END

buradaki pause degerini değiştirerek istediğimiz kadar süreyi uzatıp kısaltabiliriz.. ben buton vasıtasıyla 3 snyde röle çektirdim ama sonuç olarak hayal gücü sizin :))

TuncerKarakan dedi ki...

hocam buda farklı bir düşünce buda kendi derlemem :)
buradada tuşa bastık ve parmagımızı çektigimiz andan itibaren 3 sny bekler ve röleyi çektirir.
konu 3 sny bekleme yapmak oldugu için böyle bir düşüncede geldi aklıma paylaşayım dedim :))



BASLA:
WHILE TUS0=0 " TUS BASILIYKEN "
PAUSE 3000 " 3 SNY BEKLE "
IF TUS0=1 THEN " TUŞ BASILI DEĞİLSE "
HIGH ROLE " ROLEYİ ÇEK "
ENDIF
WEND
GOTO BASLA
END


" bu endıf ve wend komutları döngü içerisindeyken tuşun hıgh olma durumu sadece
bekleme yaptıkdan sonra olur lakin wend komutu if baslangıc komutunun önüne alınırsa
sürekli röle çekili halde kalır.Bu nedenle döngüleri iyi ayarlamak gerekir "

davut naci kaya dedi ki...

Farklı bakış açıları için teşekkürler Tuncer katkılarının devamını beklerim.

Yorum Gönder | Feed

Yorum Gönder

Yorum yapabilmek için google gmail hesabınızın olması gerekmektedir. Bazen yorum gönderme hatası olabilir. Tekrar yorum gönder butonuna bastığınızda yorumunuz bize ulaşacaktır. Lütfen yorumlarınızda Türkçemizi güzel kullanınız...



 

elektroinfo.blogspot.com Copyright © 2012 Tema:PREMIUM BLOGGER DASHBOARD Tasarım: SAER Çeviri ve Düzenleme: DAVUT NACİ KAYA google+ plus