Stránka 1 z 2

Výpadek proudu

Napsal: 12 zář 2020, 21:46
od Andrews13
Ahoj
prosím jak by ste ošetřili případný výpadek proudu u arduina které ovládá servomotor?
"ovladaní dvířek"
Pokud vypadne proud a před vypadkem byl stepper.moveTo(600); tedy nahoře tak po výpadku bude stepper.moveTo(0); a pojede opět nahoru a přetrhne provázek.
stepper.moveTo - nejde vnutit hodnota po výpadku
knihovna <AccelStepper.h> - nemá možnost vnutit hodnotu kroku jen nulovaní

#include <AccelStepper.h>

#define dirPin 2
#define stepPin 3
#define motorInterfaceType 1

AccelStepper stepper = AccelStepper(motorInterfaceType, stepPin, dirPin);

void setup() {

stepper.setMaxSpeed(200);
stepper.setAcceleration(30);
pinMode(10, INPUT);
pinMode(9, OUTPUT);
}

Díky za radu

void loop() {
delay(3000);

if (digitalRead(10)) {
digitalWrite(9, HIGH);
stepper.moveTo(600);
stepper.runToPosition();
}

digitalWrite(9, LOW);

if (!digitalRead(10)) {
digitalWrite(9, HIGH);
stepper.moveTo(0);
stepper.runToPosition();
}

digitalWrite(9, LOW);

}

Re: Výpadek proudu

Napsal: 12 zář 2020, 23:10
od gilhad
Ja bych tam dal nejake senzory dorazu - a prikaz jed, dokud nesepne koncovy detektor.

(alternativne oddelit napajeni motoru a arduina, arduino zalohovane, testovat stav napajeni motoru a az se obnovi, tak dojet, co zbyvalo)

Re: Výpadek proudu

Napsal: 13 zář 2020, 07:16
od Hafajs
Ahoj. U serva se to řešit nemusí, ono ví v jaké je poloze (v první větě píšeš o servu). U krokace bych, jak píše kolega, volil koncak pro nalezení domácí pozice.

Re: Výpadek proudu

Napsal: 13 zář 2020, 17:23
od Andrews13
Hafajs píše:
13 zář 2020, 07:16
Ahoj. U serva se to řešit nemusí, ono ví v jaké je poloze (v první větě píšeš o servu). U krokace bych, jak píše kolega, volil koncak pro nalezení domácí pozice.
Po výpadku proudu v tomto konkrétním kódu o informaci kde je se vynuluje

Re: Výpadek proudu

Napsal: 13 zář 2020, 17:23
od Andrews13
Hafajs píše:
13 zář 2020, 07:16
Ahoj. U serva se to řešit nemusí, ono ví v jaké je poloze (v první větě píšeš o servu). U krokace bych, jak píše kolega, volil koncak pro nalezení domácí pozice.
Koncákům jsem se chtěl vyhnout ;)

Re: Výpadek proudu

Napsal: 13 zář 2020, 17:24
od Andrews13
Jde mi o knihovnu AccelStepper.h zda s ní nekdo nemáte zkušenosti jak ji ovládat. :?:

Re: Výpadek proudu

Napsal: 14 zář 2020, 06:34
od ondraN
A proč pro tak jednoduchou aplikaci nepoužiješ klasickou stapper knihovnu, která je dokumentována víc než dost? Každopádně, po výpadku proudu máš tři možnosti, jak nastavit polohu krokového motoru. První je senzor dorazu (spínač, Halova sonda, optická závora). Druhá je, pokud má motor shield fukci snímání nadproudu, jet na jednu stranu, než se motor zarazí a začne při krocích generovat nadproud (u některých typů motorů to nemusí moc fungovat). Třetí možnost je, udělat určitý počet kroků jedním směrem. Ten počet muí být minimálně na přestavení z jedné polohy do druhé. Motor se prostě zastaví o doraz a kroky "proklouznou".

Re: Výpadek proudu

Napsal: 14 zář 2020, 12:40
od pavel1tu
Záloha Aruina (jen Arduina) třeba tímto ?

Re: Výpadek proudu

Napsal: 14 zář 2020, 20:54
od ondraN
pavel1tu píše:
14 zář 2020, 12:40
Záloha Aruina (jen Arduina) třeba tímto.... ?
A jak se bude řešit situace kdy je třeba arduino restartovat, protože se sekne a nebo se restartne samo díky nějakému ruchu?
Krokový motor je z podstaty zařízení, s nezjistitelným počátečním stavem. Proto tam každý dává něco, aby ten počáteční stav zjistil a zaručil další správnou funkci.

Re: Výpadek proudu

Napsal: 14 zář 2020, 21:43
od Hafajs
Andrews13 píše:
13 zář 2020, 17:23
Hafajs píše:
13 zář 2020, 07:16
Ahoj. U serva se to řešit nemusí, ono ví v jaké je poloze (v první větě píšeš o servu). U krokace bych, jak píše kolega, volil koncak pro nalezení domácí pozice.
Po výpadku proudu v tomto konkrétním kódu o informaci kde je se vynuluje
Nezáleží na kódu. Jestli je tam krokac, musíš nějak zjistit kde je (viz ostatní), jestli servo tak to servo ví, kde je. Ty jen zadáváš požadavek na konečnou pozici a ono se na ni otočí.