Paso 8: Activación de motores DC mediante puente H
Los motores delanteros y traseros están conectados al puente H como se muestra en el diagrama de arriba y cada uno de los pines de Arduino, que deben definirse como una salida durante la instalación, tendrá una variable asignada:
const int rearMtFw = 4; Motor trasero - FW
const int rearMtBw = 7; Motor trasero - BW
const int rearMtEne = 6; Trasera motor - habilitar
const int frontMtLeft = 2; Delantera del Motor - gire a la izquierda
const int frontMtRight = 3; Frente motor - gire a la derecha
const int frontMtEne = 5; Activar motor delantero
Por ejemplo, si queremos avanzar el coche, la función "moveForward ()" debe poner el en alto del pin 4 y pin 7 en bajo, esto hará actual flujo de "derecha" como se muestra en el diagrama de segundo anterior.
PIN 6 es "activar", sólo cuando está en "Alta", el puente permitirá a corriente que fluye al motor. Porque este es un tipo PWM, la velocidad en la cual el motor girará, dependen del valor de la variable "MotorSpeed", en el pin 6 (valor entre 0 y 255).
La función también debe asegurar que el motor delantero "girar libremente" y para eso, el pin 5 que es el pin "habilitar" debe ser baja (el estado de los pines 2 y 3 no importa, ya que el activar es baja). El LED rojo que funciona como "luz de marcha atrás" siempre debe estar apagado cuando el coche se mueve hacia adelante:
void moveForward () / / trasera motor FW
{
analogWrite (rearMtEne, MotorSpeed);
digitalWrite (rearMtFw, HIGH);
digitalWrite (rearMtBw, bajo);
digitalWrite (frontMtEne, bajo);
digitalWrite (LEDPlataforma, bajo);
retardo (5);
}
Por analogía, es obvio que para mover el coche "nuevo", el motor debe girar en sentido contrario. Para esto, el pin 4 debe ser bajo y alto pin 7. Tenga en cuenta que en este caso de la "luz de marcha atrás", debe ser en. La función en este caso será:
void moveBackward () / / trasera motor BW
{
analogWrite (rearMtEne, MotorSpeed);
digitalWrite (rearMtFw, bajo);
digitalWrite (rearMtBw, HIGH);
digitalWrite (frontMtEne, bajo);
digitalWrite (LEDPlataforma, HIGH);
retardo (5);
}
El mismo razonamiento se puede utilizar para el motor de frente, sólo que en este caso no hay ningún control de velocidad. Poner el pin 2 (habilitar) alta permite el motor intentar "convertir" a un lado u otro dependiendo del estado de los pines 2 y 3:
void () moveLeft / delantero izquierdo motor
{
digitalWrite (frontMtEne, HIGH);
digitalWrite (frontMtLeft, HIGH);
digitalWrite (frontMtRight, bajo);
digitalWrite (LEDPlataforma, bajo);
Delay (10);
}
// ************************************//
void () moveRight / delantero derecho de motor
{
digitalWrite (frontMtEne, HIGH);
digitalWrite (frontMtLeft, bajo);
digitalWrite (frontMtRight, HIGH);
digitalWrite (LEDPlataforma, bajo);
Delay (10);
}
Para detener el coche, acaba de poner salidas de puente para el motor trasero en baja, que "captura" el eje del motor (para el motor de frente, solo el pin enable debe estar bajo):
void moveStop () / / apagar motor trasero
{
analogWrite (rearMtEne, bajo);
digitalWrite (rearMtFw, bajo);
digitalWrite (rearMtBw, bajo);
digitalWrite (frontMtEne, bajo);
digitalWrite (LEDPlataforma, bajo);
retardo (5);
}
En el enlace de más abajo, puede encontrar el código completo para el Arduino: