const int motorPins[4][3] = {
{2, 3, 4}, // Motor 1: ENABLE, DIR, STEP
{5, 6, 7}, // Motor 2
{8, 9, 10}, // Motor 3
{11, 12, 13} // Motor 4
};
const int buttonPins[4] = {A1, A2, A3, A4}; // Tasteri
const int dirSwitchPin = A0; // Smer prekidač
const int stepsPerRevolution = 200;
const int stepDelayUs = 2500; // 1 krug = 1 sekunda
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(motorPins[i][0], OUTPUT); // ENABLE
pinMode(motorPins[i][1], OUTPUT); // DIR
pinMode(motorPins[i][2], OUTPUT); // STEP
digitalWrite(motorPins[i][0], LOW); // Omogući drajver
pinMode(buttonPins[i], INPUT_PULLUP); // Tasteri sa pullupom
}
pinMode(dirSwitchPin, INPUT); // Smer prekidač
}
void loop() {
for (int i = 0; i < 4; i++) {
if (digitalRead(buttonPins[i]) == LOW) { // Dugme pritisnuto
bool direction = digitalRead(dirSwitchPin); // Prekidač: HIGH/LOW
digitalWrite(motorPins[i][1], direction); // Postavi smer
for (int step = 0; step < stepsPerRevolution; step++) {
digitalWrite(motorPins[i][2], HIGH);
delayMicroseconds(stepDelayUs);
digitalWrite(motorPins[i][2], LOW);
delayMicroseconds(stepDelayUs);
}
}
}
}