Arduino impulsa los motores de diecisiete pasos, a cargo

Es justo decir que construir dispositivos electrónicos es más fácil ahora que nunca. Con componentes modulares baratos, a menudo hay solo unas pocas docenas de líneas de código y algunos cables de salto que se interponen entre su idea y un prototipo funcional. Conducir motores paso a paso es un ejemplo perfecto: puede tomar una placa controladora barata, conectarla a un microcontrolador y el resto es básicamente software. Pero últimamente [mechatronicsguy] me preguntaba si incluso tío había más hardware del técnicamente necesario para realizar el trabajo.

Por supuesto que no quiso complicar las cosas. Su razón de ser era completamente económica; si desea conducir una docena o más de motores paso a paso, incluso los controladores "baratos" pueden sumar. Entonces se preguntó si podría omitir por completo el controlador y conectar el motor paso a paso directamente a los pines digitales del Arduino. En general, esta es una mala idea, pero si tiene cuidado y quiere arriesgarse, [mechatronicsguy] es la prueba viviente de que es posible

Entonces, ¿cuál es el truco para alimentar diecisiete increíbles motores paso a paso individuales directamente desde los pines digitales del Arduino Mega? Bueno, para empezar, no ejecutará los potentes motores NEMA 17 como los que podría encontrar en una impresora 3D. [mechatronicsguy] utiliza el pequeño (y económico) 28BYJ-48, un escalón ligero que se utiliza en muchos productos de consumo. Incluso con este motor relativamente pequeño, debe abrir la caja y cortar un rastro en el PCB para cambiarlo de unipolar a bipolar.

Aparte de eso, debes tener cuidado. [mechatronicsguy] informa que ha tenido éxito en hasta diez de ellos a la vez, pero siendo realistas, cuantos menos funcionen a la vez, mejor. En realidad, esto se facilita debido a las especificaciones relativamente pobres del motor 28BYJ-48; su enorme tamaño de paso de once grados significa que realmente no se siente como el mismo tipo de deslizamiento que obtendría en un NEMA 17 cuando se apaga. Esto significa que puede cortar la electricidad a todos excepto al motor en movimiento activo y estar bastante seguro de que todos permanecerán donde los dejó.

