Subir a Inicio

PaperStepper(L298N): Driver de potencia para motor paso a paso bipolar


Descripción

PaperStepper(L298N) es un driver de potencia para motores paso a paso bipolares utilizando el chip L298N. Un chip que permite controlar motores paso a paso de más potencia que el L293D, pero con la desventaja de que no tiene integrados diodos de protección en la salida.

Entradas de control: 2 TTL (D1 y D2)
Salidas de potencia 4 (L1,L2,L3 y L4) 
Tensión alimentación: 5v
Tensión máxima salida:  36v 
Corriente máxima salida:  2A por salida (picos de 3A)


Identificación del tipo de motor

Para comprobar el tipo de motor paso a paso que tienes, puedes mirar las páginas siguientes (Es por no repetir la información):

PaperStepperUnipolar
PaperStepper(293D)

Descripción
Este proyecto es similar al  PaperStepper(293D) pero utilizando un chip de mayor potencia (L298N) para motores bipolares más grandes.

Para la realización de este proyecto nos basaremos en el circuito siguiente:


En este circuito vemos que con sólo 2 pines de control (D1 y D2) controlamos las 4 bobinas del motor paso a paso (L1,L2,L3 y L4). Esto lo podemos hacer ya que para mover un motor paso a paso debemos alimentar las bobinas en el orden siguiente:

En esta tabla vemos que los valores del devanado 2 es el invertido del 1 y que los del devanado 4 son los invertidos del 3, por lo que si invertimos la señal del L1 obtenemos la señal de control necesaria para L2 y de la misma manera si invertimos la señal de L3 obtendremos la señal de control de L4, con lo que la tabla para poder mover el motor quedaría de la forma siguiente:


Esta inversión de señal la realizamos en el circuito utilizando 2 transistores Q1 y Q2, que cuando estan activos (señal IN1 o IN4) derivan a masa las entradas  IN2 o IN3 que están a positivo con las resistencia Pull-Up R1 y R3.

NOTA
Normalmente, un motor paso a paso unipolar se puede utilizar como bipolar (si no se utilizan los terminales centrales de las bobinas),  de forma que puedes utilizar este circuito para  controlarlos



Componentes

2 resistencias de 1K (~0,02x2=0,04€)
2 resistencias de 10K (~0,02x2=0,04€)
1 Zócalo de 16 patillas (0,3€)
1 CI L298N (2,9€) ó TPIC0298 (4,5€)
un trozo de placa de 14 filas por 18 agujeros. (1,5€)
Cables de colores (0,5€)
3 regletas CI de paso 2,54 (0,4x3=1,2€)
(En la entrada puedes soldar directamente los cables, y en la salida utilizar una regleta típica de electricista)
8 Diodos Schottky 1N5822 (<200ns y 2A)
2 Transistores BC547
2 Condensadores de 100nF (0,1uF)

El coste total es de unos 6,5€ (con el L298N) ó 8€ (con el TPIC0298)


NOTA
Precios orientativos y aproximados para que sepas si hablamos de millones de dolares o de céntimos de euro, sin IVA y suministrados por Biltron - 2011
(No tengo nada que ver con Biltron, pero como son muy majos les hago publicidad). 


Realización
 
El método Paper consiste en ayudarnos en unas pegatinas para facilitarnos el proceso de montaje y soldadura.

Primero imprimiremos el documento PaperStepper(L298N) (disponible en la parte inferior de esta página en el apartado de descargas):




Una vez impreso el documento, comprobaremos que la impresión se ha realizado a la escala correcta con la ayuda de la regla impresa situada en el lateral izquierdo de la hoja. Al colocar a su lado un regla en centímetros deberán coincidir las marcas.



Si quieres puedes proteger la paperetiqueta con un plástico transparente autoadhesivo:



  
Después recortamos la Paperetiqueta:






Necesitaremos cortar un trozo de placa de stripboard de 13 filas por 18 agujeros; lo podemos hacer con un cutter.
Primero marcamos la zona a cortar con un cutter


por ambos lados

Haciendo palanca suavemente hacia arriba y hacia abajo conseguimos que la placa se separe por el corte:




Y con una lija conseguimos unos cantos lisos:


Con lo que obtenemos la placa para montar.


NOTA
en la foto ves que he cortado la paperetiqueta un poco más grande que lo indicado para poder ajustarla a la placa una vez encolada y  corregir el descentramiento de los agujeros de la placa.



Ahora aplicaremos adhesivo a la paperetiqueta (suelo utilizar cinta de doble cara)


deberemos colocar la etiqueta sobre la placa. Para que coincidan los agujeros dibujados en la etiqueta con los agujeros de la placa, utilizo una aguja como guía.

Con una aguja gruesa taladramos todos los agujeros de la paperetiqueta

Podemos comprobar al transluz que hemos taladrado todos los agujeros.



Como no he encontrado diodos Schottky de 2A ( tal y como indica el datasheet), he utilizado diodos de 3A, pero son muy grandes y tienen los terminales muy gruesos, así que hay que agrandar con el taladrín y una broca los agujeros de la placa:

Soldamos los pines, zócalos, puentes y resistencias.


Debes prestar atención en la colocación de los componentes con polaridad: el circuito integrado ,los transistores y los diodos. Los diodos verticales tienen el cátodo (el lado con la marca) junto a la placa.


Si no quieres utilizar bornas para soldar en circuito impreso, puedes utilizar una clema de electricista (más baratas y fáciles de conseguir). 


Una vez soldados todos los componentes, y fijándote en la imagen del documento impreso (lado pistas) puedes cortar con un taladrín y una fresa fina las pistas indicadas (yo hago este paso una vez soldados todos los elementos para poder tomar como referencia las patillas soldadas):



 Y el resultado es ...





Funcionamiento

Si no has descargado y descomprimido el archivo PaperStepper(298N).zip, ha llegado el momento de hacerlo. Lo tienes disponible en el enlace inferior.

Deberás compilar e instalar en el Arduino (o Paperduino) el programa de ejemplo realizado por Tom Igoe que tienes disponible en el archivo de descargas (/Sketches/PaperStepper2w.pde).

Deberás realizar el siguiente montaje:


NOTA
En mi caso como el motor es de 12v, utilizo una vieja fuente de alimentación de un PC para el motor y el Arduino se alimenta a través de USB. 

