Citat:
SASA M.:
Vreteno je na racunu deklarisano kao: trapezno vreteno T8 korak 8mm
ne moras da meris, T8 ima 2mm pitch, pogledas dal ima 1 start ili 4 starta i to je to, ako ima 4 starta to je 8mm lead
elem, 8mm lead znaci da za jednu rotaciju imas pomak od 8mm, ako si spojio ms1 i ms2 na gnd znaci imas 1/8 mikrosteping, ako pretpostavim da si uzeo jeftim 200steps/rev motor to znaci 1600 step/revolution ti je drajver -> sraf, obzirom da je 8mm pomeraj za revolution znaci imas 200 steps/mm dakle
Citat:
SASA M.:
float PStepsPer = 300;
treba da bude
Code:
float PStepsPer = 200;
dalje, max brzina ne bi trebalo da ide preko 30.. 10-20 su neke safe vrednosti mada zavisi od mnogo cega, probas pa vidis... dizes brzinu dok ne vidis da krece da preskace, ako preskace znaci pretero si :D ..
Citat:
SASA M.:
Ubrzanje koliko vidim ne utice na problem, koliko sam mogao da zapazim on odradi to sto treba, i mnogo mi se svidja. :)
smanji na 0.5 pa vidi kako ne utice :D ... utice do jaja nego ne primecujes :)
Citat:
SASA M.:
Naravno ovako zadati put u milimetrima koje treba da predje nemaju sad veze sa vezom
pa kad si stavio pogresan stepespermm :D .. stavi 200steps/mm i bice tacno :) (pod uslovom da ti je to 200 steps/revolution iliti 1.8 stepen stepper)
Citat:
SASA M.:
, ali ako je snaga i brzina ok, onda cu menjati tu vrednost. Posle cu videti da stavim ove hall senzore, nisam jos to probao. Kao i u mom primeru, tako i ovde ako npr nestane struje program krece iz pocetka, a pokretni deo je ko zna gde, pa mi neki home polozaj sigurno treba.
obavezno senzore ako nista za homing, ali zgodno imati na obe strane kao kontrolu
sad ja ne znam ovaj lib (ja realno ne trosim arduino), verovatno zoki zna, treba videti da li ima neka fora da "prekine" move na neki event tako da mozes da vezes hal na triger koji ce da onda prekine put pa mu onda kazes mrdaj se x mm ali stani ako se desi trigger... evo sad sam pogledao dokumentaciju:
https://raw.githubusercontent....epper/master/Documentation.pdf i podrzava non blocking moves... ima i posebna funkcija za homing
Code:
moveToHomeInSteps()
moveToHomeInRevolutions()
moveToHomeInMillimeters()
npr:
Code:
// home the motor by moving until the homing sensor is activated, then set the
// position to zero, with units in millimeters
// Enter: directionTowardHome = 1 to move in a positive direction, -1 to move in
// a negative directions
// speedInMillimetersPerSecond = speed to accelerate up to while moving
// toward home, units in millimeters/second
// maxDistanceToMoveInMillimeters = unsigned maximum distance to move
// toward home before giving up
// homeSwitchPin = pin number of the home switch, switch should be
// configured to go low when at home
// Exit: true returned if successful, else false
bool moveToHomeInMillimeters(long directionTowardHome, float speedInMillimetersPerSecond, long maxDistanceToMoveInMillimeters, int homeLimitSwitchPin);
pogledaj pdf :)