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

  • Teasüti

    nagyúr

    válasz Vladi #7083 üzenetére

    Unatkoztam, remélem nem haragszol meg érte ha esetleg ez volna a megoldás! :B
    Nem igazán emlékszem a kapcsolási rajzodra, de a bemenetek alapból Vcc-re vannak húzva és GND-re kapcsolsz, ugye? Meg hardveres prell mentesítést használsz, ugye? Mielőtt interrupt özön keletkezik egy gombnyomásra. :D
    Hosszú idő után ez az első programom, így lehetnek benne hibák. Pár dolgot ki kellett keresnem, mert nem emlékeztem rá.
    Arra figyelj, hogy szünet után azonnal nyissz lesz, ha lejárt a ciklusidő!

    #define vido 19890 // EZ A LENYEG! Ez a vágási idő ciklus. kb 51 az 1 mm-t jelent. millisecundum egyébként.
    unsigned long currentMillis, previousMillis;
    bool piros;

    void nyissz() {
    piros = true;
    }

    void setup() {
    pinMode(3, INPUT); //piros
    pinMode(2, INPUT); //mikro
    pinMode(13, OUTPUT); //led
    pinMode(6, OUTPUT); //relé
    Serial.begin(9600);
    attachInterrupt(digitalPinToInterrupt(2), nyissz, LOW);
    }

    void loop() {
    currentMillis = millis();
    if (currentMillis - previousMillis >= vido || piros) {
    digitalWrite(6, HIGH);
    delay(100);
    digitalWrite(6, LOW);
    Serial.println("Vágtam, kövi.");
    previousMillis = currentMillis;
    piros = false;
    }
    if (digitalRead(2) == LOW) {
    while (digitalRead(2) == LOW);
    }
    }

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

Hirdetés