Paso 2: código
Como ha escrito el código optimizado algunos consejos tal vez útil.
-De matriz de señales, el primer índice es el número de pin-z. Restantes 3 valores son valores de la señal.
-Espere valor se utiliza para hacer un retardo después de cada paso.
-Ventana de monitor serie se utiliza para obtener "+" o "-" para aumentar o disminuir la espera valor y le cambio la velocidad del motor.
/*
*************************
*************************
*/
int espera = 7;
const int fases = 3;
const int pinmodes = 2;
const int sigstates = 4;
const int sigcycle = 6;
números de pines [0 = activar, 1 = señal]
const int pernos [fases] [pinmodes] = {{2,5} {3,6}, {4,7}};
valores [0 = activar] [1, 2, 3 = señal]
const int señales [sigcycle] [sigstates] = {{1,1,1,0} {2,1,0,0}, {0,1,0,1}, {1,0,0,1}, {2,0,1,1}, {0,0,1,0}};
inChar Char;
int i, j;
int v;
void setup() {}
para (i = 0; i < fases; i ++) {}
para (j = 0; j < pinmodes; j ++) {}
pinMode (pernos [i] [j], salida);
}
}
Serial.Begin(9600);
}
una y otra vez funciona para siempre la rutina bucle:
void loop() {}
conjunto espera valor
Si (Serial.available()) {}
inChar = (char)Serial.read();
Si (inChar == '-') {}
esperar-=1;
}
Else {}
esperar += 1;
}
Serial.println(Wait);
}
motor de accionamiento
para (i = 0; i < fases; i ++) {}
para (j = 0; j < pinmodes; j ++) {}
Set activar pin
¿digitalWrite (pernos [j] [0], señales [i] [0] == j? LOW:HIGH);
señal de salida
digitalWrite (pernos [j] [1], signals[i][j+1]);
}
una vuelta completa
Delay(Wait);
}
}