X

Al usar esta página web, aceptas nuestro uso de cookies. Usamos cookies para ofrecerte una mejor experiencia y para ayudar a que tu página funcione de manera efectiva.

A5A4A3A2A1A0VINGNDGND5V3V3RESETIOREFRX0 0TX0 12- 34- 5- 678- 9- 10- 111213GNDAREF
MecatrónicaLATAM

ARDUINO MOTOR DC

Existen diferentes formas de controlar un motor de corriente directa.


MOTOR DC CONTROLADO POR UN TRANSISTOR Y ARDUINO

En esta práctica se usa un motor DC con un transistor, con el cual también podemos controlar el PWM, pero solo puede ir en una dirección dependiendo de la “polaridad” de los cables del motor.

MATERIAL
  • 1x Arduino.
  • 1x Motor DC de 6V.
  • 1x Fuente de 6V (pueden ser 4 pilas AA).
  • 1x Tip122
  • 1x Resistor de 4.7KΩ.
  • 1x Resistor de 10KΩ.
  • 1x Pulsador de 4 o 2 pines.
  • 1x Diodo 1N4004
  • 1x Protoboard.

Esquema de montaje

6V 4.7kΩ 10kΩ

En la parte electrónica, lo único diferente a lo ya explicado es que usamos un diodo 1N4004 entre la salida del colector del TIP122 que está unida a un pin del motor y el voltaje de alimentación que está unido al otro pin del motor, esto se hace porque el motor genera un campo electromagnético para que pueda girar. Cuando se deja de alimentar o se le quita el voltaje, este campo se convierte en voltaje y corriente que deben de fluir hacia algún lado, por eso el uso del diodo, gracias a este componente ese flujo no va a ningún lado y no estropeará nuestro Arduino.

Código

  • //Se definen los pines a usar.
  • #define Motor 2
  • #define Pulsador 3
  • //Variables a usar
  • int Push;
  • void setup()
  • {
    • //Configuración de los pines como entrada o salida
    • pinMode(Motor, OUTPUT);
    • pinMode(Pulsador, INPUT);
    • digitalWrite(Motor,LOW);
    }
  • void loop()
  • {
    • Push = digitalRead(Pulsador);
    • if(Push == HIGH)
      {
      • digitalWrite(Motor, HIGH);
      }
    • else{
      • digitalWrite(Motor, LOW);
      }
    }


CONTROL DE MOTOR DE DC CON L293D Y ARDUINO

En esta práctica se enseñará el uso y control de un motor DC con un puente H, este puente H nos dará un poco de más control sobre el motor ya que podremos cambiarlo de dirección, lo cual se verá en la práctica además de modificar la velocidad del motor (PWM).

MATERIAL
  • 1x Arduino.
  • 1x Motor DC de 6V.
  • 1x Fuente de 6V (pueden ser 4 pilas AA).
  • 1x L293D.
  • 2x Resistor de 10KΩ.
  • 2x Pulsador de 4 o 2 pines.
  • 1x Protoboard.

Esquema de montaje

A continuación, se mostrará el esquema de montaje requerido.

6V

Código

Como pueden observar el código se inicia llamando la librería del servo usando #include , después se definen los pines a usar; en este caso el potenciómetro y el servo al que se le asigna el nombre de ServoUNO. En el setup se configuran los pines con la función de la librería attach enviándola al nombre del servo, se declara en qué pin está conectado el servo; en este caso en el pin 2 como se ve en el diagrama.

En la parte del loop puede observar que se leen los datos del potenciómetro y se almacenan en una variable, después usando la función map vista anteriormente se transforman los valores del potenciómetro a valores aceptados por el servomotor, en este caso el servomotor es de 0 a 180°, es por eso que, gracias a la función map trasformamos a los valores de 0 a 180.

A continuación, usando la función write de la librería Servo y enviándola al nombre del servomotor, le entregamos como parámetro la variable aux, ya que en esa variable se almacenarán los números de 0 a 180, se asigna un delay para que el servomotor no se mueva muy rápido, cuando intente mover el potenciómetro usted notará que el servomotor también se mueve desde 0 a 180°.

Usando el monitor serial podemos ver los valores del potenciómetro y a qué grado se convierte cada valor, como puede ver hemos unido lo visto en sensores analógicos para mover un servomotor, también se puede unir lo visto en sensores digitales para mover el servomotor, esto queda como investigación al lector.

  • //Se definen los pines a usar.
  • #define MotorUno_1 2
  • #define MotorUno_2 3

  • #define pulsador_uno 4
  • #define pulsador_dos 5

  • int puldador_UR;
  • int pulsador_DR;
  • void setup()
  • {
    • //Configuración de los pines como entrada o salida
    • pinMode(MotorUno_1, OUTPUT);
    • pinMode(MotorUno_2, OUTPUT);
    • pinMode(pulsador_uno, INPUT);
    • pinMode(pulsador_dos, INPUT);
    • //Iniciamos el motor en apagado
    • digitalWrite(MotorUno_1,LOW);
    • digitalWrite(MotorUno_2,LOW);
    }
  • void loop()
  • {
    • puldador_UR = digitalRead(pulsador_uno);
    • puldador_DR = digitalRead(pulsador_dos);
    • if(puldador_UR == HIGH)
      {
      • digitalWrite(MotorUno_1, HIGH);
      • digitalWrite(MotorUno_2, LOW);
      }
    • if(puldador_DR == HIGH)
      {
      • digitalWrite(MotorUno_1, LOW);
      • digitalWrite(MotorUno_2, HIGH);
      }
    • if(puldador_UR == LOW && pulsador_DR = LOW)
      {
      • digitalWrite(MotorUno_1, LOW);
      • digitalWrite(MotorUno_2, LOW);
      }
    }