Close

Rozběh Hvězda trojůhelník

Úvodní stránka Fórum Hardware Arduino Rozběh Hvězda trojůhelník

  • Toto téma obsahuje celkem 5 odpovědí. Do diskuze (3 diskutující) se naposledy zapojil uživatel mildis a poslední změna proběhla před 5 roky.
Aktuálně je na stránce zobrazeno 6 příspěvků - 1. až 6. (celkem z 6)
  • Autor
    Příspěvky
  • #11542
    mildis
    Účastník

    Ahoj všichni, jsem začátečník v pokročilém věku :). Potřeboval bych pomoct z vyladěním programu pro rozběh třífázového motoru hvězda trojůhelník. Mám hotovou kostru funkčního programu , celou aplikaci spouštím jedním tlačítkem . Chtěl bych ale abych mohl aplikaci kdykoli vypnout druhým tlačítkem . Zatím aplikaci vypínám resetovacím tlačítkem přímo na UNU . Mohl by mě někdo pmoct upravit tuto aplikaci ??
    Ještě doplním že používám relový shield ze čtyřma relátkama , to poslední mám zapojeno jakože jen cvaká 🙂

    int A=1;
    void setup()
    {
    pinMode (1,OUTPUT);
    pinMode (2,OUTPUT);
    pinMode (3,OUTPUT);
    pinMode (A0,INPUT_PULLUP);
    pinMode (7,OUTPUT);
    }
    void loop()
    {
    digitalWrite(7,HIGH);
    digitalWrite(1,HIGH);
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    if(digitalRead(A0)==LOW)
    while(A<3)
    {
    digitalWrite (1,LOW);
    digitalWrite (2,LOW);
    delay(5000);
    A++;
    }
    if(A>2)
    {
    digitalWrite (1,LOW);
    digitalWrite (2,HIGH);
    delay(500);
    }
    while(A>2)
    {
    digitalWrite (1,LOW);
    digitalWrite (3,LOW);
    digitalWrite (7,HIGH);
    delay(1000);
    digitalWrite (7,LOW);
    delay(1000);

    }

    }

    #11547
    petan
    Účastník

    Snad to bude pochopitelný. Nezkoušel jsem to, ale mělo by to snad fungovat.
    Samozřejmě, není nutný po celou dobu zapínat digitální výstupy, ale ničemu to nevadí. Doporučuji vyvarovat se použití příkazu delay();

    //Rozběh Y-D
    //Je nutné elektricky a nejlépe i mechanicky blokovat stykače Y a D
    
    #define tlStart A0
    #define tlStop A1
    #define stStart 1
    #define stStar 2
    #define stDelta 3
    
    int systemState; //stav systému 0 - vypnuto, 1 - provoz Y, 2 - přepínání, 3 - provoz D
    long casBehu; //čas po který je motor spuštěn do hvězdy
    
    void setup() {
      pinMode(tlStart, INPUT);  //tlačítko START
      pinMode(tlStop, INPUT);  //tlačítko STOP
      pinMode(stStart, OUTPUT);  //hlavní stykač
      pinMode(stStar, OUTPUT);  //stakač pro hvězdu
      pinMode(stDelta, OUTPUT);  //stakač pro trojuhelník
    }
    
    void loop() {
    
    if (digitalRead(tlStop)){
      //stisknuto tlačítko STOP
      systemState = 0;  //vypnout motor
    }
    
    switch (systemState) {
      case 0:
        //motor je vypnut
        digitalWrite(stStart, LOW); //pro sichr vypnout stykač
        digitalWrite(stStar, LOW);  //pro sichr vypnout stykač
        digitalWrite(stDelta, LOW); //pro sichr vypnout stykač
    
        if (digitalRead(tlStart)){
          systemState = 1;  //zapnout motor
          casBehu = millis(); //uložit čas sepnití motoru
        }
        break;
        
      case 1:
        //motor se rozbíhá zadaný čas v konfiguraci Y
        digitalWrite(stStart, HIGH);  //zapnout hlavní stykač
        digitalWrite(stStar, HIGH);   //zapnout stykač Y
    
        if (millis() >= casBehu + 5000){
          //pokud motor běží už 5s tak přepni stav systému na 2
          systemState = 2;  //další krok
          casBehu = millis(); //uložení aktuálního času
        }
        break;
        
      case 2:
        //před přepnutím do D je nutné vypnout stykač pro běh do Y a počkat
        digitalWrite(stStart, HIGH);  //zapnout hlavní stykač
        digitalWrite(stStar, LOW);  //pro sichr vypnout stykač
    
        if (millis() >= casBehu + 500){
          //pokud od vypnutí stykače uplynulo 0,5s zapni stykač pro běh do trojuhelníka
          systemState = 3;  //další krok
        }
        break;
        
      case 3:
        //provoz do D
        digitalWrite(stStart, HIGH);  //zapnout hlavní stykač
        digitalWrite(stStar, LOW);  //pro sichr vypnout stykač
        break;
    }
    
    }
    #11549
    mildis
    Účastník

    Ahoj, moc děkuji. Odzkoušel jsem to, ale nastává jeden problém, po naprogramování a spušění Una se okamžitě spustí všechny tři relé . Možná dělám někde chybu

    #11559
    RomanB
    Účastník

    Zdravím, použití Arduina pro tuto funkci není moc vhodné, držel bych se raději logiky pomocí relátek a časového relé. Já osobně mám na cirkuli jenom otočný přepínač + ochrany a je to dostačující.

    Pokud se podíváš na schéma spouštění s relátky, uvidíš, že cívky stykačů jsou vzájemně blokovány a to je velmi důležité i v případě použití Arduina. To aby stykače „nešly do sebe“. Dále doporučuji použít nadproudovou ochranu (pomocný kontakt propojit s cívky stykačů) nebo motorový spouštěč a ten může zároveň plnit funkci hlavního vypínače. V logice by měl být také použitý nouzový STOP, ale ne jako vstup do Arduina.

    Funkce delay() bych se nebál a signál pro sepnutí relátek je LOW ne HIGH.

    #11560
    petan
    Účastník

    RomanB má pravdu. Signál pro relé je LOW, ne HIGH. To není moc dobré, pokud Arduino vypadne a nenaběhne. Tak se všechny zapnou? WTF?
    V mým programu by mělo stačit přehodit LOW za HIGH a opačně. Ale tím že relé je sepnuto v log. 0 me nepřijde úplně nejlepší varianta.

    Pokud je rozběh řízen pomocí PLC, tak je často vhodné zapojit první stykač za reléovou logiku (popřípadě bezpečnostní modul) a ostatní spínat pomocí PLC (nahradí v podstatě časový spínač). Stejně jako to je v tomto článku: https://www.mylms.cz/text-rozbeh-hvezda-trojuhelnik-s-modulem-siemens-logo/ Stykač KM1 je ovládán přímo tlačítky (včetně nouzového vypnutí) a zbylé dva stykače (běh do Y a do D) je ovládán z PLC.

    #11561
    mildis
    Účastník

    Kluci děkuji za příspěvky, nemám to na běžné používání . Mám to pouze jako výukovou pomůcku . Ten můj sketch z prvního příspěvku jsem objevil na youtube a funguje neomylně, jen tam bohužel není ta možnost vypnutí druhým tlačítkem . Vypnutí resetem mě nepříjde moc profi :). Nicméně kdybych propojil hlavní napájení přes tepelné relé a jedním relátkem a tlačítkem bych samozřejmě mohl celí systém taky odstavit . Chtěl jsem jen stávajíci program vylepšit o pouhé vypnutí . Přikládám video kde jsem čerpal .
    delta star

Aktuálně je na stránce zobrazeno 6 příspěvků - 1. až 6. (celkem z 6)
  • Pro reakci na toto téma se musíte přihlásit.