Go Down

Topic: Auto con motor paso a paso (Read 723 times) previous topic - next topic

Robolink

Estoy tratando de hacer un auto  a radiocontrol que lleve algo de peso (4-5 kg) y con bastante precision de movimientos. (2 ruedas de tracciòn y giro---- y otras dos ruedas giran libres)

Para eso comprè dos motores Nema17 con sus controladores DRV8825 y un arduino uno.

Bueno soy nuevo en arduino y lo maximo que logrè fue mover un motor con un movimiento en el radiocontrol que es PWM.

quisiera saber si existe ya un programa hecho para esto porque me està costando bastante.

encontrè codigos parecidos pero son para motores normales de corriente continua.

desde ya agradezco ayuda !



surbyte

Si hiciste funcionar un motor ahora debes avanzar en los demás.
Muéstranos que hiciste.

Postea tu código usando etiquetas por favor!!

Robolink

#2
Mar 04, 2019, 12:43 am Last Edit: Mar 04, 2019, 05:04 pm by surbyte Reason: Errores y códigos deben ir con etiquetas
Gracias por contestar  surbyte !

en realidad copiè un còdigo de una persona y lo comprendo a medias, pero aunque mueva 2 motores entiendo que la programaciòn es mas compleja pues para doblar tiene que haber diferenciales de velocidad en las dos diferentes ruedas.

acà està el code que mueve un motor con mi control de RC



PIN 2 = INPUT from RC Receiver
PIN 9 = DIR
PIN 10 = PUL

Code: [Select]
#include <Stepper.h>
int ch2 = 0;


const int stepsPerRevolution = 200;

// initialize the stepper library:
Stepper myStepper(stepsPerRevolution, 9, 10);

void setup() {
 pinMode(2, INPUT); //from RC reciever ch2 SC switch on Transmitter
 myStepper.setSpeed(200);
 digitalWrite(9, LOW);
 digitalWrite(10, LOW);
 Serial.begin(9600);
}

void loop() {
//get current values of RC receiver
 ch2 = pulseIn(2, HIGH, 20000);
 
 Serial.print("ch2 ");
 Serial.println(ch2);
 Serial.println("------------");
 delay(500);

 if (ch2 < 1200)
 {
 Serial.println("clockwise");
 myStepper.step(1000);
}
else if (ch2 > 1700)
 {
 Serial.println("counterclockwise");
 myStepper.step(-1000);
}
 }

surbyte

A ver, no te puse

Quote
Postea tu código usando etiquetas por favor!!
que pasó entonces?

Robolink

#4
Mar 04, 2019, 07:58 pm Last Edit: Mar 04, 2019, 07:59 pm by Robolink
Code: [Select]

 #include <Stepper.h>
int ch2 = 0;


const int stepsPerRevolution = 200;

// inicializar la biblioteca de pasos:
Stepper myStepper (stepsPerRevolution, 9, 10);

void setup () {
  pinMode (2, INPUT); // del receptor RC ch2 SC en el transmisor
  myStepper.setSpeed ​​(200);
  escritura digital (9, BAJA);
  escritura digital (10, BAJA);
  Serial.begin (9600);
}

void loop () {
 // obtener los valores actuales del receptor RC
  ch2 = pulseIn (2, HIGH, 20000);
 
  Serial.print ("ch2");
  Serial.println (ch2);
  Serial.println ("------------");
  retraso (500);

  if (ch2 <1200)
  {
  Serial.println ("en el sentido de las agujas del reloj");
  myStepper.step (1000);
}
else if (ch2> 1700)
  {
  Serial.println ("en sentido contrario a las agujas del reloj");
  myStepper.step (-1000);
}
  }

Go Up