Mega 2560 - Paso a Paso - Potenciómetro

Buenas tardes! Vengo con una consulta un poco simplona, pero soy nuevo en esto de Arduino y llevo varios días intentando llevar adelante un proyecto que no estaría pudiendo codificar.

El tema es el siguiente, tengo que mover un motor paso a paso (que tiene su respectivo driver y fuente), con un potenciómetro (lineal 10kOhm), el cual tiene 2048 pasos, y tiene que tener una velocidad de entre 0 y 30 RPM. La electrónica ya está toda armada, soldada, atornillada y demás, pero me estoy quemando la cabeza con el código. La placa es una Mega 2560, por si es necesario el dato.

Por cierto, el proyecto es una mecedora automática para mi hijo.

Muchas gracias y aguardo sus comentarios, ojalá me puedan dar una mano por favor.

Por cierto, adjunto el código que estoy utilizando aquí:

#include <Stepper.h>

const int stepsPerRevolution=2048;

Stepper myStepper(stepsPerRevolution,8,10,9,11);

void setup() {

// put your setup code here, to run once:

}

void loop() {

// put your main code here, to run repeatedly:

int sensorReading=analogRead(A0);

int motorSpeed=map(sensorReading,0,1023,0,30);

}

Tengo el Potenciómetro con un extremo a la fuente (5v), el último a GNC, y el del medio a la pata Analógica 0 (A0). El motor está conectado a la placa en las salidas PWM 8, 9, 10 y 11 por medio de un driver, y luego lo alimento externamente con 12v (que es el voltaje que utiliza el motor).

Deberías leer las normas al poner código fuente.

He buscado en google "arduino stepper wokwi" y he encontrado esto por si fuera de tu interés:

Es con un Arduino UNO pero igual te valen los conceptos.
Desconozco porqué te da error dado que no has pegado el mensaje pero intuyo que no tienes incluida la librería "stepper.h" o algo así.
Además en tu código asignas 2 variables tipo "int" pero no dices al motor que tenga que moverse...
Otra cosa es que deberías pegar el esquema que tienes (conexionado) para saber cómo tienes cableado el motor, driver, potenciómetro,...

Saludos.

1 Like

Hola DanX3! Gracias por responder!
Ya mismo edito para explicar el conexionado, ya que no tengo el Proteus como para postear una foto.
La librería Stepper.h está cargada correctamente, y el único mensaje que me tira el panel de Arduino es "ERROR DE COMPILACION", y se cuelga, sólo eso y nada más.
Ese artículo lo estuve viendo, sin embargo trabaja con delays y no por medio de un potenciómetro, que aún no deslumbro como utilizar el comando "MAT".

Gracias nuevamente!

Problema solucionado! Era tan fácil como esto:

#include <Stepper.h>
const int stepsPerRevolution = 2048;  // change this to fit the number of steps per revolution
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
//int stepCount = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorReading = analogRead(A0);
  int motorSpeed = map(sensorReading, 0, 1023, 0, 25);
  Serial.println(motorSpeed);
  if (motorSpeed >> 0) {
    myStepper.setSpeed(motorSpeed);
    myStepper.step(stepsPerRevolution / 100);
    }
}

Muchas gracias por ayudarme!

Aunque aún no entiendo por qué en los códigos ponen esta linea, y en qué puede llegar a afectar:

    myStepper.step(stepsPerRevolution / 100);

Cuando no se entiende algo que se hace?
Se busca la librería Stepper y se lee para que sirve cada comando.
Acá en Adafruit y en inglés tienes una buena explicación

Si seleccionas el traductor en tu navegador podrás leerlo en español.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.