Otra posibilidad es alimentar el Arduino y el motor paso a paso con la fuente de Alimentación.




El programa simplemente da un número de vueltas en un sentido, y en otro indefinidamente.
Debes modificar el valor de la linea:
#define motorSteps PASOSVUELTA, donde PASOSVUELTA indica el número de pasos que hay que suministrar al motor para que el eje de una vuelta completa.
En mi caso al utilizar un motor de paso 3,75grados => 360/3,75=96.

También puede ser necesario que reduzcas la velocidad del motor si éste tiene mucha inercia, reduciendo el valor de VELOCIDAD de la linea: myStepper.setSpeed(VELOCIDAD)


/*
 Stepper Motor Controller
 language: Wiring/Arduino

 This program drives a unipolar or bipolar stepper motor.
 The motor is attached to digital pins 8 and 9 of the Arduino.

 The motor moves 100 steps in one direction, then 100 in the other.

 Created 11 Mar. 2007
 Modified 7 Apr. 2007
 by Tom Igoe

 */

// define the pins that the motor is attached to. You can use
// any digital I/O pins.

#include stepper.h

#define motorSteps 96     // (360/3,75)change this depending on the number of steps
                           // per revolution of your motor
#define motorPin1 8
#define motorPin2 9
#define ledPin 13

// initialize of the Stepper library:
Stepper myStepper(motorSteps, motorPin1,motorPin2);

void setup() {
  // set the motor speed at 60 RPMS:
  myStepper.setSpeed(50);

  // Initialize the Serial port:
  Serial.begin(9600);

  // set up the LED pin:
  pinMode(ledPin, OUTPUT);
  // blink the LED:
  blink(3);
}

void loop() {
  // Step forward 100 steps:
  Serial.println("Forward");
  myStepper.step(96);
  delay(500);

  // Step backward 100 steps:
  Serial.println("Backward");
  myStepper.step(-96);
  delay(500);

}

// Blink the reset LED:
void blink(int howManyTimes) {
  int i;
  for (i=0; i< howManyTimes; i++) {
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    delay(200);
  }



NOTA 
En la linea: #include stepper.h
debería poner: #include < stepper.h >
(El plug-in hace desaparecer esta linea si pongo los símbolos <>)

Y el resultado con un motor bipolar es el siguiente:







Si quieres, dispones de más ejemplos que funcionan con este circuito, desde el propio entorno Arduino:



NOTA:
Estos ejemplos están pensados para utilizar 4 pines de Arduino, para poder usarlos, simplemente modifica la linea siguiente, utilizando sólo los pines 8 y 9.:

// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8,9,10,11);

// initialize the stepper library on pins 8 and 9:
Stepper myStepper(stepsPerRevolution, 8,9);




Enlaces de Interés
Mister_mst en foro-coches está realizando este montaje, y se le ha ocurrido desplazar los elementos para poder incorporar un radiador al chip L298N.

   
 

Información legal

1. Propiedad intelectual
Todos los derechos de propiedad intelectual del contenido de Txapuzas eléctronicas, están bajo una licencia Creative Commons Share-Alike, cuyo contenido podéis revisar en este enlace.
Por tanto queda permitido copiar, distribuir, comunicar públicamente la obra y hacer obras derivadas de la misma, siempre que se respeten los términos de la licencia arriba reseñada.
3. Actualizaciones y modificaciones de Txapuzas electrónicas
El autor se reserva el derecho a actualizar, modificar o eliminar la información contenida en Txapuzas eléctrónicas, y la configuración o presentación del mismo, en cualquier momento, sin previo aviso, y sin asumir responsabilidad alguna por ello.
4. Indicaciones sobre aspectos técnicos
El autor no asume ninguna responsabilidad que se pueda derivar de problemas técnicos o fallos en los equipos informáticos, que se produzcan a causa de los circuitos e ideas expuestos en el blog de txapuzas electrónicas, así como de los daños que pudieran ocasionar.
El autor se exime de toda responsabilidad ante posibles daños o perjuicios que pueda sufrir el usuario a consecuencia de errores, defectos u omisiones en la información facilitada.


Descargas

El esquema, descripción e imágenes están disponibles en el siguiente enlace:

Si tienes problemas con el enlace anterior, aquí puedes descargar todos los archivos de txapuzas

Notas
Para la realización de este proyecto se han utilizado los programas: Arduino, Inkscape, Openoffice, Gimp, Picasa, Fritzing
Si encuentras algún fallo, se te ocurre alguna mejora, o simplemente quieres hacer algún comentario, te lo agradeceré: Gracias :-)