Con tan popular como el paso 28BYJ-48, hay varios proyectos con los que este método de interfaz "rápido y sucio" podría funcionar. Este pequeño rastreador de estrellas de "puerta estable" es un ejemplo obvio, pero también vimos algunos brazos robóticos muy bonitos construidos con estos motores baratos que podrían beneficiarse de la técnica.

  • Andy Pugh dice:

    Aunque ningún hardware adicional es atractivo, por £ 0.51 (60 centavos?) Por chip (£ 0.25 por motor), el ULN2803 funcionará en pasos de hasta 50V / 500mA en modo de polo único a un costo muy bajo. (y evita la necesidad de modificar los motores)
    De hecho, no sé por qué necesitaba modificar los motores porque el sitio al que se hace referencia parece no funcionar.

    • Lucas dice:

      Si tiene más tiempo que dinero, puede comprar bolsas llenas de transistores jellybean (PNP y NPN más baratos) e implementar un búfer de transistores en una placa de banda:

      http://www.ermicro.com/blog/wp-content/uploads/2010/11/trsw28.jpg

      • Andy Pugh dice:

        Sin embargo, un ULN sin vida parece más fácil. ¿Y no requiere ese esquema el doble de pines GPIO que el enfoque ULN de un solo polo?

        • Lucas dice:

          Realmente no, ya que los transistores están emparejados PNP-NPN, que es un par complementario. Puede vincular los pares de entrada juntos a un pin IO siempre que se asegure de que siempre tenga un estado lógico definido. Tenerlos separados solo le permite conducir el puente a un estado hi-z donde el motor está libre.

          • Ren dice:

            Más tiempo que dinero ...
            ¡especialmente el tiempo que tomaría encontrar “pares combinados” en fabulosos transistores gelatinosos!
            B ^)

          • tekkieneet dice:

            @Luke:> siempre tiene un estado lógico definido.
            si las bases están conectadas entre sí sin un estado definido, ambos transistores NPN / PNP estarían en ON porque sus transiciones BE están polarizadas hacia adelante. Esto puede ocurrir durante un encendido hasta que el firmware establezca el pin de E / S en el modo de salida. Cuando ambos pares de transistores están encendidos, tiene cortocircuitos en los rieles eléctricos. Esto puede causar problemas si la fuente de alimentación uP produce subtensión como resultado de la suspensión del riel de alimentación debido a una corriente excesiva.

            @Ren: No tienen que ser "pares compatibles", solo tienen que ser transistores de conmutación NPN / PNP. Construyes controladores, no amplificadores.

          • Lucas dice:

            > Esto puede suceder durante un encendido hasta que el firmware establezca el pin de E / S en el modo de salida.

            Por lo tanto, ¿por qué fuerza un estado con un voltaje lo suficientemente pequeño en comparación con las resistencias básicas, pero no tan pequeño como para que no pueda operarlo con su micro?

          • Martín dice:

            Ren, no necesitas pares realmente emparejados. Estos transistores funcionan de forma puramente digital.

      • Lucas dice:

        Aunque la unidad unipolar tendría mucho más sentido, porque necesita la mitad de los transistores.

        http://ebldc.com/wp-content/uploads/2010/09/UnipolarMotors.jpg

        Necesita un quinto para cambiar la línea VCC a motores individuales, de modo que pueda compartir las líneas de control con muchos motores, pero eso es básicamente todo lo que necesita. Una NPN empaquetada cuesta muy poco.

        • Andy Pugh dice:

          ¿Conseguiste leer el artículo original (no puedo conseguirlo)? Estoy tratando de averiguar por qué necesitaba cambiar de unipolar a bipolar. (y normalmente eso solo significa ignorar un cable, no cortar una conexión)

          • Lucas dice:

            Porque no puede conducir un motor unipolar directamente con el Arduino.

            Suponga que su motor unipolar está conectado al terminal común a VCC, y su pin IO está bajado. Luego, eleva el estado lógico a alto para detener el flujo a través de la bobina. La bobina intentará mantener la corriente en la misma dirección, por lo que parece que una batería está conectada con el terminal negativo al VCC y el terminal positivo al pin IO; obliga a que la corriente fluya a través del pin IO y emite el Pin VCC del Arduino a la batería; repita esto varias veces y saldrá el humo mágico.

          • tekkieneet dice:

            > Luego aumenta el estado lógico alto para detener la corriente a través de la bobina.
            O puede distanciar la E / S para que funcione igual que el MOSFET externo.
            > La bobina intentará mantener el flujo en la misma dirección
            El inductor intenta mantener el mismo * tamaño *, es decir, polaridad y valor. Entonces, si inyecta 20 mA, sería un máximo de 20 mA y caducaría a partir de ahí. No hay aumento de * corriente *, solo un aumento de * voltaje *.
            El daño se debe al * voltaje * generado por el di / dt mientras la energía almacenada del inductor está tratando de forzar la corriente a través del circuito ahora abierto. Utilice un diodo libre para permitir que fluya la corriente de fuga.

          • Lucas dice:

            El caso es que los diodos de protección de pines IO en el Arduino no están diseñados para manejar cargas de 20 mA repetidamente. Cuando agrega un diodo de radio libre, si realmente protege o no al arduino depende de quién tiene el voltaje de umbral más bajo, porque el diodo incorporado del Arduino ya funciona como el diodo de radio libre en el circuito, por lo que es solo una ruta paralela para él. .

          • Martín dice:

            @Andy, sí, de verdad, incluso si los dos vientos están conectados (conexión de 5 cables), los voltajes en los puntos medios son nominalmente iguales.

            @Luke, la hoja de datos del Atmega2560 dice "corriente CC máxima en cualquier pin IO" de 40 mA. No hay ninguna limitación adicional del modo de funcionamiento, como entrada o salida. Entonces veo corriente a través de los diodos de compresión como se incluye en la especificación. Si realmente lo desea, puede usar diodos Schottky en paralelo con los diodos de compresión internos. También funciona si no cambia la salida “hi-Z” sino al estado lógico H. El transistor de salida es un transistor MOS, también conduce corriente inversa sin problemas, siempre que esté encendido por el voltaje de puerta correcto. Hago esto con regularidad, p. Ej. Con transistor de protección de polarización inversa. Une eficazmente su diodo interno para reducir las pérdidas.

        • Lucas dice:

          Ah, y si cambia la línea VCC al paso unipolar a una velocidad bastante alta, la bobina actúa como un filtro y limita la corriente a algún valor semicontinental. Solo necesita un diodo a través de la bobina para suministrar la ruta de retorno. De esa manera, puede cambiar entre los pasos rápidamente, mucho más rápido que su patrón de pasos real, y se comportarán como si los estuviera ejecutando constantemente; tendrán una reducción de torque que responde al ciclo obligatorio de su interruptor.

        • profuso dice:

          Algunos PNP (o canal p) y pueden matricular muchos de forma unitaria por el cuádruple de pyme de npn (ncanal). Si. Agregue dos transistores más también y puede operar un paso completo con dos E / S más uno para cada unidad. Lazy podría usar un decodificador 4-16 para alimentar 16 por 4 + 2 y probablemente un habilitador. En los otros 4988 escalones son tan baratos como uno (uln) 2803 o 2808. Pequeñas cantidades de todos modos. Así que regrese a bipolar si lo desea y podría conducir con una precisión ridícula que el 28byj difícilmente usaría. Como referencia, el prototipo original pensó que era necesario aumentar la resistencia transformándose en bipolar. Además, he notado que algunos de los 28byj tienen sus cables de fase encendidos / invertidos en el lado del motor últimamente. Entonces, si se rasca el gris, verifique eso. Parece que los suministros 28byj baratos vienen con una versión de placa de controlador 2803 de 5VDC de todos modos.
          No creo que este proyecto valga la pena.

          • profuso dice:

            Uln2003 ne 2808 maldita sea. No es que no pueda usarse.

    • svofski dice:

      Menciona una mayor resistencia, pero también hay un mayor par por mA. Necesita cada parte con solo 20 mA disponibles.

  • (...) dice:

    ¿No hay Arduino o protectores Arduino de tipo PLC que le permitan conducir más corriente para la salida y también proteger los pines de salida contra cortocircuitos o sobrecorrientes?

  • dice:

    Un fuvkinh ULN2903A

    • Martín dice:

      Pieza antigua "Fuvkinh" con salidas favorables -> caída de aproximadamente 1 voltio en cada transistor de salida. Bueno para sistemas de 12V, de alguna manera bueno para 5V, pero completamente inútil en un sistema de 3V. ¿Por qué no hay reemplazo MOS para esta pieza? OTOH ocho SOT-23 FET utilizan menos espacio que el paquete DIP heredado. Cuatro FET duales SOT-363 utilizan incluso menos espacio que SO-16.

      • Andy Pugh dice:

        Si almacena en búfer con ULN ****, puede arrancar los motores con cualquier voltaje que le guste hasta 40V. Esta es otra ventaja, no está limitado a hacer funcionar los motores con voltaje lógico IO.
        Pero no es útil discutir esto con demasiados detalles. El propósito de este artículo e hilo es que puede operar paso a paso sin una interfaz, o con tabletas costosas y baratas, controladores de pasos ligeramente menos baratos, todo si se trata de sistemas avanzados de circuito cerrado que funcionan a 100 + V y cientos de vatios.

        Este artículo agrega sujetalibros útiles con parte cero.

        Tengo un pequeño escalón de 6 mm de diámetro con una guía lineal. Puedo ver esto muy bien empujando a esos.

  • Urso Naff dice:

    Además de robots ridículos y otras tonterías. Esta parece ser una de esas cosas en las que se podría producir una impresora 3D semifuncional increíblemente barata a precios de juguete. Dirigir 4-6 motores parece razonable, y uno podría evitar problemas al conducir un extremo caliente usando resina UV y un inyector curativo.

    • Davy dice:

      ¡No ejecutará una impresora con esos motores, especialmente cuando la necesidad actual es la de Arduino!

      • Urso Naff dice:

        Varias impresoras 3D utilizan estos motores, incluida la Hero101. No son una buena opción para una impresora, pero ciertamente funcionan.

  • Paul dice:

    Sin embargo, lo tonto es que compró los escalones con los "controladores", que suele ser ULN2003 para este motor. También pagó $ 3 por cada motor + conductor, mientras que si se molestaba en mirar a Ali, podía comprar los motores (sin placas de conductor) por

    Tampoco veo ningún esquema en su sitio web, así que no tengo idea de por qué modificó los motores a bipolair (que aún necesitaría 4 pines por motor)

    Si desea hacer algo con este tipo de motor, asegúrese de que puede comprarlos con diferentes clasificaciones de voltaje y conexiones rápidas. ¡NO son todos iguales!

    Y que estos motores se queden ahí, se debe enteramente a sus engranajes, y no al bajo número polar. Pueden tener un par de retención relativamente alto, pero esto tampoco tiene nada que ver con el número de barras. Si lo tienen, puede ser por su bajo precio o incluso por su diseño. La torsión abierta generalmente se considera una propiedad negativa y se minimiza. Tengo algunos pasos antiguos (tomados por impresoras de más de 30 años que tienen un número de pulido bajo y casi ningún torque.

    • TLDR dice:

      Literalmente, todo lo mencionado se aborda en el póster para niños, incluso la posibilidad de comprarlos más baratos sin el conductor.

      ¿Te molestaste siquiera en leerlo antes de hacer este comentario?

Nora Prieto
Nora Prieto

Deja una respuesta

Tu dirección de correo electrónico no será publicada.