// Definir los pines para STEP, DIR y el pin analógico del potenciómetro const int stepPin = 7; const int dirPin = 6; const int potPin = 28; // Variables para controlar la velocidad del motor y la posición del potenciómetro int motorSpeed = 3000; // Velocidad más rápida int lastPotValue = 0; // Último valor del potenciómetro leído void setup() { // Configurar los pines como salida pinMode(stepPin, OUTPUT); pinMode(dirPin, OUTPUT); // Mover el motor a la posición inicial (punto cero) moveStepper(0); } void loop() { // Leer el valor del potenciómetro int potValue = analogRead(potPin); // Determinar la cantidad de pasos a mover int stepsToMove = abs(potValue - lastPotValue); // Mover el motor en la dirección correspondiente si el potenciómetro se ajusta if (stepsToMove > 0) { digitalWrite(dirPin, potValue > lastPotValue ? HIGH : LOW); // Determinar la dirección del movimiento moveStepper(stepsToMove); } // Actualizar el último valor del potenciómetro leído lastPotValue = potValue; // Esperar un breve período de tiempo antes de la próxima lectura delay(100); } void moveStepper(int steps) { // Generar los pasos para mover el motor a la posición deseada for (int i = 0; i < steps; i++) { digitalWrite(stepPin, HIGH); delayMicroseconds(motorSpeed); digitalWrite(stepPin, LOW); delayMicroseconds(motorSpeed); } }