A veces, mantener las cosas simples es lo mejor.
En este tutorial veremos cómo mover un stepper usando solo un Potenciómetro regular.
Utilizaremos un NANO y el controlador Easy para controlar el motor paso a paso NEMA 17.
CONEXIONES
Las conexiones para este tutorial son las siguientes:
Los pines 2 y 3 del NANO están conectados al pasador STEP y DIR del Easy Driver
También conectamos un pin de tierra del NANO al pin Easy Driver GND
El pin A4 del NANO se utiliza para leer el valor analógico del pin del centro del potenciómetro
5V y GND del NANO están conectados a los pines externos del Potenciómetro
Luego alimentamos el Easy Driver, lo que alimenta el Motor paso a paso, utilizando una fuente de alimentación externa de 12v.
EL CÓDIGO
Utilizaremos la biblioteca AccelStepper para controlar la velocidad y la aceleración del motor paso a paso, queremos que el motor se mueva en relación con la rotación del potenciómetro.
Dado que un potenciómetro puede cambiar el valor incluso cuando no lo estamos tocando, estamos moviendo el motor solo si el valor del potenciómetro ha cambiado +6 o -6 desde el valor de lectura anterior, de esa manera evitamos la trepidación del motor paso a paso.
Como siempre, mire el video tutorial para obtener más información.
/* Arduino Stepper Control with Potentiometer
Created by Yvan / https://Brainy-Bits.com
This code is in the public domain...
You can: copy it, use it, modify it, share it or just plain ignore it!
Thx!
*/
#include "AccelStepper.h"
// Library created by Mike McCauley at http://www.airspayce.com/mikem/arduino/AccelStepper/
// AccelStepper Setup
AccelStepper stepper(1, 2, 3); // 1 = Easy Driver interface
// Nano Pin 2 connected to STEP pin of Easy Driver
// Nano Pin 3 connected to DIR pin of Easy Driver
// Variables to store current, previous and move position
int val = 0;
int previous = 0;
int long newval = 0;
void setup() {
stepper.setMaxSpeed(4800); // Set speed fast enough to follow pot rotation
stepper.setAcceleration(4800); // High Acceleration to follow pot rotation
}
void loop() {
val = analogRead(A4); // Read Potentiometer current value
if ((val > previous+6) || (val < previous-6)) { // Check that a move of the pot is at least > or < than 6
newval = map(val, 0, 1023, 0, 1600); // Map value (1600 = 1 stepper shaft rotation)
stepper.runToNewPosition(newval); // Move stepper to new position
previous = val; // save current value into variable previous
}
}
TUTORIAL VIDEO
DESCARGAR
Copie el código de Sketch anterior en su software Arduino IDE para programar su Arduino.
(Biblioteca AccelStepper creada por Mike McCauley en http://www.airspayce.com/mikem/arduino/AccelStepper/ )
Una vez descargado, simplemente extrae el contenido de los archivos zip dentro de tu ” arduino carpeta “libraries”.

