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

Benzer bir uygulamanın pic12f675 örneğini aşağıdaki linkten indirebilirsiniz.

https://drive.google.com/file/d/0B9F3CyDwz-nIa2FLa1V0REVJd3M/view?usp=sharing

Yorumlar

  1. 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 :))

    YanıtlaSil
  2. 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 "

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

    YanıtlaSil

Yorum Gönder

Popüler Yayınlar:

grup priz ara kablo yapımı

elektrikli fırın devre bağlantı şeması

gsm sinyal seviyesi asu dbm nedir

dc motor yönü değiştirme devresi

chrome ile programsız video nasıl indirilir

fan aspiratör motoru dönüş yönü değiştirme