He escrito un programa simple que controla dos motores (salidas) cada uno con dos estados (positivo, negativo) con un Arduino. Los estados de los motores se basan en el estado de cuatro botones (entradas) (Arriba, Abajo, Derecha, Izquierda). Solo un botón puede estar activo a la vez.
if( up ) {
motor1 = positive ; // +
motor2 = negative ; // -
} else if ( down ) {
motor1 = negative ; // -
motor2 = positive ; // +
} else if ( left ) {
motor1 = negative ; // -
motor2 = negative ; // -
} else if ( right ) {
motor1 = positive ; // +
motor2 = positive ; // +
}
The logic table
| Motor1 | Motor2 |
-------------------------
Right | + | + |
Left | - | - |
Up | + | - |
Down | - | + |
El programa parece tan simple que creo que debería poder hacer un circuito en lugar de usar un microcontrolador. Usar un microcontrolador parece un desperdicio para una aplicación simple.
He diseñado el circuito derecho e izquierdo y la separabilidad del circuito arriba y abajo tratando de simplificarlo. Ahora tengo que unir estos dos circuitos.
Supongo que tendré que usar algunos relés y un "transistor OR" para hacer el circuito fusionado. Pero no estoy seguro de por dónde empezar.
Sugerencias, comentarios o diagramas serán muy apreciados.
Nota: Estos motores se utilizarán en una tabla CoreXY . Creé estos diagramas con CircuitLab
Supongo que está utilizando motores de CC con escobillas
Corríjame si me equivoco, pero parece que necesita invertir cada motor de CC de forma independiente para brindarle la funcionalidad básica que necesita, por lo que aquí hay un interruptor de inversión de motor de CC básico: -
Se muestra un interruptor DPDT (doble polo y doble tiro). Tiene dos interruptores independientes que se activan mecánicamente juntos; uno tiene tres contactos en la columna de la izquierda y el otro tiene tres contactos en la columna de la derecha. El pin central de cada interruptor es el pin común.
Esto le brinda la funcionalidad básica de reversa del motor y si tuviera este circuito de forma independiente en ambos motores, podría operar los dos interruptores y moverse hacia la izquierda, hacia la derecha, hacia arriba o hacia abajo.
Sin embargo, si desea que 4 interruptores controlen las cuatro direcciones desde (digamos) los botones, tendría que convertir el interruptor DPDT en cada motor en un relé DPDT y tener un poco de lógica de dirección usando diodos de los 4 botones. activando las bobinas de los dos relés.
Suponiendo que el estado predeterminado del relé sin alimentación produce una dirección hacia la IZQUIERDA, la activación del relé 1 provocará un movimiento hacia ARRIBA. De manera predeterminada, encender el relé 2 causará ABAJO y encender ambos relés causará DERECHA. Es posible que también necesite un contacto/relé/interruptor de encendido/apagado.
Usar un microcontrolador parece un desperdicio para una aplicación simple.
Mi inclinación natural es estar de acuerdo. Pero hay otros puntos de vista. Aquí hay un ejemplo de una aplicación igualmente simple que usa un microcontrolador relativamente simple de la misma familia que el de su Arduino.
Steven Smethurst
rojoarenosoladrillo