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 7 roky a 5 měsíci.
-
AutorPříspěvky
-
21.5.2017 v 7:27 #11542mildisÚč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);}
}
21.5.2017 v 23:29 #11547petanÚčastníkSnad 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; } }
22.5.2017 v 6:23 #11549mildisÚčastníkAhoj, 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
22.5.2017 v 18:30 #11559RomanBÚčastníkZdraví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.
22.5.2017 v 18:55 #11560petanÚčastníkRomanB 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.
22.5.2017 v 19:18 #11561mildisÚčastníkKluci 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 -
AutorPříspěvky
- Pro reakci na toto téma se musíte přihlásit.