Soldered Support:
It depends on what you want to do after. For example, you can call the step function in void setup instead of loop (void setup only runs once, void loop runs continuously).
Or, create a new function within loop that executes the function only once, for example:
int dir = 7; // dir pin = D7
int stepper = 6; // stepper pin = D6
boolean boolStop = false;
void setup() {
pinMode(dir, OUTPUT);
pinMode(stepper, OUTPUT);
}
//funkcija koja pokreće stepper
void step(boolean smjer,int brojKoraka){
digitalWrite(dir,smjer);
delay(50);
for(int i=0;i<brojKoraka;i++){
digitalWrite(stepper, HIGH);
delayMicroseconds(100); //ovaj delay ne diraj
digitalWrite(stepper, LOW);
delayMicroseconds(100);
}
}
void loop(){
if(boolStop == false){
step(true, 200);
//now change bool to true so the condition above won't execute again
boolStop = true;
}
}
Original message (Croatian)
Ovisi što planiraš nakon toga raditi. Npr., možeš pozvati funkciju step u void setup umjetu u loop-u (void setup se izvršava samo jednom, void loop beskonačno).
ili,
napraviti novu funkciju unutar loop-a koji će izvršiti funkciju samo jednom, npr.
int dir = 7; // dir pin = D7
int stepper = 6; // stepper pin = D6
boolean boolStop = false;
void setup() {
pinMode(dir, OUTPUT);
pinMode(stepper, OUTPUT);
}
//funkcija koja pokreće stepper
void step(boolean smjer,int brojKoraka){
digitalWrite(dir,smjer);
delay(50);
for(int i=0;i<brojKoraka;i++){
digitalWrite(stepper, HIGH);
delayMicroseconds(100); //ovaj delay ne diraj
digitalWrite(stepper, LOW);
delayMicroseconds(100);
}
}
void loop(){
if( boolStop == false){
step(t[address removed]); //ili što već žališ
//sada promjeniš bool u true kako se više ne bi izvodio uvjet gore
boolStop = true;
}
}