77 comentarios:

  1. Muy bueno el paper, muy bien explicado y muy currada la presentación.

    Pepote97

    ResponderEliminar
    Respuestas
    1. Hola Iñigo, ante todo darte las gracias por hacer este blog y actualizarlo constantemente para el publico XD, veras el schoktty lo he buscado como tu indicas aqui pero solo lo veo por ahi de 3Amp. es una tonteria? o soy demasiado novato? tengo mmuchas preguntas y los materiales estan de camino jeje creo que haré un temilla por el foro, Muchas gracias
      Un Saludo

      Eliminar
  2. hola,muy bueno y sencillo el circuito,me agrada ya que no utilizas el l297.
    me gustaria saber en donde conectar las entradas ( estep y dir ).gracias

    ciber_gauchito@hotmail.com

    ResponderEliminar
  3. Hola ciber_gauchito

    Al no utilizar el 297, este circuito es un poco primitivo, es decir, no utiliza dos señales de pulso (step) y dirección (dir), hay que indicarle los pasos mediante la combinación de las dos salidas del micro D1 y D2 de acuerdo a la tabla especificada arriba.
    No obstante, si utilizas la librería "Stepper" de Arduino (tal y como indica el ejemplo), no tienes que preocuparte, ya que ella se encarga de indicarle los pasos al motor.
    myStepper.step(PASOS); PASOS= pasos en un sentido.
    myStepper.step(-PASOS); -PASOS= pasos en sentido contrario.

    Saludos

    ResponderEliminar
  4. Hola:
    En primer lugar gracias por el paper muy bien explicao y los esquemas perfectos, lo tengo funcionando a la perfección, ahora me gustaria preguntar para hacer medios pasos quitando los transistores y resistencias, como seria la programación? esque tengo un motor de 96 pasos y me gustaria combertirlo en uno de 192 para hacer girar una plataforma 180º casi grado por paso, mas precision.
    Un saludo.

    ResponderEliminar
  5. Hola risking
    para poder utilizar la librería con medios pasos, hay que quitar los transistores y resistencias y conectar directamente las patillas 5,1,10,12 (IN1-IN4) al Arduino.
    Aunque está planteada como mejora, creo que todavía no está implementada en la librería standard, así que deberás sustituirla por la de (el archivo .h y el .pde):
    http://code.google.com/p/arduino/issues/detail?id=139

    y luego especificar el medio paso:
    http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1257367879

    Es decir al definir el steper utilizar los siguientes parámetros:

    stepper MyStepper = Stepper(MediosP/Vuelta,P1,P1,P3,P4,MedioP);

    Donde:
    MediosP/Vuelta: el número de 1/2 pasos para que de una vuelta completa tu motor. Si tu motor gira un número de grados por paso, divide 360 entre ese número para conocer el número de pasos (p.e. 360 / 3.6 da que tu motor tiene 100 pasos, por lo que serán 200 1/2 pasos). (int)

    P1,P2,P3,P4: los 4 pines de Arduino que están conectados al motor (int)

    MedioP: 1 (int)

    NOTA:
    Yo no he utilizado esta librería, pero ya nos contarás.

    Saludos

    ResponderEliminar
  6. Ya está conseguido, es mas facil de montar además, así se le puede sacar mas jugo a algunos motores.
    Así tb doy por verificada que la libreria esa tb funciona, tenia algunas dudas con los pines pero he seguido el orden:
    D1 pin 12
    D2 pin 10
    D3 pin 7
    D4 pin 5
    Para el que tena dudas.
    Lo bueno de esta libreria es que con poner el MedioP a 0 vuelve a como estaba antes y con ponerlo a 1 a medios pasos.
    Le tendré que poner un disipa al driver q se calienta si el motor anda mucho tiempo girando.
    Tengo una duda sobre el pin enable, como se maneja para ponerlo a 0 cuando no se usa, lo conecto a otro pin del arduino y le digo LOW o algo asi? para que consuma menos sino se usa.

    ResponderEliminar
  7. Enhorabuena riscking!!

    Con respecto al pin ENABLE, la forma de manejarlo es como dices. Conectas la patilla ENAB del chip a un
    pin del Arduino, y desde el programa, justo antes de mover el motor, pones este pin a HIGH y cuando acabes de moverlo lo vuelves a poner a LOW.
    (previamente el pin del arduino hay que configurarlo como salida):

    Deberías añadir a tu programa estas lineas:
    (Al inicio)
    #define enablePin Npin //Npin=numero del pin de Arduino al que conectarás el pin enable del chip

    (En setup())
    pinMode(enablePin, OUTPUT); // Lo configuramos como salida
    digitalWrite(enablePin, LOW); // Desconectamos el chip

    (En loop())
    ...
    digitalWrite(enablePin, HIGH); //Activa el chip
    myStepper.step(NumPasos); //Mueve el motor
    digitalWrite(enablePin, LOW); //desactiva el chip
    ...

    Espero no haber cometido algún error en este código

    ResponderEliminar
  8. Perfecto, muy bien explicado todo y sin ningún error.
    Tengo una última pregunta que también la había expuesto en el foro de arduino, dado que de esta manera se usan 4 o 5 pins, si se quieren usar mas de un motor ya serian 8 o 10 pins y con esos se te queda el duemilanove pequeño, existe algún C.I. que pueda manejar estos pines y usar solo un par de pines por motor?
    Ya sería como la ultima mejora a añadir al paper.
    Muchas gracias por todo.

    ResponderEliminar
  9. Hola riscking
    El L298N es un chip que está pensado para trabajar con el L297, que es un chip que se encarga de transformar señales de DIR y STEP en pasos. Es decir realizaría el trabajo de la librería "Stepper", pero el circuito se complica bastante.
    Para conectar varios motores en el duemilanove, podrías hacer lo siguiente:
    1.- Utilizar los pines A0-A5 como digitales D14-D19, obteniendo 5 pines más. Y unir todos los Pins ENABLE en uno para apagar y encender los motores simultaneamente:
    1 Enable común + 4 Mot x 4 pin=1+16=17Pin
    (19-17=2 pin libres)

    2.- Si vas a mover los motores independientemente, puedes hacer lo contrario, es decir conectar las señales In1-In4 de cada driver a los mismos pines del Arduino (en paralelo), y la Señal enable de cada driver a distintos pines del Arduino. De esta forma sólo se moverá el motor que tenga el Pin ENAB Activo (ENAB_Mot1=HIGH, ENAB_Mot2=ENAB_Mot3=...=LOW,):
    X Mot = 4 Pin + X Enable=4+X Pin
    (Puedes mover hasta 13 Motores (13+4=17Pines)!!!)

    3.- Usar el circuito original de 2 pines (con transistores y resistencias) y obtener una reducción mecánica (con poleas o engranajes) para obtener más precisión en el movimiento ;-)

    ResponderEliminar
  10. Hola de nuevo,
    Me gustaría probar el L298N con el L297 y creo q sigueindo este esquema, podria valer conectando el clock y el CW/CCW al arduino lo q no se es como iria la programacion.
    http://cambarduino.altervista.org/l297.pdf
    Que te parece??
    Ya me diras.

    ResponderEliminar
  11. Una pregunta, los diodos que hay a la parte derecha del L298 ? son obligatiios? ya que no veo ningun lado la referencia de modelo....

    ResponderEliminar
  12. Hola riscking
    El 298 se utiliza normalmente conjuntamente con el 297, yo no lo he hecho por simplificar.
    Para usarlo un pin del arduino a cada señal, cada vez que envies un pulso se moverá un paso.
    DigitalWrite(pin.HIGH);
    Wait(pausa);
    DigitalWrite(pin.LOW);
    Wait(pausa);
    Con pausa varías la velocidad, y con el otro pin el sentido.

    Saludos

    ResponderEliminar
  13. Hola Santiago
    Los diodos son para proteger el L298 y según el datasheet han de ser rápidos (<200ns) y de unos 2A (dependiendo del motor).
    He visto circuitos en internet sin estos diodos, (de hecho yo lo he utilizado sin diodos con motores pequeños), pero no es recomendable.
    Yo he utilizado de 3A porque no he encontrado de 2A (y son enormes!!) una posible referencia: 1N5822

    Saludos

    ResponderEliminar
  14. Yo compre en una tienda de Bilbao, Radio rhin unos que pone 5822ID q doy por echo q son iguales que los 1n5822 pero con un encapsulado D0-41 y transparente en vez del gigante D0-201, es en el unico sitio que los he visto y mira que he preguntao.

    ResponderEliminar
  15. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  16. una duda que tengo con el L298 y me estoy haciendo un poco de lio, cual es el pin 1? el más de la izquierda del todo el chip o el primero más pequeño? he montado el circuito tal y como indicas, en una protoboard, sin los diodos, y no consigo que me vaya, el eje del motor está loco no está anclado, puede ser que el L298 no funcione??

    un sañudo

    ResponderEliminar
  17. Hola Santiago, el pin 1 del L298 es el indicado en la paperetiqueta y en la fotografía situada a la derecha del listado de componentes, en el documento impreso. Puedes comprobarlo en la hoja de características situada en el directorio Datasheet del archivo zip.

    Si el motor está loco, es que no alimentas ninguna bobina del mismo.
    Quitaría el motor y como el L298 podemos asociarlo a 4 transistores de potencia, yo probaría a poner a 5v las entradas 5,7,10 y 10 una a una y ver que señal se obtiene (con un led y una resistencia de 1K si no tienes un tester) a la salida, en las patillas 2,3,13,14 respectivamente (poniendo Vcc y Vs a 5V).
    Después haciendo lo mismo con las entradas D1 y D2 y viendo el resultado en las patillas de salida (ha de ser lo indicado en la tabla 2).

    ¿Puede ser que tengas la entrada "enable" a masa? Esto último desconecta el chip independientemente del estado de las señales. Por si acaso la pondría a 5v.

    Espero haberte ayudado

    ResponderEliminar
  18. Iñigo, ya lo he solucionado, no sé si decirte lo que era xD, me hice un pseudo zócalo para montar el chip en una protoboard con pines de conexionado y cuando lo estaba montando me dí cuenta de que había un pin que no hacía contacto, y dije bueno luego lo arreglo, como es obvio luego se me olvidó, y hoy revisando como me habías dicho, el pin 4 era el que no estaba bien, y justo es el del motor xD, pero vamos lo he soldado como dios manda y ya va!, lo único me queda por encontrar la combinación correcta de los devanados que esto va como le da la gana, muchas gracias por la ayuda y espero no molestarte más!

    ResponderEliminar
  19. Que tal buenas noches, es muy interesante todo esto que posteas y me pregunto si me puedes ayudar a resolver una duda que tengo. Estoy trabajando en un proyecto que es la construcción de una máquina CNC y para la cual voy a usar motores a pasos de 650 oz-in 6 Amp, 450 oz-in 6Amp, 350 oz-in 3 Amp. Estos motores van conectados cada uno a su drive y estos 3 drives van cnectados a una interfase paralela y esta esta comunicado mediante el cable paralelo hacia el CPU. Mi pregunta es si puedo sustituir la interfase paralela y colocar en vez de esta un PIC ???? Para asi lograr la comunicación pero mediante de un PIC. De ante mano te agradezco tu atención muchas gracias.
    Saludos..

    ResponderEliminar
  20. First of all this is a very neat design for an L298 motor driver thanks allot for this. I tried to make a prototype of my own and was able to move my motor which is running on a 4.5v 1.2A per phase. Everything was working and the motor was running as expected but there seems to be some allot of noise on the signal, it will suddenly make the motor jitter and the shaft just barely moves. Any ideas what could be the reason? is there any fix on this? Thanks allot.

    ResponderEliminar
  21. Hi anonymous.
    The symptoms indicate that a motor winding is not receiving power. Notes that no one has released any cable or connection is defective.
    You can check a very slow speed with a diode and a resistor if the outputs of the L298 have the correct voltage.
    Another possibility is that you have greatly increased operating speed and the stepper motor to lose synchronization (the maximum speed of each stepper motor is very different).

    ResponderEliminar
  22. hola amigo inigo ya tengo muchos L298 ya me yegaron pero yo uso un arduino uno y necesito mover 3 motores PAP se podra? en otro post te pedi q me enviaras una fotito avre como seria la intalacion. espero tu respuesta gracias

    ResponderEliminar
  23. Hola, he realizado el circuito L298N.lo he realizado varias veces, pero no me funciona, supongo que D1 y D2 van a los pines del arduino, ENABLE 3, a un pin definido del arduino. +5v al arduino = vcc? y pero adonde conecto VS es una alimentación extra para el motor? y el otro cable extra a tierra?

    sabes como darle más fuerza a un motor stepper? ya que cuando los míos caminan al ponerles un poco de fricción se detienen.

    Gracias.

    ResponderEliminar
  24. Hola anónimo.
    Tienes un ejemplo de montaje en el archivo zip de descargas, en el directorio sketches (PaperStepper(L298N)Ej_00)

    Existen muchos tipos de motor paso a paso y cada uno trabaja a una intensidad y tensión determinadas. Normalmente puedes aumentarle un poco la tensión de trabajo para aumentar el par del motor (siempre que no se caliente mucho).

    Saludos

    ResponderEliminar
  25. Con este circuito se puede controlar motores DC¿ o sirve solamente para motores paso a paso?

    ResponderEliminar
  26. Hola Iñigo, primero mil gracias por tu website, me ha ayudado mucho a hacer mi cnc. increible! gracias!

    bueno, aca va la pregunta, hice los drivers con el L298 en pcb y parecia andar todo bien, pero despues me di cuenta que los motores cuando funcionan consumen muchos ampers, mas de lo que deberian en la hoja de datos dice 1.3 amp pero cuando lo mido me da 3amp con 12v y si uso 24v me da como 6amp, muy raro!, puede ser que tenga mal puestos los diodos? o que use un capacitor errado? desde ya muchas gracias

    ResponderEliminar
  27. hola, tenes la placa diseñada para atacar con acido, por que en el lugar donde vivo no se consigue la stripboard. desde ya muchas gracias.

    ResponderEliminar
  28. Hola buenas tardes, antes que nada dejame felicitarte por este grandioso blog, es de gran importancia para el desarrollo de buenos proyectos, es una gran guia...

    bueno mi prolema es el siguiente, mi programa se carga en arduino y simula en TxapuCNC, pero a la hora de mecanizar el codigo me manda error y me congela la ventana del programa y ya no me permite hacer nada...por lo cual tengo que apagar el equipo directamente..
    bueno espero poder recibir tu alluda...
    saludos....

    ResponderEliminar
  29. Hola anónimo:
    Qué código de error te manda?
    Has elegido el puerto serie adecuado?

    Saludos

    ResponderEliminar
  30. Hola !!! Gracias por tus aportes.

    Tengo una duda. Después de simular la figura a mecanizar en el Txapuzas CNC, le doy al botón verde para mecanizar y empieza a mandar lentamente el código al Arduino y se mueve el motor o motores. Mi pregunta es ? tiene que esta conectado siempre el Arduino para mecanizar el código, es decir todo tiene que ser en tiempo real o hay alguna manera de grabarlo en el arduino, desconectar éste de la PC y luego correr el código.

    Otra pregunta, me puedes explicar de mejor manera a que pin del arduino mando los 5Volts que vienen de la fuente hacia arduino y si va en el mismo lugar que el enable (cable verde el la figura? ¿De dónde sale el otro cable rojo del arduino?.

    Muchas gracias, espero puedas ayudarme... !!!

    ResponderEliminar
  31. Hola Anónimo
    El Arduino ha de estar siempre conectado, ya que el PC le manda los comandos G por el puerto serie al Arduino, y el Arduino lo interpreta, lo ejecuta y manda al PC la señal de que ya está listo para recibir un nuevo comando.
    El Arduino se puede alimentar directamente desde una fuente de alimentación estabilizada a 5v sin utilizar el regulador de tensión integrada en la placa (conector de alimentación que admite de 7v a 12v). Para ello conectaremos el cable de alimentación al pin etiquetado como 5v de la placa Arduino.

    En las imágenes se ve que el cable de la fuente de alimentación está conectado al conector hembra de 5v de Arduino, al cable verde de Enable y al cable rojo (Vcc) de PaperStepper

    Saludos

    ResponderEliminar
  32. Buenas tardes Iñigo.
    Hace unos meses te pedí ayuda sobre el hacer una CNC. GRACIAS a ti pude terminarla y funcionando a la perfección. Muchas gracias de nuevo.
    Tengo en mente otro proyecto. Estoy enfrascado en hacer una dolly, para realizar timelapses.
    Tengo realizado ya el paperstepper y también me construí un teclado digital como el que propones en tu web, para simplemente darle hacia adelante o hacia atrás.
    Tengo realizado la programación y todo va bien exceptuando que cuando coloco que el motor gire a 1rpm y mando a pararlo tarda como 30seg en hacerlo, sin embargo cuando esas revoluciones las voy aumentando el tiempo de parado va disminuyendo (a 150rpm casi se para en seco), tendrías idea a que puede ser debido esto??
    Un fuerte saludo desde Tenerife.

    Toño

    ResponderEliminar
  33. hola primero gracias por todo es muy bueno el contenido que se especifica , pero ahora viene el mangaso ... fabrique todo tal cual y mis motores son marca vexta bipolares de 5 v 1.2 amp, y no funcionan bien , no tiene fuerza y como que a veces se queda zapateando en la misma posición , creo que el comentario en ingles , el cual traduci con el traductor tiene que ver con lo que me pasa.
    puede ser que el l298n necesita como alimentación 7.5v porque 2.5v caen en el mismo para que de esta manera me entregue 5 v en las bobinas del motor , porque con el tester no llego a medir la tension sobre las bobinas , y no tengo osciloscopio, desde ya muchas gracias

    ResponderEliminar
  34. Hola Toño

    Sin ver el programa es difícil decirlo, pero parece que hasta que no termina de mover el motor no realiza la siguiente instrucción.
    Si este es el caso podrías dividir el movimiento del motor y consultar el estado de los pulsadores antes de que el motor llegue a su destino.
    Es lógico que al aumentar la velocidad del motor el paro se realice antes, ya que llega antes a destino.

    Saludos

    ResponderEliminar
  35. Hola Hector,

    Tienes razón, según el datasheet, en saturación los transistores con 1,5A pueden llegar a tener una Vce max de 1,7v por lo que la tensión del motor debe ser un poco superior (no obstante lo que suelo hacer es, siempre que no se caliente mucho el motor, aplicar una tensión superior a la indicada en las especificaciones del motor)

    Saludos

    ResponderEliminar
  36. hola q tal mis motores son de 300 oz-in y 3 amperes, este driver me podria servir o q me recomiendas?? de antemano muchas gracias

    ResponderEliminar
  37. Hola carlos
    Este driver puede controlar hasta 2A con una buena refrigeración.
    Creo que se queda pequeño para tus motores.
    A partir de 3A los driver se suelen hacer con transistores mosfet.

    Saludos

    ResponderEliminar
  38. Saludos Iñigo.

    Vengo del post de FC en el que estamos montando la TxapuCNC o intentandolo por lo menos.

    Veo que para tu CNC montaste motores de 12V

    El problema esque los L298N se calientan una barbaridad. Y realmente no sabemos hasta que punto es bueno o malo. o si podriamos meter una refrigeracion.

    ¿has tenido algun problema con las temperaturas al usar la CNC?

    de todas formas te invito a pasar por el hilo y comentar algo si quieres

    http://www.forocoches.com/foro/showthread.php?t=2133381

    ResponderEliminar
  39. Hola soy nuevo en esto. Ante todo felicidades por todas tus aportaciones al mundo arduino.
    Quisiera que alguien me hechara una mano ya que tengo montado la paerstepper(L298) en un arduino uno y a un motor:
    ■Angulo de paso 1.8 grados (200 pasos por vuelta)
    ■Bipolar (2 fases)
    ■Alimentación máxima: 12V
    ■Consumo aprox: 0.33A
    ■Holding Torque : 2.4kg/cm
    y con el siguiente programam en el arduino:
    #include

    #define motorSteps 200
    #define motorPin1 2
    #define motorPin2 3
    #define ledPin 13

    Stepper myStepper(motorSteps, motorPin1, motorPin2);

    void setup(){
    myStepper.setSpeed(1);
    pinMode(ledPin, OUTPUT);
    }

    void loop(){
    myStepper.step(200);
    digitalWrite(ledPin, HIGH);
    delay(200);
    digitalWrite(ledPin, LOW);
    }


    y el motor da 3 pasos en un sentido y luego da un salto en setido contrario que lo coloca en la posicion inicial.
    Gracias por la ayuda

    ResponderEliminar
  40. Hola anónimo
    Aparentemente el programa está bien ( en la primera linea falta incluir 'Stepper.h', aunque será defecto de copiar y pegar).

    Parece que el problema es del circuito, tal vez uno de los transistores no invierta la señal correctamente, puedes comprobarlo aplicando 5v y GND en las entradas (Dx) y poniendo un LED con una resistencia de ~5K en la salidas (o con un voltímetro) para comprobar su funcionamiento.
    El resultado debería ser el siguiente:
    - Señal D1
    D1=0 (GND) => L4=0,L3=1
    D1=1 (5v) => L4=1,L3=0
    - Señal D2
    D2=0 (GND) => L2=0,L1=1
    D2=1 (5v) => L2=1,L1=0
    - Las dos señales combinadas
    D1=0 (GND) y D2=0 (GND) => L1=1,L2=0,L3=1,L4=0
    D1=0 (GND) y D2=1 (5V) => L1=0,L2=1,L3=1,L4=0
    D1=1 (5v) y D2=0 (GND) => L1=1,L2=0,L3=0,L4=1
    D1=1 (5v) y D2=1 (5v) => L1=0,L2=1,L3=0,L4=1

    NOTA: Debes alimentar al PaperStepper con 5v, 12v y GND. Con unos cables unir D1 y D2 a GND o a 5v, y conectar la patilla larga del LED en la salida Lx y la corta a través de la resistencia a GND.

    Saludos

    ResponderEliminar
  41. Gracias por la ayuda, ya me funciona, era que me faltaba una pista en el circuito.

    ResponderEliminar
  42. Hola Iñigo ayuda por favor quiero hacer esta practica pues me regalaron un motor nema 17 y quiero ver que tal va pero la verdad en stripboard se me difuculta mucho consegirla ademas de que no comprendo muy bien jejeeje sera mucha molestia el desarollo del pcb? saludos desde mexico


    PD soy fan del blog..! ñ.ñ

    ResponderEliminar
  43. Felicidades por tu blog me parece estupendo y lo hare mi lugar de culto :-) mi consulta es que los condensadores del driver no aparecen en la lista de comp pero esde la foto parecen ser de 100nf me podrias comfirmar si es correcto?.gracias

    ResponderEliminar
  44. Hola Anónimo

    Los condensadores son de 100nF (0,1uF).

    Ya los he añadido a la lista de componentes.

    Gracias por la corrección

    ResponderEliminar
  45. Hola Iñigo y gracias por el blog, es realmente genial.

    He realizado tres circuitos del L298N y aunque funcionan perfectamente tengo un par de dudas que me gustaría plantearte. Estoy usando unos motores nema 17 17HS8401 de 1.8A (Por ningún lado me venia registrado voltaje de trabajo), los cuales alimento con 5V, lo que parece suficiente. El problema es que los motores se acaban calentando mucho debido a que en parado consumen casi 2.3A, mientras que girando se quedan en torno a 1.5A (todo esto girando en vacío). Decir que tengo el pin enable puenteado con un jumper a +5V.

    Mis preguntas son estas:

    - En cuanto conecto el enable a +5V con el motor parado, este se bloquea, lo cual entiendo que es una especie de freno motor. Además en esta situación es cuando el motor más consume y más se calienta. ¿Es esto normal?

    - Si bajo el voltaje para que se caliente menos en parado pierde demasiada fuerza al girar. ¿Seria posible regular con algún circuito la corriente del motor a 1.8A independientemente del voltaje?

    Como he leído en otro comentario, sé que puedo controlar el pin enable con el Arduino, lo cual evitaría el consumo en parado, pero si es normal que el motor se frene al alimentar el pin enable, me interesa hacerlo así.

    Gracias y un saludo.

    ResponderEliminar
    Respuestas
    1. Hola Pardi
      1.- Si, es normal. El PaperStepper siempre está alimentando a las bobinas del motor (siempre que enable esté a 5v), esté el motor en marcha o parado. La forma de reducir el consumo es poner a masa esta patilla, en ese caso deja de consumir. De hecho, el programa TxapuCNC_Rx desactiva los motores (poniendo el enable a GND), si en un minuto no ha recibido ninguna orden de movimiento del programa TxapuCNC_Tx.

      2.- Una forma de controlar el consumo de los motores paso a paso, es mediante la técnica del "chopeo" (recortar la señal), esto se puede realizar mediante otro chip (L297), pero se complicaría el circuito, y el control se realiza por impulsos (DIR y STEP), por lo que hay que utilizar otro programa de control (PaperStepperRx_Pololu).

      3.- El motor paso a paso no tiene un giro libre como los motores convencionales. Para que gire hay que ir alimentando las bobinas alternativamente en un orden concreto.
      El motor paso a paso sin alimentar (con el enable a masa) se frena instantáneamente, y el momento que soporta es muy pequeño. Si estando parado (si las señales de control no varían) dos bobinas están alimentadas, (esto pasa por defecto en los paperStepper) el momento (y el consumo) que que soporta es mayor.

      Saludos

      Eliminar
  46. Muchas gracias por contestar Iñigo.

    Con lo que me has dicho de que el programa TxapuCNC_Rx desactiva los motores al minuto me dejas más tranquilo y creo que será suficiente, porque se calientan pero cuando llevan 20 o 30 minutos conectados.

    En cuanto al L297, ya imaginaba que habría una forma de reducir el consumo, pero si se complica mejor pruebo primero con el TxapuCNC_Rx, dado que estoy haciendo un prototipo de tu CNC. Puesto que los motores van ha dar movimiento mediante de un tornillo sin fin no creo que la fuerza que reciban en parado sea un problema, con lo que me has explicado.

    Gracias de nuevo y un saludo.

    ResponderEliminar
  47. Iñigo que tendria que cambiar para ponerle a cada driver un enable para que los desactive cada motor cuando no agan nada, gracias y un saludo

    ResponderEliminar
  48. Hola Iñigo, lo primero darte las gracias por la información compartida en la página, asi como por intentar resolvernos las dudas.

    Al lío: he montado tanto el L293 como el L298. Con el L293 los motores funcionan bien pero al intentarlo con el L298 es como si no tuviesen fuerza (si muevo el eje un poco con la mano se mueven)¿A qué puede ser debido?

    Otra pregunta, en el programa TxapuCNC TX cuando le doy a mover los ejes hace como pequeños saltos pero no los llega a mover, y probándolos con el sketch del driver si se mueven bien, no se porqué será

    ResponderEliminar
  49. Que maleducado... Se me olvidó darte las gracias jeje

    Un saludo y gracias Iñigo

    ResponderEliminar
  50. Hola Iñigo, seria un problema usar condensadores ceramicos , en vez de los que has puesto tu ?

    no tengo ni idea de electronica y por mas que busco en google, no se dar con la respuesta.

    gracias y felicidades por tu blog , es impresionante.

    ResponderEliminar
  51. Al final he comprado unos como los de las imagenes xD , y de momento parece que funciona.

    saludos

    ResponderEliminar
    Respuestas
    1. Hola Nacho,
      Perdona que no te haya contestado antes,
      No hay problema.

      SL2

      Eliminar
  52. Hola gracias por tu manual el problema que tengo es que cuando mecanizo tengo que dejar el codigo con un decimal solo por que si no se desfasa el mecanizado gracias

    ResponderEliminar
  53. Hola Iñigo;

    Ya he realizado el paperstepper y tengo unos motores que según los datos funcionan a 5.1V (DC), tiene un consumo de 1A y se mueve a 1,8º/paso. También alimento tanto arduino como el motor con una fuente de alimentación que en la salida de 5V da hasta 38A.

    Solo decir que a 5V solo da saltitos ni mucho menos la vuelta entera que tiene que hacer según el programa, que lo tengo puesto a 200 pasos y una velocidad de 50. Si lo conecto a 12V el motor da algo mas de giro pero sigue sin dar la vuelta completa.

    ¿A que puede ser debido? Agradecería mucho tu ayuda por que ya es lo único que me falta.

    Gracias por todo tu curro y el mantenimiento de este blog, que para personas como yo (negadas en electrónica) estamos aprendiendo un montón.

    Un saludo.

    ResponderEliminar
  54. BUENAS TARDES, MUY BUEN BLOG, PARA TRABAJAR CON MOTORES PASO A PASO, EXCELENTE.
    SOY MUY NOVATO EN CUESTIONES ELECTRONICAS, PERO ME HE ARRIESGADO Y HE PÒDIDO CONSTRUIR EL DRIVER PARA CONTROLAR LOS MOTORES, LO NECESITO PARA TRABAJOS DE MECANICA AUTOMOTRIZ, MI PREGUNTA ES LA SIGUIENTE: ¿ ES IMPRESINDIBLE CONTROLAR EL DRIVER CON LA PLACA ARDUINO O LO PUEDO CONTROLAR MANUALMENTE CON BOTONES Y PALANCAS(INTERRUPTORES), SI ES ASI COMO LO PODRIA HACER.......NECESITO HACER GIRAR EL MOTOR VARIAS VUELTAS A DERECHAS Y LUEGO A IZQUIERDAS Y NADA MAS.
    MUCHAS GRACIAS POR SU AMABLE ATENCION.

    ResponderEliminar
  55. Hi, i need so much your help. I did this driver, and with this test code in this page work fine. But when i try run with Txapuzas_TX they dont work the (-). For example: The X10 work fine but when i try -X10 thay didnt run. The stepper motor only make a noise. Please, what can be this? I already try all the feed in the software. I dont know what can i do more.

    ResponderEliminar
  56. Hola gente, antes que nada felicidades por esta maravillosa maquina, la construí y logre que funcionara, no sin antes renegar un poco (como corresponde) jeje, ahora la consulta que tengo es la siguiente: a alguien le paso que de repente la cnc no se mueve para un lado? (en mi caso el eje x no se mueve a la derecha) pero se mueve bien para todas las otras direcciones. La verdad que me dejo sin saber que mas hacer, les comento primero que uso ubuntu 12.10 con gambas2, por lo que cargue el TxapuCNC_RX01 en el arduino uno y ejecuto TxapuCNC_TX02 en ubuntu. las pruebas que realice para descartar fallas fueron, antes que nada recargar el arduino, luego bajar otra vez el TxapuCNC_TX02, pero no se soluciono, entonces cargue PaperStepper(L298N)_00 en el arduino y fui modificando los puertos para mover todos los ejes y funcionaron bien, por lo que considero que tanto el aduino como los motores estan en buenas condiciones. luego de eso no se me ocurre nada mas, alguien me tira un cable??. Desde ya muchas gracias, los felicito de nuevo.

    ResponderEliminar
    Respuestas
    1. Hola de nuevo, les comento que ya esta andando de nuevo, lo que hice fue poner los pines 2 al 7 a gnd (los sensores de fin de carrera)y encontré otro problema que me esta dando algunos dolores de cabeza es el ruido del interruptor del mini torno, es tanto que me clava el arduino, ya veré como lo soluciono y les comento. si no entendí mal Macksterrr estas teniendo el mismo problema que tenia yo, por eso se los comento.

      Eliminar
  57. Me ha encantado este driver para una CNC que estoy creando. Todo lo estoy haciendo con materiales reciclados y he conseguido 4 L298N desmontando impresoras entre otras cosas.

    Mi consulta es que quiero poner dos motores paso a paso pequeños, para mover toda la estructura de la CNC, uno a cada lado, en vez de usar uno central. Me he decantado por esta opción, porque no dispongo de motores paso a paso más grandes y usar uno pequeño en la parte central con una transmisión hacia los dos laterales sería forzar mucho ese motor.

    Y para que estén sincronizados, los quiero conectar al mismo driver. Los dos motores son exactos, lo único que va a variar es el giro (uno girará al mismo sentido que las agujas del reloj y otro al contrario).

    Mi consulta es saber si podré conectarlos los dos motores paso a paso al mismo driver sin ningún problema (cambiando las conexiones de las bobinas para que se transmita bien el movimiento). Creo que el consumo no excederá de lo que soporta este driver, pero tengo mis dudas de si habrá algún otro problema.

    Un saludo y sigue con este blog, está muy currado y tus proyectos son de mucha ayuda.

    ResponderEliminar
  58. Buenas,muy interesante,una duda quiero controlar 3 motores ya tengo los tres drivers, la masa de los 3 deben ir juntas y llevarla a masa del arduino?? Esta bien que para los 3 drivers tome los 5 voltios del arduino??? Gracias.

    ResponderEliminar
  59. Al igual que el anónimo de arriva necesito manejar dos motores,,quiero alimentar mi arduino por usb, puedo sacar los 5 voltios de arduino para alimentar a los 2 L298 con los 5 voltios que requieren??

    ResponderEliminar
  60. Muy bueno el driver, pero me salta una duda, como se controla el voltaje y el amperaje suministrado a los motores?

    ResponderEliminar
  61. Tengo un intento frustrado de utilizar uln2003a con l297 para controlar las señales de 6 motores de paso de 5v con 5 cables.
    todo cabeado, los motores no funcionan solo se calientan y los drivers con el amplificador uln2003a solo acenden 2 led y piscan conforme los pulsos pasados por el txapucnc_tx.
    prove diferentes cosas, no encontre un squematic que funcione, en el ultimo me conecto un terra comun a la fuente hacia el arduino y tambien 5v, tengo 6 cables con 3 pares de DIR y STEP, STEP creo ser el half/full y dir el cw/ccw en los pines 19 y 17 de la placa. no conecto el clock y ni mismo el reset en ninguna parte.
    mi circuito cuenta con una resistencia de 22k entre el osc en el pin 16 y la entrada vcc (5v) y luego un capacitor de 3.3nF entre el osc y el tierra.
    estoy ya hace algunos dias integralmente, hacia tarde, revisando y probando diferentes conexiones, no se qual es el problema.
    seria mui bienvenida una ayuda.
    ventolunar(at)gmail.com

    ResponderEliminar
  62. hi,

    I have two question please if I may,

    1- can I use the 1N4937 instead of the 1N5822
    2- is this card compatible with the paperduino leonardo.

    thanks' in advance

    ResponderEliminar
    Respuestas
    1. Goodmorning
      Any Help please ?

      Eliminar
  63. Hola buen proyecto para un YouTube de fresa cnc en funcionamiento gracias!

    ResponderEliminar
  64. I have two question please if I may,
    1- can I use the 1N4937 instead of the 1N5822
    2- is this card compatible with the paperduino leonardo.thanks' in advance

    Thank in advance

    ResponderEliminar
  65. Hola iñigo, fijate que he utilizado tu circuito para controlar un motor paso a paso Nema 23 57HS13 bipolar, y con el arduino le envio los pulsos. Lo que me sucede es que al momento de darle una RPM de 200, el motor ya no se mueve, solo hace un sonido, he estado realizando mas pruebas y con unas RPM de 150, el motor me va bien, pero necesito que este sea mas rapido, y no se si esto se deberá al tiempo de respuesta del L298N, los transistores o los diodos, saludos.

    ResponderEliminar
  66. hola ante todo saludos quien me puede enviar o decir como se puede hacer un drive que soporte 3A ya que los motores que consegui son de 3 amperes

    ResponderEliminar
  67. Hola. Llevo 1 mes volviendome loco.
    Tengo dos paperstepper que me funcinan bien y el tercero no.

    ha probado de todo, incluso a comprar nuevos componentes y hacer un paperstepper nuevo.

    El motor de vibra cuando le pide que avance y no hace nada.

    Os comento lo que he echo a ver si se os ocurre por donde van los tiros.

    1) Probe a poner otro de los motore y me hacia lo mismo.
    2) Le he cambiado el L298N y hace lo mismo.
    3) Le cambie los Transistores y igual.
    4) Me hice el circuito sin placa al aire siguiendo el esquema y me hace lo mismo.
    5) Probe a poner los leds a la salida y el resultado es el siguiente:
    La línea 3 y 4 no van bien. la línea 4 se enciendo si le doy 5V al L2 y se apaga si se los quito, pero la línea 3 no se enciende en ningún caso.

    He probado a cambiar el transistor de la línea 1 a la 2 e incluso poner otros y sigue igual.

    En la siguiente imagen podéis ver el circuito sin placa. http://piensayactua.com/tmp/img/IMG_20131230_193844.jpg
    Esta otra imagen se puede ver montado para hacer pruebas con los led. aunque veáis que tengo un regudador de corriente, es para bajar los 5V a 3,4 para los motores.
    http://piensayactua.com/tmp/img/IMG_20140105_142954.jpg

    Incluso me he diseñado una PCB por si las mosca y nada. Pero ya he dejado los dos ejes que me funcionan con la PCB el eje Y y Z, esto es una faena.
    http://piensayactua.com/tmp/img/IMG_20140105_143034.jpg
    http://piensayactua.com/tmp/img/IMG_20131230_193825.jpg
    En una de las últimas imagenes se ve la placa sin los transistores, los he quitado para probar.

    Un saludo y gracias.

    ResponderEliminar
  68. Que tal,
    Me gustaria saber como controlar mi CNC con los l297 y el l298 mediante el arduino, el circuito ya lo tengo montado y funciona bien, ahora solo quiero hacerlo funcionar con el arduino, he leido que probablemente el sketch que me sirva sea el polulo, es posible?? o que modificaciones tengo que hacer, ya que el circuito que tengo armado necesita las señales de permitir, direccion, paso medio/completo, reloj...

    ResponderEliminar
  69. Hola Beto Casablanca;
    ¿Podrías compartir el esquema que tienes con los L297 y 298 juntos?
    Estoy empezando en esto y me gustaría hacer unos drivers como los tuyos.
    Un saludo.

    ResponderEliminar
  70. Claro¡¡ GETAFE83 mira no son de mi autoria, te paso el link del video explicando el funcionamiento y ahi mismo vienen los links de los diagramas...Saludos

    link de video

    https://www.youtube.com/watch?v=n_iRH8hr6PI


    link de diagrama:

    http://es.scribd.com/doc/42825992/Interfaz-Motor-2-Amp


    OJO El diagrama tiene mal colocado el signo + en los diodos...

    ResponderEliminar
  71. hona,alguien puede ayudarme.
    he probado de todo con los l298n de papersteper y con los chinos,motores de 5 y 6 hilos,y lo unico que consigo es que los mores vibre,y nada mas.he revisado todo los cables mil veces y nada de nada,y veo que todos lo ponesn a funcionar mas o menos rapido.
    yo llevo con este problema semanas y ya no se que hacer ni probar.
    ALGUIEN ME AYUDA?
    muchas gracias

    ResponderEliminar