Pregunta:
Depurando mi circuito de controlador de motor paso a paso
Paul
2014-05-04 00:56:33 UTC
view on stackexchange narkive permalink

Estoy usando el controlador de motor paso a paso Pololu DRV8825 para controlar un motor paso a paso NEMA 17 con un Arduino Uno. Según el sitio web de Pololu, el circuito debería estar cableado de la siguiente manera:

enter image description here

Sin embargo, me desvié un poco de este esquema exacto:

  • El Arduino (microcontrolador) es alimentado por un cable USB conectado a la computadora
  • Conecté el pin de 5V en el arduino al riel + en una placa de pruebas. Luego conecté dos cables en este riel a los pines RESET y SLEEP del controlador.
  • Estoy usando una batería de 9V para alimentar el motor .
  • He conectado los pines DIR y STEP a los pines 12 & 13 de Arduino Uno, respectivamente.
  • En consecuencia, codifiqué y subí el siguiente esquema:

      int stp = 13; // conecta el pin 13 a stepint dir = 12; // conecta el pin 12 al directorio a = 0; // configuración de contravacío gen () {pinMode (stp, OUTPUT); pinMode (dir, SALIDA); } void loop () {if (a < 200) // barrer 200 pasos en dir 1 {a ++; escritura digital (stp, ALTA); retraso (10); digitalWrite (stp, LOW); retraso (10); } else {digitalWrite (dir, HIGH); a ++; escritura digital (stp, ALTA); retraso (10); digitalWrite (stp, LOW); retraso (10); if (a>400) // barre 200 en el directorio 2 {a = 0; digitalWrite (dir, BAJO); }}}  

    RESULTADO
    El motor paso a paso no gira. En cambio, solo sisea en un tono alto. Después de un rato, el controlador se calienta mucho.

    COSAS QUE HE INTENTADO

    1. Verifiqué dos veces para asegurarme de que los cables paso a paso conectados los pares están conectados correctamente a los pines "A" y los pines "B" del controlador.
    2. Intenté invertir el par A1-A2 y el par B1-B2 en todas las combinaciones posibles. Todas las combinaciones producen el mismo resultado que el anterior.
    3. Intenté aumentar la fuente de alimentación del motor a 12V (8 baterías alcalinas AA). Ocurre el mismo resultado.
    4. Verifiqué dos veces para asegurarme de que el capacitor electrolítico radial de 100microF esté conectado con el extremo largo al suministro positivo del motor y el extremo corto al suministro negativo del motor (en un riel de tablero diferente al del fuente de alimentación lógica, por supuesto).
    5. Intenté usar el pin de 3.3V en lugar del pin de 5V para conectarme a SLEEP y RESET en el controlador. Nuevamente, ocurre el mismo resultado.

    No estoy seguro de qué probar a continuación para depurar mi circuito.

    Mi corazonada:

    Sin embargo, tengo una sospecha basada en un pequeño cuadro de advertencia en el sitio web de pololu que dice:

    Precaución: instalar los pines del cabezal de modo que el lado de la serigrafía esté hacia arriba y los componentes hacia abajo puede limitar el rango de movimiento del trimpot utilizado para establecer el límite de corriente. Si planea instalar los pines del encabezado en esta orientación, establezca el límite de corriente antes de soldar los pines.

    La forma en que soldé los encabezados en el controlador se ve como la esquina inferior izquierda de la imagen de abajo:

    enter image description here

    Mi pregunta:
    Dado que mi motor paso a paso requiere una corriente de 1.7A, ¿hay algo que pueda hacer? para mejorar este circuito para que funcione? ¿Cometí algún error? ¿Hay algo más que deba probar o comprobar? ¿He soldado el encabezado de forma incorrecta?

    La dirección de los pines no debería importar ... solo dice que puede ser difícil girar el trimpot con la parte de plástico negro de los cabezales contra él, por lo que recomienda hacerlo de la manera en que lo hizo.
    @sachleen Supongo que el trimpot es esa pequeña parte circular que parece un tornillo. ¿Necesito girarlo para ajustar el consumo actual? Si es así, ¿cómo puedo saber exactamente cuánta corriente estoy recibiendo?
    Sí, es la cosa circular en la parte superior izquierda de la imagen inferior (lado del componente hacia arriba). No estoy seguro de si necesita cambiarlo. Lea la sección "Limitación de corriente" de pololu.com para ver cómo ver qué tipo de corriente está dibujando.
    @sachleen: Ok. Veo. Dice "medir la corriente que corre a través de una sola bobina del motor sin sincronizar la entrada STEP". Pero no estoy seguro de qué significa "sin marcar la entrada STEP" ... ¿Entiendes lo que eso significa?
    Nunca he usado un paso a paso, por lo que es posible que no tenga idea de lo que estoy hablando. buuut ... Vea dónde hace `digitalWrite (stp, HIGH);` y low? eso es cronometrarlo. Creo que quiere que lo dejes alto.
    Creo que también debería agregar `digitalWrite (dir, LOW);` en su `setup ()`, no creo que cambie nada, pero es preferible aplicar el valor que desea al principio.
    ¿Ha probado su circuito sin baterías pero usando una fuente de alimentación "mejor" (por ejemplo, alguna verruga de pared 9V 2A)? Eso le permitiría asegurarse de que esto no sea un problema de energía (o lo contrario).
    Esta pregunta realmente no tiene mucho que ver con arduino, y es más probable que reciba información informada sobre EE stackexchange.
    @ChrisStratton: Lo sé. Estaba debatiendo publicarlo allí o aquí. No estaba seguro de si el problema era el boceto de arduino, el circuito eléctrico o algo más. Después de las respuestas, ahora parece que el problema es probablemente la fuente de alimentación. ¿Recomiendas que elimine la pregunta aquí y vuelva a publicarla en el sitio EE SE?
    No creo que deba eliminarse, pero la migración sería una buena idea.
    Claro, @chrisStratton. Continúe y migrelo.
    Cuatro respuestas:
    #1
    +4
    Nick W.
    2016-01-03 22:29:01 UTC
    view on stackexchange narkive permalink

    Tuve el mismo problema al configurar este circuito con este código y controlador en un Arduino Uno. Todo lo demás estaba bien, pero la corriente para el motor se estableció MUY alta en el controlador de fábrica. El VREF era de 1,7 voltios y tenía que estar alrededor de 0,5 para el motor que estaba usando. Cuando configuré el VREF en el voltaje apropiado, el motor comenzó a girar como debería y dejó de silbar.

    Sé que esta publicación es antigua, pero espero que esto ayude a alguien más. Pololu tiene un excelente video (y documentación en general) para configurar el voltaje apropiado en la mayoría de sus controladores en la página del producto aquí: DRV8825 Portador de controlador de motor paso a paso, alta corriente.

    #2
    +2
    Anonymous Penguin
    2014-05-04 03:28:49 UTC
    view on stackexchange narkive permalink

    Un par de cosas que noté primero: esta es una de las preguntas con mejor formato que he visto ... :) De todos modos, su circuito se ve bien para mí excepto por algunas cosas:

    Advertencia: esta placa portadora utiliza condensadores cerámicos de baja ESR, lo que la hace susceptible a picos de tensión LC destructivos, especialmente cuando se utilizan cables de alimentación de más de unas pocas pulgadas. En las condiciones adecuadas, estos picos pueden exceder la clasificación de voltaje máximo de 45 V para el DRV8825 y dañar permanentemente la placa, incluso cuando el voltaje de suministro del motor es tan bajo como 12 V.Una forma de proteger al controlador de tales picos es colocar un Gran (al menos 47 µF) condensador electrolítico a través de la potencia del motor (VMOT) y tierra en algún lugar cercano a la placa.

    (Yo mismo agregué cursiva / negrita, cita de la página del producto).

    Los capacitores son baratos ($ 1.50 en eBay de EE. UU.), Y aunque los nuevos controladores también constrúyalo bien. No hay nada más molesto que esperar el envío de algo que no debería haber tenido que arreglar.

    Además, la energía de la batería (especialmente las AA) puede ser abultada si no se hace correctamente y es posible que no proporcione suficiente corriente. Tenga en cuenta que, en una configuración en serie, proporcionará el voltaje de 8 AA, pero solo la corriente de uno. No puede hacer funcionar un motor de 1,7 A con la corriente de un solo AA. Adivina en la oscuridad: necesitarás ~ 80-100 AA para proporcionar suficiente corriente y voltaje. Soy demasiado vago para medir la resistencia interna y calcularla.

    Solución sugerida: hay un millón de cosas que podrían salir mal. Sin estar allí, apuesto a que su función de retraso es demasiado corta. Lo que esto hará es no proporcionar suficiente tiempo para que el motor se mueva, por lo que permanecerá quieto. Esto todavía usaría mucha corriente (el 50% del tiempo es la corriente completa para las bobinas del motor), por lo tanto, calentaría el controlador. ( Nota sobre el calor: ... para suministrar más de aproximadamente 1,5 A por bobina, se requiere un disipador de calor u otro método de enfriamiento ... -Página del producto: usted ' Necesitará un disipador de calor para enfriar su chip.) También tenga en cuenta que algo de calor es normal; Una regla general es que si hace demasiado calor para mantener el pulgar sobre él durante unos segundos, necesita más enfriamiento. Recuerde que cuanto más se use, más caliente se pondrá, así que tenga esto en cuenta cuando decida si desea agregar un disipador de calor.

    tl; dr: Necesita aumente el tiempo de demora y proporcione más corriente de la que tiene actualmente.

    Intenté aumentar el tiempo de retardo a 1000 ms (1 segundo) y todavía no hubo cambios en el comportamiento. Supongo que tendré que probar con baterías que puedan proporcionar un mayor amperaje. Busqué mis baterías AA y descubrí que proporcionan alrededor de 900 miliamperios-hora. ¿Debo buscar baterías que proporcionen al menos 1700 miliamperios-hora (correspondientes al consumo de corriente de 1,7 amperios del motor paso a paso)?
    @Paul No, este es un error común. Un mAH significa que tiene la capacidad de liberar tanta energía, ** no que pueda liberarla de una sola vez. ** Dado que es difícil saber la corriente máxima en la mayoría de las baterías de un solo uso, recomiendo obtener una 9.6 V "batería RC" recargable que puede proporcionar 1.8 + A (amperios, no amperios hora). Pueden resultar un poco costosas, pero necesitas tanta potencia. ** Consejo: no intente agregar baterías recargables en serie. ¡Son muy peligrosos si no están perfectamente "equilibrados"! **
    Deje de dar consejos erróneos sobre las baterías. La mayoría de las celdas pueden suministrar una corriente muchas veces superior a su clasificación de mAh, por un factor de 10 o más (la clasificación C). El "equilibrio" es en gran parte una preocupación de * carga *, y principalmente con las químicas del litio, algo que no utilizan ni un paquete RC de 9.6v ni pilas AA individuales de 1.2 - 1.5v.
    Ya se muestra un límite de 100uF en el circuito, entonces, ¿por qué mencionar que es necesario agregar un límite?
    @Chris Por equilibrado me refería a que si combina dos baterías de litio ligeramente diferentes, pueden ser muy peligrosas. Por lo que puedo decir, el OP está usando baterías alcalinas AA estándar, y estoy seguro de que no se pueden admitir dos amperios a la vez. Incluso si pudiera, lo más probable es que no dure veinte minutos debido a la pérdida de voltaje en la batería. No hay un chip para gestionar la pérdida de voltaje. El OP tampoco ha especificado la composición de la batería que están usando, por lo que puede suministrar suficiente corriente, si se carga lo suficiente.
    @jfpoilpret Vaya, no me di cuenta. Sin embargo, no está de más dejarlo ahí. :)
    @AnnonomusPenguin: Estoy usando pilas alcalinas. ¿Quizás cambiar a litio funcionaría mejor? Escuché que pueden proporcionar más amplificadores ...
    No use litio: existen preocupaciones reales, aunque no tan erróneamente descritas aquí. Los AA alcalinos pueden suministrar fácilmente 2 amperios, aunque solo por un poco menos de una hora. Realmente deberías usar una fuente de alimentación.
    @Chris Por favor, haga ping a la persona con la que está hablando con `@Username` para que reciba un ping. De todos modos, ¿* uno * AA puede suministrar 2A? Hay que recordar en serie que se suman las características de voltaje, pero las características de corriente son las de una sola batería. Me preocupa que un AA no pueda proporcionar 1.5V 1.8A, que es lo que necesita el OP.
    @Paul Como otros han señalado, la mejor ruta que yo sepa para depurar más esto es obtener una fuente de alimentación que pueda proporcionar la cantidad correcta de electricidad. También puede usar una fuente de alimentación antigua para este propósito ...
    @AnnonomusPenguin: una sola pila AA puede, de hecho, proporcionar varios amperios. Uno de los problemas reales con los sitios especializados como este es que los temas se desvían a un lugar apartado donde hay escasez de conocimiento real y mucha información errónea. Además, si va a hacer recomendaciones de uso del sitio, puede comenzar usando el nombre de usuario real de alguien en su notificación @; de lo contrario, depende de la notificación * automática * a los de las publicaciones anteriores.
    @Chris Estoy corregido, debo estar comprando baterías baratas :) De todos modos, solo necesitas las primeras tres letras para un ping.
    #3
    +1
    johnb
    2015-11-08 11:31:29 UTC
    view on stackexchange narkive permalink

    No creo que sus baterías tengan una capacidad de corriente demasiado baja, su tiempo de retardo no es demasiado corto, a 10 +10 ms por pulso de reloj, solo está hablando de 50 pasos por segundo, eso no es tan rápido. He escrito programas en los que he tenido que ir a microsegundos para obtener suficientes rpm de mi stepper.

    Primero, saca todo de tu bucle excepto la escritura digital alta, la escritura digital retardada baja y las líneas de retardo. Entonces el programa "debería" girar el motor continuamente en una dirección. De esa manera, está seguro de que no tiene un problema de lógica. En segundo lugar, ¿verificó si no conectó el pin 12 y 13 al revés, de modo que le esté diciendo al conductor que cambie de dirección cada 10 ms en lugar de dar pasos? ? El sonido que hace sería más parecido a un zumbido o vibración, generalmente un silbido suave y estático es cuando el motor está habilitado, pero no recibe un pulso de paso.

    Finalmente, esta publicación tiene aproximadamente 18 meses de antigüedad, es considerado y útil para los demás explicar cómo resolvió el problema (suponiendo que lo haya resuelto).

    #4
      0
    Jose
    2015-11-29 02:41:48 UTC
    view on stackexchange narkive permalink

    Lo único que me ayudó fue NO conectar GND a la placa paso a paso del microcontrolador (línea negra inferior del esquema publicado en la primera publicación).

    Si estuviera conectado, el controlador consumiría 12V @ 3A inmediatamente y se pondría muy caliente. Además, el motor no giró en absoluto.

    No, estás equivocado. Una conexión a tierra común es absolutamente necesaria para que esto funcione, y si no obtiene una, probablemente la esté obteniendo a través del cableado de CA. Cualquiera que sea la causa de su sobrecalentamiento, era un problema diferente. Lo que ha publicado aquí es un ** mal consejo **.


    Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
    Loading...