Saludos!
Estoy trabajando con un motor nema17 , un driver drv8825 y un Interruptor táctil.
El drv8825 tiene un pin de habilitar que es donde se enfoca mi problema, ya que quiero deshabilitar ese pin a la hora de terminar los pasos asignados al motor para que no se caliente y se pueda girar con los dedos; pero si coloco disableOutputs después de la tarea no se ejecutan los pasos porque el pin asignado para habilitar y deshabilitar queda en un voltaje medio, no 5 voltios, ni 0 voltios, queda entre 2 y 3 voltios, pero si lo hago con otro código basado en digitalWrite para todos los pines si funciona bien.
#include <AccelStepper.h>
AccelStepper motor1(1, 50, 48);
int pos = 2000;
int pos2 = -2000;
int contador1 = 0;
void setup() {
Serial.begin(9600);
pinMode (51, INPUT); //touch1
motor1.setEnablePin(52);
//motor1.setPinsInverted(false, false, false);
motor1.setMaxSpeed(1000);
motor1.setAcceleration(500);
}
void loop() {
int tou1 = digitalRead(51);
if (tou1 == 0) {
contador1++;
if (contador1 == 2) {
contador1 = 0;
}
while (!digitalRead(51));
}
switch (contador1) {
case 0:
if (motor1.distanceToGo() == 0)
{
motor1.enableOutputs();
motor1.moveTo(pos);
}
motor1.run();
break;
case 1:
if (motor1.distanceToGo() == 0)
{
motor1.enableOutputs();
motor1.moveTo(pos2);
}
motor1.run();
break;
}
}