Leonardo Klavye+Led Kod Birleştirme
  • Merhaba arkadaşlar başlıkta yazdığım gibi 2 sini bir kullanmak istiyorum ama birleştiremedim. Arduino.cc de forumdada konu açmıstım yanıt gelmedi burayada yazayim bakmak isteyenler buradan ( https://forum.arduino.cc/index.php?topic=486338.0 ) bakabilir. Link vermek yasaksa kaldırabilirim.

    İlk olarak kodları yazayim. Kodları ben yazmadım bana lazım olan en yakın kodu araştırarak buldum ve kendi yaptığım projeye uygun olarak kodları değiştirdim. Bu programdaki bazı tuşlara ledde eklemek istiyorum.

    #include < Keyboard.h>

    int cPins[] = {2, 3, 4, 5};
    int cPinsNo = 4;
    int rPins[] = {6, 7, 8, 9, 10};
    int rPinsNo = 5;
    int colPrev[4][5] = {0};
    uint8_t buttonCodes[4][5] = {
    {0x61, 0x65, 0x69, 0x76, 0x72},
    {0x62, 0x66, 0x6A, 0x6E, 0x73},
    {0x63, 0x67, 0x6B, 0x70, 0x74},
    {0x64, 0x68, 0x6C, 0x71, 0x75},

    };

    void setup()
    {
    Serial.begin(115200);

    for (int cPin = 0; cPin < cPinsNo; cPin++)
    {
    pinMode(cPins[cPin], OUTPUT);
    digitalWrite(cPins[cPin], HIGH);
    }

    for (int rPin = 0; rPin < rPinsNo; rPin++)
    {
    pinMode(rPins[rPin], INPUT);
    digitalWrite(rPins[rPin], HIGH);
    }

    }

    void loop()
    {



    for (int cPin = 0; cPin < cPinsNo; cPin++)
    {
    digitalWrite(cPins[cPin], LOW);


    for (int rPin = 0; rPin < rPinsNo; rPin++)
    {

    if (digitalRead(rPins[rPin]) == LOW)
    {

    if (colPrev[cPin][rPin] == 0)
    {


    Keyboard.press(buttonCodes[cPin][rPin]);
    delay(150);
    Keyboard.release(buttonCodes[cPin][rPin]);

    colPrev[cPin][rPin] = 1;
    }
    }
    else {


    if (colPrev[cPin][rPin] == 1)
    {


    colPrev[cPin][rPin] = 0;
    }
    }
    }
    digitalWrite(cPins[cPin], HIGH);
    }
    }

    Şimdi ben 6 ledi ekliyorum. Başlangıçta güzel bir efekt verip şekilli yaktırıp söndürüyorum. Void loop kısmında yapıyorum bunları burada ekli değil o kodlar. Sonrasında hepsini söndürüyorumki basınca yansın. Ayrıca şöyle birşeyde yaptım nasıl yaptıgımı unuttum. Tüm ledleri HIGH bırakıp herhangi bir tuşa basınca hepsi sönüyordu. Yapmak istediğim şeyler ise olursa tabi;
    1) Örneğin matrixde 3x5' teki tuşa basınca led 1 yanıp kalıcak tekrar basana kadar.
    2) Üstteki gibi basınca yanıp sönmeye başlayacak tekrar basınca kapanacak.
    Bunlar gibi şeyler.
    Son olarakta şunları ekleyim. Ben led animasyonunu void loop kısmında yapınca delay vermiştim yanıp sönmeler belli olsun diye ama programı çok yavaşlattı 1000 delay verdim. Tuşa nerdeyse 2 sn basılı tutunca algılamaya başladı. Meraktan soruyorum. Ben led animasyonun sürekli devam etmesini istesem nasıl birşey yapmam lazım yani yan program gibi çalışacak ana programdan bağımsız gibi bu extra :D
    Çok oldu kusura bakmayın teşekkürler şimdiden yardımcı olan olamayan herkese.

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.