Hirdetés

Keresés

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

  • Vladi

    nagyúr

    válasz Janos250 #6414 üzenetére

    Nah mutatom hol tartok:

    Van egy kis projektem, egy problémát kellene megoldani. A hardver már nagyjából összeállt, sok segítséggel, de már csak 1 alkatrészt várok kínából.

    Egy kést akarok szabályozni. Szabályos időközönként kell vágni vele. Egy mágnestekerccsel. Viszont kell 2 extra funkció: egy pause gomb, meg egy azonnali vágó gomb.

    Arduinon fut a visszaszámlálás. van 2 gomb, azt kívülről táplálom be 12 volttal és opto izolátor lappal leválasztom. Meg van egy kommersz relé modulom. Ez is optoizolált.

    A kóddal szöszmötölök, de a gombokat nem értem, hogy tudnám beletenni. Eddig ennyire jutottam:

    SimpleTimer segítségével megírtam:

    #include <SimpleTimer.h>
    #define RELE 6
    #define pause 8
    #define nullazo 9

    SimpleTimer szamlalo;


    void setup()
    {
    Serial.begin(9600);
    pinMode(RELE, OUTPUT);
    pinMode(pausegomb, INPUT);
    pinMode(nullazo, INPUT);
    szamlalo.setInterval(20000, repeatMe);
    }

    void repeatMe()
    {
    digitalWrite(RELE,HIGH);
    delay(200);
    digitalWrite(RELE,LOW);
    Serial.println("Vágtam, kövi lap.");
    }

    void loop() {
    szamlalo.run();
    }

    Ugyanez Timer Objecttel: (ebbe ugye delayt nem lehet használni. )

    #include "TimerObject.h"
    #define RELE 6
    #define pause 8
    #define nullazo 9

    TimerObject *szamlalo = new TimerObject(20000); // a fő számláló
    TimerObject *kapcs = new TimerObject(500);//második számláló, mivel delay-t nem lehet használni

    void setup()
    {
    Serial.begin(9600);
    szamlalo->setOnTimer(&vagas);
    szamlalo->Start();
    kapcs->setOnTimer(&kapcsolas);//nem indul el, csak a relé visszakapcsolásához kell
    }

    void vagas()
    {
    digitalWrite(RELE,HIGH);
    kapcs->Start();//indul a második számláló
    }

    void kapcsolas()
    {
    digitalWrite(RELE,LOW);
    kapcs->Stop();//eddig kellett, amíg visszaáll a relé
    }

    void loop()
    {
    szamlalo->Update();
    }

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