Hola a todos estoy probando un motor a pasos nema 23 con un potenciómetro y un push button para el cambio de dirección, uso el driver dm542.
al momento encender el arduino empieza a girar con mayor o menor velocidad el motor de acuerdo al moviemiento del potenciómetro, nada fuera de lo común, pero como estoy usando mi proyecto cerca de un motor de 120V AC con un variador de velocidad el cual se enciende mediante un pedal y va aumentando su velocidad mientras se matiene presionado el pedal, y al momento de encender mi arduino con mi motor a pasos el motor empieza a trabarse y forzarse cada vez que presiono el pedal, y me dio por curiosidad saber que es lo que le está afectando al arduino, si es la frecuencia que se mete al arduino o al boton de cambio de dirección, ya probe primero desconectando el boton de direccion de mi protoboard pero seguia ocurriendo lo mismo, solamente dejaba de afectar si le quitaba el potenciometro y dejaba al motor sin control pero ese no es el caso, es muy curioso y no tengo idea que pueda ser, si me pueden dar sus opiniones se los agradeceria mucho.
Como pueden ver el codigo no es gran cosa, la gran interrogante es lo que le pasa los botones o las entradas de arduino cuando se enciende el motor de CA esa es mi gran duda, pero de todas formas les comparto el codigo.
#define reverseSwitch 2
#define driverPUL 9
#define driverDIR 8
int driverENA=6;
#define limitSwitch A4
int spd=A0;
volatile boolean dir=LOW;
long pd=A0;
void setup()
{
pinMode(limitSwitch, INPUT);
pinMode(driverENA, OUTPUT);
digitalWrite(driverENA, HIGH);
pinMode(reverseSwitch, INPUT);
pinMode(driverPUL, OUTPUT);
pinMode(driverDIR, OUTPUT);
attachInterrupt(digitalPinToInterrupt(reverseSwitch), dirmotor, RISING);
}
void dirmotor(){
dir=!dir;
}
void loop()
{
if(digitalRead(limitSwitch)==LOW){
pd=map((analogRead(spd)),0,1072,5000,50);
digitalWrite(driverDIR, dir);
digitalWrite(driverPUL, HIGH);
delayMicroseconds(pd);
digitalWrite(driverPUL, LOW);
delayMicroseconds(pd);
}
} ```