Tabla de contenido:
- Paso 1: Lista de piezas
- Paso 2: las partes principales
- Paso 3: hazlo funcionar
- Paso 4: control de velocidad
- Paso 5: iniciar / detener
- Paso 6: Control de dirección
- Paso 7: Conclusiones
Video: Conducir un motor paso a paso sin microcontrolador: 7 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
En este Instructable, conduciré un motor paso a paso 28-BYJ-48, con una placa de matriz darlington UNL2003, a veces llamada x113647, sin un microcontrolador.
Tendrá control de inicio / parada, avance / retroceso y velocidad.
El motor es un motor paso a paso unipolar con 2048 pasos por revolución en modo paso completo. La hoja de datos del motor se encuentra en
Los dos dispositivos se pueden comprar juntos de varios proveedores. Conseguí el mío de kjell.com
Bing it o google it para encontrar un proveedor cerca de usted.
Primero pasaré por algunos pasos y partes necesarios para que funcione, y luego agregaré algunos pasos y partes para tener más control.
Se le debe advertir que las partes que utilizo son las que tengo en mi cofre del tesoro, y no necesariamente las partes más adecuadas para ese propósito.
Además, debes tener en cuenta que este es mi primer Instructable y que soy bastante nuevo en la electrónica.
Agregue comentarios si cree que he hecho algo que no debería, o si tiene sugerencias para mejorar o sugerencias para piezas más adecuadas.
Paso 1: Lista de piezas
Las partes utilizadas para este proyecto son
- Tablero de circuitos
- Motor paso a paso 28byj-48
- Placa de matriz de transistores Darlington ULN2003 (x113647)
- 74HC595 registro de desplazamiento
- Contador de ondulación binario 74HC393
- Potenciómetro digital DS1809-100 Dallastat
- Tampón octal 74HC241
- 3 × botones táctiles
- 3 resistencias de 10 kΩ
- 2 condensadores cerámicos de 0,1 µF
- 1 × condensador cerámico de 0,01 µF
- Cables de conexión
- Fuente de alimentación 5V
Paso 2: las partes principales
El registro de desplazamiento 74HC595
El motor se mueve dando repetidamente a los cuatro pines de entrada de la placa UNL2003 esta secuencia:
1100-0110-0011-1001
Esto impulsará el motor en lo que se denomina modo de paso completo. El patrón 1100 se desplaza repetidamente a la derecha. Esto sugiere un registro de desplazamiento. La forma en que funciona un registro de desplazamiento es, en cada ciclo de reloj, los bits en el registro se desplazan un lugar a la derecha, reemplazando el bit más a la izquierda con el valor del pin de entrada en ese momento. Por lo tanto, debe alimentarse con dos ciclos de reloj de 1 y luego dos ciclos de reloj de 0 para generar el patrón para bucear el motor.
Para generar las señales de reloj, se necesita un oscilador que genere una serie constante de pulsos, preferiblemente una onda cuadrada limpia. Esto formará la base del patrón cambiante de señales al motor.
Para generar los "dos ciclos de uno y luego dos ciclos de 0", se utilizan flip-flops.
Tengo un registro de desplazamiento 74HC595. Este es un chip muy popular, que se describe en numerosos videos de Instructables y Youtube.
La hoja de datos se puede encontrar en
Un buen Instructable es 74HC595-Shift-Register-Demistified por bweaver6, El registro de desplazamiento 74HC595 funciona de modo que en cada ciclo de reloj, los datos en su registro de 8 bits se desplazan hacia la derecha y el valor del pin de entrada en la posición más a la izquierda. Por lo tanto, debería alimentarse con dos ciclos de reloj de 1 y luego dos ciclos de reloj de 0.
Los datos se desplazan en el flanco ascendente del pulso de reloj. Por lo tanto, el flip-flop debería alternar en el borde descendente del reloj, por lo que el 74HC595 tendrá una entrada de datos estable en el borde ascendente del reloj.
El 74HC595 en se puede conectar de esta manera:
Pin 8 (GND) -> GND
Pin 16 (VCC) -> 5V Pin 14 (SER) -> Datos en Pin 12 (RCLK) -> Entrada de reloj Pin 11 (SRCLK) -> Entrada de reloj Pin 13 (OE) -> GND Pin 10 (SRCRL) -> Los pines 15 y 1-3 de 5V emitirán el patrón para impulsar el motor.
La conexión de RCLK y SRCLK garantiza que el registro de datos del chip esté siempre sincronizado con el registro de salida. Poner el pin 13 a tierra hace que el contenido del registro de salida sea inmediatamente visible para los pines de salida (Q0 - Q7).
El temporizador 555
Para generar el pulso de reloj, se puede utilizar el chip temporizador 555. Este también es un chip muy popular, y se describe y comenta más aún que el registro de desplazamiento. Wikipedia tiene un buen artículo en
La hoja de datos está aquí:
Este chip puede, entre otras cosas, generar pulsos de reloj de onda cuadrada. Se utilizan resistencias y condensadores externos para controlar la frecuencia y el ciclo de trabajo (fracción activa).
Cuando se configura para generar pulsos repetidamente, se dice que el chip 555 está en modo astable. Esto se hace cableándolo como en la imagen de arriba. (imagen de jjbeard [dominio público], a través de Wikimedia Commons):
Pin 1 -> GND
Pin 2 -> R1 (10kΩ) -> Pin 7 Pin 2 -> Pin 6 Pin 3 es la salida Pin 4 (reinicio) -> 5V Pin 5 -> 0.01µF -> GND Pin 6 -> 0.1µF -> GND Pin 7 -> R2 (10kΩ) -> 5V Pin 8 -> 5V
La salida del pin 3 se conectará a los pines del reloj de entrada (pin 11 y pin 12) del registro de desplazamiento 74HC595.
La frecuencia de la señal de salida (y por lo tanto la velocidad del motor paso a paso) está determinada por los valores de la resistencia R1 y R2, y el valor del condensador C.
El tiempo de ciclo T será ln (2) C (R1 + 2 R2) o aproximadamente 0,7 C (R1 + 2 R2). La frecuencia es 1 / T.
El ciclo de trabajo, la fracción del tiempo del ciclo en el que la señal es alta, es (R1 + R2) / (R1 + 2R2). El ciclo de trabajo no es muy importante para este proyecto.
Yo uso 10kΩ, tanto para R1 como para R2, y C = 0.1µF.
Esto da una frecuencia de aproximadamente 480Hz y está cerca de la frecuencia máxima que encontré que el motor paso a paso puede manejar sin detenerse.
Para generar el patrón repetido y desplazado 1100 desde el 74HC595, el pin 14 (SER) debe mantenerse alto durante dos ciclos de reloj y luego bajo durante dos ciclos de reloj repetidamente. Es decir, el pin debe oscilar con la mitad de la frecuencia del reloj.
El contador de ondulación binario dual 74HC393
El 74HC393 cuenta en binario, y eso también significa que se puede usar para dividir frecuencias de pulso entre potencias de dos, Su hoja de datos está aquí:
El 74HC393 es dual, tiene un contador de 4 bits en cada lado.
En el borde descendente del pulso de reloj, el primer pin de salida se activa y desactiva. Por lo tanto, el pin de salida uno oscilará con la mitad de la frecuencia del reloj de entrada. En el borde descendente del pin de salida uno, el pin de salida dos se activa y desactiva. Y así sucesivamente para los cuatro pines de salida. Siempre que el pin n se apaga, el pin n + 1 cambia.
El pin n + 1 cambia la mitad de frecuencia que el pin n. Este es el conteo binario. El contador puede contar hasta 15 (los cuatro bits 1) antes de volver a empezar en cero. Si el último pin de salida del contador 1 está conectado como reloj al contador 2, puede estar contando hasta 255 (8 bits).
Para crear un pulso con la mitad de la frecuencia del reloj de entrada, solo se necesita el pin de salida 1. Es decir, contando solo de cero a uno.
Entonces, si el conteo se realiza mediante el pulso de reloj del 555, el pin en el contador 74HC393 que representa el bit 2, oscilará con la mitad de la frecuencia del reloj. Por lo tanto, esto se puede conectar al pin SER del registro de desplazamiento 74HC595, para que esto genere el patrón deseado.
El cableado del contador binario 74HC393 debe ser:
Pin 1 (1CLK) -> 74HC595 Pin 11, 12 y 555 Pin 3
Pin 2 (1CLR) -> GND Pin 4 (1QB) -> 74HC595 Pin 14 Pin 7 (GND) -> GND Pin 14 (VCC) -> 5V Pin 13 (2CLK) -> GND (no utilizado) Pin 12 (2CLR)) -> 5V (no utilizado)
Paso 3: hazlo funcionar
Ahora podemos hacer que el motor funcione, si los pines 0-3 del 74HC595 están conectados a los pines 1-4 de la placa ULN2003 respectivamente.
Por ahora, reemplace el capacitor de 0.1µF en el Pin 6 del temporizador 555 con un 10µF. Esto hará que el ciclo del reloj sea cien veces más largo y uno podrá ver lo que está sucediendo.
Los LED de las placas ULN2003 se pueden utilizar para esto. Desenchufe el motor de la placa ULN2003. Conecte los pines 1 a 4 de la placa a la salida QA-QD (pines 7, 9, 10 y 11) del 74HC595. Conecte el - y + de la placa ULN2003 a tierra y 5V. Si la alimentación está encendida, debería ver el patrón deseado en los LED.
Si desea ver lo que está sucediendo en el contador binario 74HC393, conéctelo a los pines 3-6 de ese en su lugar.
Si el patrón parece correcto, apague, reemplace el capacitor con 0.1µF nuevamente, conecte los pines de entrada 1 - 4 de la placa ULN2003 a los pines de salida QA - QD del 74HC595 y vuelva a conectar el motor.
Con la energía encendida, el motor ahora debería funcionar.
Paso 4: control de velocidad
La velocidad del motor paso a paso se rige por la frecuencia de la salida del temporizador 555. Esto nuevamente, se rige por los valores de las resistencias R1 y R2 y el condensador C1 conectado a él. Al conectar un potenciómetro de 100 kΩ en serie con R2, la frecuencia puede estar entre 480 Hz y 63 Hz. Los pasos pr. segundo del motor, será la mitad de la frecuencia del temporizador 555.
Usé un potenciómetro digital DS1809-100, que está hecho para uso con botones. Los botones que conectan la clavija 2 (UC) y la clavija 7 (CC) a 5V hacen que la resistencia aumente / disminuya entre los terminales RH (clavija 1) o RL (clavija 4) y la clavija 6 (RW) del limpiador. Si mantiene pulsado un botón durante más de un segundo, el botón se repite automáticamente.
La hoja de datos se puede encontrar aquí:
El cableado es así:
Pin 1 (RH) sin usar
Pin 2 (UC) -> botón táctil 1 Pin 3 (STR) -> GND Pin 4 (RL) -> 555 Pin 2 Pin 5 -> GND Pin 6 (RW) -> 10kΩ -> 555 pin 7 Pin 7 (DC) -> botón táctil 2 Pin 8 -> 5V
El cableado del botón táctil 1:
Pin 1/2 -> DS1809 Pin 2
Pin 3/4 -> 5V
El cableado del botón táctil 2:
Pin 1/2 -> DS1809 Pin 7
Pin 3/4 -> 5V
Ahora se puede regular la velocidad.
Paso 5: iniciar / detener
Para iniciar y detener el motor paso a paso, se puede utilizar el pin 4 (el pin de reinicio) del temporizador 555. Si se baja, no habrá pulsos de salida desde el pin 3.
Se utilizará un botón táctil para alternar el inicio y la parada. Presionando el botón una vez, debe arrancar el motor, y presionándolo nuevamente, debe detenerlo. Para obtener este comportamiento, se necesita un flip-flop. Pero el 74HC393 que ya está allí, también se puede utilizar. El 74HC393 tiene dos partes y solo la mitad se usa como divisor de frecuencia para el pulso del reloj.
Dado que el contador binario es en realidad solo un conjunto de flip-flops alternantes en serie, se puede usar el primer flip-flop de la otra parte. Al conectar un botón táctil de manera que el Pin 13 (2CLK) esté bajo cuando se presiona el botón, y alto si no lo está, el Pin 12 alternará en cada nivel bajo. Conectando la clavija 12 a la clavija 4 del 555, iniciará y detendrá su salida y, por lo tanto, el motor.
Los botones táctiles son un poco complicados porque son mecánicos. Pueden 'rebotar', es decir, pueden enviar múltiples señales en cada empuje. Conectar un capacitor de 0.1 µF sobre el botón ayuda a evitar esto.
Entonces, se agrega un botón táctil (se agrega el botón 3 y se cambia la conexión al Pin 4 del 555.
El cableado del botón:
Pin 1/2 -> 10kΩ -> 5V
Pin 1/2 -> 0,1µF -> Pin Pin 3/4 -> 74HC393 Pin 13 (2CLK)
Se realizan los siguientes cambios en el 555:
Pin 4 (reinicio) -> 74HC393 Pin 11 (2QA)
El botón 3 debería funcionar ahora como una palanca de inicio / parada.
Tenga en cuenta que un motor parado de esta manera seguirá consumiendo energía.
Paso 6: Control de dirección
Para controlar la dirección del motor, se necesita otro botón pulsador y luego otro flip-flop. Sin embargo, haré trampa usando el siguiente flip-flop del 74HC393, después del flip-flop de encendido / apagado, y el botón de encendido / apagado.
Cuando el pin de dirección (Pin 2QA) baja, el siguiente pin (Pin 2QB) se conmuta. Por lo tanto, presionar repetidamente el botón resultará en APAGADO - ENCENDIDO ADELANTE - APAGADO - ENCENDIDO ATRÁS - APAGADO - ENCENDIDO ADELANTE, etc.
Para hacer que el motor funcione al revés, el patrón alimentado al ULN2003 debe invertirse. Eso podría hacerse con un registro de desplazamiento bidireccional, pero no tengo uno. El 74HC595 no es bidireccional.
Sin embargo, descubrí que podía usar mi búfer octal 74HC241. Este búfer tiene dos partes de 4 bits, con pines OE (habilitación de salida) separados. El primer pin OE controla los cuatro primeros pines de salida y el segundo los últimos cuatro pines de salida. Cuando el OE está en los pines de salida tienen el mismo valor que los pines de entrada correspondientes, y cuando está apagado, los pines de salida estarán en estado de alta impedancia, como si no estuvieran conectados. Además, uno de los pines OE está activo bajo y el otro está activo alto, por lo que al conectarlos, solo la mitad del búfer estará activo en ese momento.
Entonces, para la misma entrada, la mitad del búfer puede impulsar el motor hacia adelante y la otra mitad hacia atrás. Qué mitad está activa, depende del valor de los pines OE.
La hoja de datos del 74HC241 se encuentra en
El cableado podría ser así:
Pin 1 (1OE) -> 74HC293 Pin 10 (2QB)
Pin 2 (1A1) -> 74HC595 Pin 15 Pin 3 (1Y4) -> ULN2003 Pin 1 Pin 4 (1A2) -> 74HC595 Pin 1 Pin 5 (1Y3) -> ULN2003 Pin 2 Pin 6 (1A3) -> 74HC595 Pin 2 Pin 7 (1Y2) -> ULN2003 Pin 3 Pin 8 (1A4) -> 74HC595 Pin 3 Pin 9 (1Y1) -> ULN2003 Pin 4 Pin 10 (GND) -> Tierra Pin 11 (2A1) -> Pin 2 (1A1) Pin 12 (1Y4) -> Pin 9 (2Y1) Pin 13 (2A2) -> Pin 4 (1A2) Pin 14 (1Y3) -> Pin 7 (2Y2) Pin 15 (2A3) -> Pin 6 (1A3) Pin 16 (1Y2) -> Pin 5 (2Y3) Pin 17 (2A3) -> Pin 8 (1A4) Pin 18 (1Y2) -> Pin 3 (2Y4) Pin 19 (2OE) -> Pin 1 (1OE) Pin 20 (VCC) -> 5 V
Ahora, el cableado debe completarse con solo encenderlo con 5 V. Asegúrese de que la fuente de alimentación pueda entregar suficiente corriente para impulsar tanto el motor como los circuitos.
Paso 7: Conclusiones
El motor paso a paso se puede controlar sin microcontrolador.
Los circuitos integrados que usé aquí fueron algunos de los que tenía antes. La mayoría de ellos no son óptimos para esto y se podrían utilizar varias alternativas.
- Para generar los pulsos, el chip temporizador 555 es una buena opción, pero existen varias alternativas, por ejemplo, la que se describe en este Instructable.
- Para el control de velocidad se puede utilizar cualquier potenciómetro, no solo uno digital. Si tiene un potenciómetro de 10kΩ, en lugar de uno de 100kΩ, las resistencias de 10kΩ se pueden reemplazar por 1KΩ, y el capacitor de 0.1 µF con un capacitor de 1µF (divida todas las resistencias y multiplique el capacitor con el mismo número para mantener la sincronización).
- Usando un registro de desplazamiento bidireccional, p. Ej. el 74HC194 facilitaría el control de la dirección.
- Para el control de botones, el 74HC393 podría reemplazarse por un flip-flop, p. Ej. 74HC73. El 555 también puede estar cableado para actuar como palanca.
Recomendado:
Motor paso a paso controlado por motor paso a paso sin microcontrolador: 6 pasos
¡Motor paso a paso controlado por motor paso a paso sin microcontrolador !: En este Instructable rápido, haremos un controlador de motor paso a paso simple usando un motor paso a paso. Este proyecto no requiere circuitos complejos ni un microcontrolador. Así que sin más preámbulos, ¡comencemos
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): 9 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso sin microcontrolador (V2): En uno de mis Instructables anteriores, le mostré cómo controlar un motor paso a paso usando un motor paso a paso sin un microcontrolador. Fue un proyecto rápido y divertido, pero vino con dos problemas que se resolverán en este Instructable. Entonces, ingenio
Modelo de locomotora controlada por motor paso a paso - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Locomotora modelo controlada por motor paso a paso | Motor paso a paso como codificador rotatorio: en uno de los Instructables anteriores, aprendimos cómo usar un motor paso a paso como codificador rotatorio. En este proyecto, ahora usaremos ese motor paso a paso convertido en codificador rotatorio para controlar un modelo de locomotora usando un microcontrolador Arduino. Entonces, sin fu
Motor paso a paso controlado por motor - Motor paso a paso como codificador rotatorio: 11 pasos (con imágenes)
Motor paso a paso controlado por motor paso a paso | Motor paso a paso como codificador rotatorio: ¿Tiene un par de motores paso a paso por ahí y quiere hacer algo? En este Instructable, usemos un motor paso a paso como codificador rotatorio para controlar la posición de otro motor paso a paso usando un microcontrolador Arduino. Así que sin más preámbulos, vamos a
Dispositivo antirrobo 'Solo en casa' / Utilice Attiny13 para conducir un motor paso a paso y un servo: 5 pasos
Disuasión de ladrones 'Solo en casa' / Use Attiny13 para conducir un motor paso a paso y un servo: este podría ser uno de mis proyectos más extraños hasta ahora :-) Pero incluso si no está interesado en mantener alejados a los ladrones, este proyecto puede usarse para cualquier cosa en la que necesita conducir un motor paso a paso o servomotor, o incluso varios motores de CC con un Attiny13.Mo