Hirdetés

Új hozzászólás Aktív témák

  • lanszelot

    addikt

    válasz lanszelot #20315 üzenetére

    Először is nagyon szépen köszönöm a segítséget mindenkinek :R

    Elfelejtem, hogy van nekem egy Arduino Mega 2560, amit a készlethez kaptam :B
    Azal azonnal meg lett a probléma.

    Digispark nem tudja kezelni a Rotary Encoder-t.
    51% memoria használat van, tehát nem az a gond.
    Ugyanaz a program Mega-n tökéletesen fut.
    Digispark-on a fent említett problémát dobja.
    Annyi a Digispark-on a változtatás, hogy a pin-eket módosítom így:
    #define led 0
    #define CLK 2
    #define DT 1

    Itt a program ami Mega-n gond nélkül működik:
    /*LED input*/
    #define led 13

    /*rotary encoder input*/
    // Rotary Encoder Inputs
    #define CLK 2
    #define DT 3


    int counter = 0;
    int currentStateCLK;
    int lastStateCLK;
    int keses = 1000;
    String currentDir ="";
    uint32_t lastms= 0;

    void teker(){
    if (millis() - lastms > 200)
    {

    Serial.print("Direction: ");
    Serial.print(currentDir);
    Serial.print(" | Counter: ");
    Serial.println(counter);
    Serial.print(" | késés: ");
    Serial.println(keses);

    lastms = millis();
    if(digitalRead(DT) == currentStateCLK){
    keses = keses+100;
    }else{
    if(keses > 100){
    keses = keses-100;
    }
    }
    // Remember last CLK state
    lastStateCLK = currentStateCLK;
    }
    }

    void setup() {

    // Set encoder pins as inputs
    pinMode(CLK,INPUT_PULLUP);
    pinMode(DT,INPUT_PULLUP);

    /*LED pin output*/
    pinMode (led, OUTPUT);

    // Setup Serial Monitor
    Serial.begin(9600);

    // Read the initial state of CLK
    lastStateCLK = digitalRead(CLK);

    /* meghívjuk az fv.-t ha LOW-ra húzod a pin-t */
    attachInterrupt(0, teker, CHANGE);
    }

    void loop() {

    // Read the current state of CLK
    currentStateCLK = digitalRead(CLK);

    /*red led on off*/
    digitalWrite(led, HIGH);
    delay(keses);
    digitalWrite(led, LOW);
    delay(keses);

    }

Új hozzászólás Aktív témák