Button Kontrolü

Başlatan eyt, 11 Temmuz 2020, 03:40:59

eyt

Merhaba,
1 Button
2 Led

Buttona bir kere basılırsa 1. led 1 sn yandıktan sonra sönsün, eğer buttona 2 kere hızlıca basılırsa 2. led sürekli yansın. 2. led yanarken uzun süre basılırsa 2. ledde sönsün şeklinde nasıl bir yapı oluşturabilirim.

Saygılarımla.

ete

Butona ilk basılış zamana bağlı değil. Basılıp basılmadığı önemli. Dahada önemlisi arkasından bırakılıp yeniden basılmışmı onu zamana bağlı olarak kontrol etmek gerekir.
BASLA:
IF TUS=0 THEN
   WHILE TUS=0:WEND 'tusun bırakıldığını bekliyoruz
   SAYAC=0 'SAYACI SIFIRLADIK
   WHILE TUS=1  
     SAYAC=SAYAC+1:PAUSE 1
     IF SAYAC=300 THEN LED_BIR  'İKİNCİ BASILMADI GİT TEK LEDİ YAK
   WEND '
   GOTO LED_IKI
   PAUSE 100
ENDIF
GOTO BASLA

LED_BIR:
        LED_BIR=1  'LEDİ YAKTIK
        PAUSE 1000
        LED_BIR=0
        GOTO BASLA

LED_IKI:
        LED_IKI=1
        IF TUS=0 THEN
          SAYAC=0
          WHILE TUS=0
            SAYAC=SAYAC+1:PAUSE 1
          WEND
          IF SAYAC<300 THEN
             LED_IKI=0
             GOTO BASLA
          ENDIF
        ENDIF
Aklıma gelen en basit yol bu. Eksiklikleri olabilir. Eksiklik neyse ona uygun geliştirilebilir.

Ete

elektro77

Yukarıdaki fikir bana ilginç geldi ve bir butona birkaç görev atama ile ilgili bir konu olarak arşivimde bulunmasını istedim. Devreyi 12f675 ile simülasyonda yaptım ama istenen gibi çalışmadı.
Ete hocam;
simülasyündan mı kaynaklıdır acaba? Bir bakabilir misiniz? Isıs simülasyonu ektedir.
"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"

ete

Senin ve benim eksikliklerimiz varmış. Programı yeniden toparladım ve "eyt" nin istediği şekle soktum.
İlişikte hem program hemde simulasyon dosyası mevcuttur.
Şema değişmedi program değişti. Benim simulasyonu açamayanlar basit olan devreyi yeniden çizebilirler.

Ete

Powered by EzPortal