Montaje de un deslizador movido por un motor paso a paso que se controla con un potenciómetro deslizante (slide). La idea esta tomada de Ivan en / https://Brainy-Bits.com. El montaje es sencillo, tal vez lo más interesante sean los códigos por lo que se incluyen también.

Video en acción
/*
Datos: pitch correa 2.032 mm;
rueda 18T = 18 x pitch = 36.576 mm/vuelta
Con driver en HHH 1/16 step.
Para una vuelta 200 x 16 = 3200 pasos
recorrido lineal de 27 cm suponen 7,381 vueltas
de rueda 18T, es decir,
7,381 x 3200 = 23619 pasos de de motor PAP
*/
#include <AccelStepper.h>
AccelStepper stepper(AccelStepper::DRIVER, 10, 11);
//Para el driver en el PORT_1
int val = 0;
int previous = 0;
int long newval = 0;
//==================================
void setup() {
Serial.begin(9600);
stepper.setMaxSpeed(4800);
stepper.setAcceleration(4800);
}
//==================================
void loop() {
val = analogRead(A2); // A2 en el PORT_6
delay(500);
Serial.println(val);
if ((val > previous+6) || (val < previous-6)) {
newval = map(val, 0, 1023, 0, 23700);
stepper.runToNewPosition(newval);
previous = val;
}
}
En este otro caso el control del motor PAP se realiza mediante teclado del PC.

Video en acción
/* JHG set 2016
* Motor PAP controlado por tecladdo serie
Se recibe por teclado un valor de desplazamiento lineal
y el cursor del deslizador se mueve hasta ese valor en la regla. Se deben introducir tres numeros con el valor en milimetros para el desplazamientodeseado entre 000 y 270.
Datos: pitch correa 2,032 mm;
rueda 18T = 18 x pitch = 36,576 mm/vuelta
Con driver en HHH 1/16 step.
Para una vuelta 200 x 16 = 3200 pasos
recorrido lineal de 27 cm suponen 7,381 vueltas
de rueda 18T, es decir, 7,381 x 3200 = 23619 pasos
del motor PAP. 1 mm de desplazamiento = 87,477 pasos
*/
#include "MeOrion.h"
#include <AccelStepper.h>
AccelStepper stepper(AccelStepper::DRIVER, 10, 11); // 10-PUL,11-DIR
//Para el driver en el PORT_1
Me7SegmentDisplay disp(PORT_6);
int val = 0;
int n[3];
//==================================
void setup() {
Serial.begin(9600);
stepper.setMaxSpeed(4800);
stepper.setAcceleration(4800);
disp.init(); // borra display
disp.set(BRIGHTNESS_7) ; //de 0 a 7
}
//==================================
void loop() {
for (int i=0; i<3; i++){
if(Serial.available()) {
n[i] = Serial.read();
if (n[i]==0) n[i]=48;
}
}
val = (n[0]-48) *8747.7 +(n[1]-48)*874.77+ (n[2]-48)*87.477;
Serial.println(val/87.4777);
Serial.println(n[0]-48);
Serial.println(n[1]-48);
Serial.println(n[2]-48);
disp.display(int(val/87.477+0.05));
stepper.runToNewPosition(val);
}
Montaje de un deslizador movido por un motor paso a paso que se controla con un potenciómetro deslizante (slide). La idea esta tomada de Ivan en / https://Brainy-Bits.com. El montaje es sencillo, tal vez lo más interesante sean los códigos por lo que se incluyen también.

[Video en acción](https://youtu.be/BCGtuX-0IM8 "Youtube")
--
````
/*
Datos: pitch correa 2.032 mm;
rueda 18T = 18 x pitch = 36.576 mm/vuelta
Con driver en HHH 1/16 step.
Para una vuelta 200 x 16 = 3200 pasos
recorrido lineal de 27 cm suponen 7,381 vueltas
de rueda 18T, es decir,
7,381 x 3200 = 23619 pasos de de motor PAP
*/
#include <AccelStepper.h>
AccelStepper stepper(AccelStepper::DRIVER, 10, 11);
//Para el driver en el PORT_1
int val = 0;
int previous = 0;
int long newval = 0;
//==================================
void setup() {
Serial.begin(9600);
stepper.setMaxSpeed(4800);
stepper.setAcceleration(4800);
}
//==================================
void loop() {
val = analogRead(A2); // A2 en el PORT_6
delay(500);
Serial.println(val);
if ((val > previous+6) || (val < previous-6)) {
newval = map(val, 0, 1023, 0, 23700);
stepper.runToNewPosition(newval);
previous = val;
}
}
````
____
____
En este otro caso el control del motor PAP se realiza mediante teclado del PC.

[Video en acción](https://vimeo.com/183961049 "Vimeo")
--
````
/* JHG set 2016
* Motor PAP controlado por tecladdo serie
Se recibe por teclado un valor de desplazamiento lineal
y el cursor del deslizador se mueve hasta ese valor en la regla. Se deben introducir tres numeros con el valor en milimetros para el desplazamientodeseado entre 000 y 270.
Datos: pitch correa 2,032 mm;
rueda 18T = 18 x pitch = 36,576 mm/vuelta
Con driver en HHH 1/16 step.
Para una vuelta 200 x 16 = 3200 pasos
recorrido lineal de 27 cm suponen 7,381 vueltas
de rueda 18T, es decir, 7,381 x 3200 = 23619 pasos
del motor PAP. 1 mm de desplazamiento = 87,477 pasos
*/
#include "MeOrion.h"
#include <AccelStepper.h>
AccelStepper stepper(AccelStepper::DRIVER, 10, 11); // 10-PUL,11-DIR
//Para el driver en el PORT_1
Me7SegmentDisplay disp(PORT_6);
int val = 0;
int n[3];
//==================================
void setup() {
Serial.begin(9600);
stepper.setMaxSpeed(4800);
stepper.setAcceleration(4800);
disp.init(); // borra display
disp.set(BRIGHTNESS_7) ; //de 0 a 7
}
//==================================
void loop() {
for (int i=0; i<3; i++){
if(Serial.available()) {
n[i] = Serial.read();
if (n[i]==0) n[i]=48;
}
}
val = (n[0]-48) *8747.7 +(n[1]-48)*874.77+ (n[2]-48)*87.477;
Serial.println(val/87.4777);
Serial.println(n[0]-48);
Serial.println(n[1]-48);
Serial.println(n[2]-48);
disp.display(int(val/87.477+0.05));
stepper.runToNewPosition(val);
}
````
editado 23 Sep '16 a las 9:55 am