Versión en circuito de un programa simple if else

3

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 lo suficientemente simple y creo que debería poder hacer un circuito en lugar de usar un microcontrolador. El uso de un microcontrolador parece una pérdida solo para una aplicación simple.

He diseñado el circuito derecho e izquierdo y la separabilidad del circuito hacia arriba y hacia abajo para simplificarlo. Ahora tengo que fusionar estos dos circuitos juntos.

Supongoquetendréqueusaralgunosrelésyun"O transistor" para hacer el circuito combinado. Pero no estoy seguro de por dónde empezar.

Sugerencias, comentarios o diagramas serían muy apreciados.

Nota: estos motores se utilizarán en una tabla CoreXY . Creé estos diagramas con CircuitLab

    
pregunta Steven smethurst

2 respuestas

2

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, así que aquí hay un interruptor de retroceso del motor de CC básico: -

Se muestra un interruptor DPDT (doble polo doble tiro). Tiene dos interruptores independientes que se activan mecánicamente juntos; uno tiene tres contactos en la columna izquierda y el otro tiene tres contactos en la columna derecha. El pin central de cada interruptor es el pin común.

Esto le brinda la funcionalidad de reversa básica del motor y si tuviera este circuito independientemente en ambos motores, podría operar los dos interruptores y girar a la izquierda, a 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 a un relé DPDT y tener un poco de lógica de dirección utilizando diodos del 4 pulsadores que activan las bobinas de los dos relés.

Suponiendo que el estado predeterminado del relé sin alimentación produce una dirección IZQUIERDA, el relé de alimentación 1 causará un movimiento ARRIBA. De manera predeterminada, el relé de alimentación 2 causará el DOWN y la activación de ambos relés causará el DERECHO. Es posible que también necesite un contacto / relé / interruptor de encendido / apagado.

    
respondido por el Andy aka
0
  

El uso de un microcontrolador parece un desperdicio para una aplicación sencilla.

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.

Desde robotroom.com doble control de ventilador

    
respondido por el RedGrittyBrick

Lea otras preguntas en las etiquetas