Basılı Buton ile tek komut gönderme yardım lütfen.

  • Ben şimdi Bi buton kullanıcam bu butona bir kere bastığımda tek komut okuyacak led yanıcak ve belli bir süre sonra buton basılıysa bile o led sönecek. Taki buton kapatılıp tekrar basılana kadar. .
  • buton okuma ve led yakma prgramları sitemizde var onları deneyerek başlayabilirsin. forumun başında başlangıç konuları tutturulmuş olarak var oradan ılerleyin.
  • Baktım onlara da tam olarak istediğim o değil. Ben Bi butondan önce lojik bir daha sonra lojik 0 yolladığım andan itibaren led yansın ve belirtilen süre sonunda sönsün. Ve bir sonraki tetiklemede yine aynı işlem gerçekleşsin. . Bu durum iki buton ve iki led için yapılacak tabii. .
  • onun için algoritma yazmanız lazım tabi tam aklınızdan geçen hazır kod hiçbir zaman olmaz.
  • program akış kontrolunu tanımladıgınız bir değişkenın statu durumuna gore kontrol sağlayabılırsınız yani statu 1 olunca şunu bekle/yap statu 2 yapınca filanca işi yap statu 3 olunca şunu bekle gibi bir çok durumu kontrol edebilirsiniz sırası ıle. program yazoaaksın işte böyle böyle olacak bu işler.
  • boolean ilkbuton=false;
    boolean ikincibuton=false;
    int ikinci_led_sure=0;
    int ilk_led_sure=0;
    unsigned long oncekiZaman=0;


    void setup() {

    pinMode(3,OUTPUT);
    pinMode(2,INPUT);
    pinMode(5,OUTPUT);
    pinMode(4,INPUT);

    }

    void loop() {

    int tetik_1=digitalRead(2);
    int tetik_2=digitalRead(4);

    if
    (tetik_1==HIGH || tetik_2==HIGH)
    {
    if
    (tetik_1==HIGH && tetik_2==LOW)
    {
    if(digitalRead(2)==HIGH && !ilkbuton)
    {
    ilk_led_sure=1;
    ilkbuton=true;

    }
    else if(digitalRead(2)==LOW)
    {
    ilkbuton=false;
    }


    if(millis()-oncekiZaman>1000)
    {
    if(ilk_led_sure>0)
    {
    digitalWrite(3,HIGH);
    ilk_led_sure--;
    }
    else
    {
    digitalWrite(3,LOW);
    }
    oncekiZaman=millis();
    }


    }



    else
    {
    if
    (tetik_1==LOW && tetik_2==HIGH)
    {

    if(digitalRead(4)==HIGH && !ikincibuton)
    {
    ikinci_led_sure=1;
    ikincibuton=true;

    }
    else if(digitalRead(4)==LOW)
    {
    ikincibuton=false;
    }


    if(millis()-oncekiZaman>1000)
    {
    if(ikinci_led_sure>0)
    {
    digitalWrite(5,HIGH);
    ikinci_led_sure--;
    }
    else
    {
    digitalWrite(5,LOW);
    }
    oncekiZaman=millis();
    }



    }
    }
    }

    else

    {
    digitalWrite(3,LOW);
    digitalWrite(5,LOW);

    }


    }
  • yazdığım program bu;

    biz iki butondan birinden ilk once lojik 1 daha sonra aynı butondan lojik 0 yolladığımız andan itibaren ledin yanıp belirtilen süre sonunda sonme durumunu oluşturabilir miyiz

    bu program üzerinden

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook
Açık kaynak kültürü gereği, çözdüğünüz problemlerin çözümlerini paylaşmayı lütfen unutmayın.