Paso 4: Conexión con el controlador de Motor MegaMoto
Los relés se pueden utilizar para permitir que un controlador de motor MegaMoto tener control completo de 2 actuadores. Los pines PWM de la MegaMoto se utilizan para controlar la velocidad del actuador, el Relais elige la dirección. Cada motor requiere dos relés para elegir la dirección.
Vea nuestro cuadro MegaMoto Instructable para información más detallada sobre el controlador del motor.
Esta configuración requiere 7 pernos en el Arduino. 2 pins para la PWMA y PWMB, 1 eje para la MegaMoto permiten pines y 4 pines para los 4 relés.
El código siguiente se extender un actuador, luego retraiga, entonces extienda y retraiga el segundo actuador.
Cableado:
1) colocar la pantalla MegaMoto para Arduino
2) conectar 12V a la MegaMoto
3) alambre la placa de relé según el cuadro (relais de uso 1/2 para un motor, 3/4 para el otro mantenerlo simple)
4) Conecte el motor conduce a la conexión COM en los relés. Si los motores mueven la dirección equivocada, puede estas conexión inversa, o cambiar los números en el código (forwards1, backwards1, forwards2, backwards2)
/* Sample code for the Robot Power MegaMoto. This board can be stacked up to three times to control three motors. Modified by Progressive Automations, using the original example code from: http://www.robotpower.com/downloads Hardware: - 1 to 3 RobotPower MegaMoto control boards - Arduino Uno Wiring: -Connect the +/- of the actuator to the A/B motor channels -Connect the +/- of the power supply to the +/- BAT connections This example code is in the public domain. */ const int EnablePin1 = 8; const int PWMPinA1 = 3;//Actuator A control const int PWMPinB1 = 11;//Actuator B control const int forwards1 = 5; const int backwards1 = 4; const int forwards2 = 7; const int backwards2 = 6; void setup() { pinMode(EnablePin1, OUTPUT); pinMode(PWMPinA1, OUTPUT); pinMode(PWMPinB1, OUTPUT); pinMode(forwards1, OUTPUT); pinMode(backwards1, OUTPUT); pinMode(forwards2, OUTPUT); pinMode(backwards2, OUTPUT); motor1Speed(0);//choose speed (0-255) motor2Speed(0);//choose speed (0-255) }//end setup void loop() { digitalWrite(EnablePin1, HIGH);//enable the motor motor2Speed(0);//stop 2nd motor motor1Direction(1);//choose direction 1 = forwards 0 = backwards motor1Speed(128);//choose speed (0-255) delay(3000);//wait 3 seconds motor1Direction(0);//choose direction 1 = forwards 0 = backwards motor1Speed(128);//choose speed (0-255) delay(3000);//wait 3 seconds motor1Speed(0);//stop 1st motor motor2Direction(1);//choose direction 1 = forwards 0 = backwards motor2Speed(128);//choose speed (0-255) delay(3000);//wait 3 seconds motor2Direction(0);//choose direction 1 = forwards 0 = backwards motor2Speed(128);//choose speed (0-255) delay(3000);//wait 3 seconds }//end main loop int motor1Direction(int direct) { if (direct == 0)//if 0, go backwards { digitalWrite(forwards1, HIGH);//high deactivates relay digitalWrite(backwards1, LOW);//low activates relay }//end if else if (direct == 1) //if 1, go forwards { digitalWrite(forwards1, LOW);//low activates relay digitalWrite(backwards1, HIGH);//high deactivates relay }//end if }//end motor1Direction int motor2Direction(int direct) { if (direct == 0)//if 0, go backwards { digitalWrite(forwards2, HIGH);//high deactivates relay digitalWrite(backwards2, LOW);//low activates relay }//end if else if (direct == 1) //if 1, go forwards { digitalWrite(forwards2, LOW);//low activates relay digitalWrite(backwards2, HIGH);//high deactivates relay }//end if }//end motor2Direction int motor1Speed(int speeed) { analogWrite(PWMPinA1, speeed);//set speed of motor }//end motor1Speed int motor2Speed(int speeed) { analogWrite(PWMPinB1, speeed);//set speed of motor }//end motor2Speed