martes, 23 de febrero de 2016

Motor DC Bluetooth con Arduino



Introducción
El objetivo de este proyecto es el controlar un motor de dc a través de un Smartphone. La velocidad del motor varía. La comunicación entre el motor y el Smartphone se realizará a través de un módulo Bluetooth y el control del motor se realizará con una tarjeta Arduino UNO

Paso 1
Primero se realiza el diseño del circuito en base a las especificaciones (lo que se desea que realice el circuito). Este primer sketch puede realizarse a mano o con un programa de diseño de circuitos. En este caso se empleará el software libre para simular circuitos de Autodesk 123D.
Diagrama de conexiones del Arduino y el HC-05
Paso 2
Una vez que ha diseñado el circuito, se procede a la simulación del mismo, con Autodesk 123D. La simulación permite comprobar si el circuito funcionará correctamente. En la siguiente imagen se muestra un esquema del circuito. El elemento en rojo representa el módulo Bluetooth (HC-05).

Boceto de la conexión del motor, el transistir, el HC-05 y el Arduino
Paso 3
Un módulo Bluetooth ampliamente usado es el HC-05. La comunicación entre el arduino y el PC es serial. El Bluetooth, emula una comunicación serial, por lo que se requiere de 2 pines para las señales (RX: recibir y TX: transmitir), adicional, la alimentación de energía eléctrica es requerida (5 V, 0 V). La siguiente imagen muestra el módulo empleado. 4 de las 6 conexiones serán empleadas. Los puertos STATE y EN, no serán cableados.

Módulo Bluetooth HC-05
STATE y EN no se emplearán, RXD y TXD son los pines de comunicación

Paso 4
Se procede a realizar el cableado del circuito. La siguiente imagen muestra los componentes que serán empleados. 2 Fuentes de alimentación serán usadas, una para el arduino y el otro para los periféricos y actuadores. La primera fuente alimenta el Arduino UNO. La segunda fuente alimenta el módulo Bluetooth, el transistor y el motor. El transistor NPN será empleado como etapa de potencia, ya que los puertos de salida del Arduino, aunque suministren 5 V, la corriente suministrada es a lo máximo de 20 mA, lo cual es insuficiente para arrancar el motor, pero suficiente para activar el transistor. Las tierras (0 V) de ambas fuentes de poder deben de estar conectadas.
Componentes a emplear en el circuito
Paso 5
Se procede a armar el circuito como se muestra en la imagen. Se empleó la librería SoftwareSerial. Por default la comunicación serial y/o Bluetooth, se realiza a través de los puertos 0 y 1 (RX y TX respectivamente). Para emplear otros pines diferentes para la comunicación Bluetooth, se configuran con una utilería de la librería arriba mencionada.

Circuito final armado
PASO 6
A continuación se  muestra el código para controllar el módulo Bluetooth de manera remota:

// The program is designed to perform the next tasks:
// 1. A Bluetooth module (HC-05) will be configured 
//    and attachet to an Arduino UNO module
// 2. A DC motor will be attached to one output of the Arduino board
// 3. The DC motor will be remotely controlled using a smartphone
// 4. Different speeds will be programmed
// Written by AMS

#include <SoftwareSerial.h>                   // serial communication library


SoftwareSerial ConfigurePorts (8, 9);         // Port_8 ==> RX, Port_9 ==> TX
int ReceiveInfo;                              // for the received information
int MotorPort=11;                             // Port 13 for the dc motor                                            

  void setup()
        {
          ConfigurePorts.begin(9600);         // Baud rate
          ConfigurePorts.println("0=off, 1=speed 1, 2=speed 2 ...");
          pinMode(MotorPort, OUTPUT);
        }

        void loop()
              {
                if(ConfigurePorts.available()>0) 
                  {
                  ReceiveInfo=ConfigurePorts.read();
                  switch (ReceiveInfo) 
                    {
                  case '0':                  // off
                    analogWrite(MotorPort,0);
                    ConfigurePorts.println("off");
                    break;
                  case '1':                  // speed 1
                    analogWrite(MotorPort,40);
                    ConfigurePorts.println("1");
                    break;
                  case '2':                 // speed 2
                    analogWrite(MotorPort,60);
                    ConfigurePorts.println("2");
                    break;
                  case '3':                 // speed 3
                    analogWrite(MotorPort,80);
                    ConfigurePorts.println("3");
                    break;
                  case '4':                 // speed 4
                    analogWrite(MotorPort,100);
                    ConfigurePorts.println("4");
                    break;
                  case '5':                 // speed 5
                    analogWrite(MotorPort,120);
                    ConfigurePorts.println("5");
                    break;
                    case '6':              // speed 6
                    analogWrite(MotorPort,160);
                    ConfigurePorts.println("6");
                    break;
                    case '7':              // speed 7
                    analogWrite(MotorPort,200);
                    ConfigurePorts.println("7");
                    break;
                  case '8':                // speed 8
                    analogWrite(MotorPort,240);
                    ConfigurePorts.println("8");
                    break;
                    }
                  }
              }

PASO 7
Ahora se procederá a realizar la conexión con el Smartphone. La aplicación empleada se descargó de Google Play (“Bluetooth Controller”). Los botones tienen que ser configurados. Para este proyecto la configuración es la siguiente:

0 => off
1 => velocidad 1 (12.5%)
2 => velocidad 2 (25%)
3 => velocidad 3 (37.5%)
4 => velocidad 4 (50%)
5 => velocidad 5 (62.5%)
6 => velocidad 6 (75%)
7 => velocidad 7 (87.5%)
8 => velocidad 8 (100%)

A continuación se presenta el video del proyecto.

17 comentarios:

  1. tienes la app y la configuracion de la misma porfavor

    ResponderBorrar
  2. ES MUY BUENO !!! no me decis cual es el nombre de la app de android

    ResponderBorrar
  3. ES MUY BUENO !!! no me decis cual es el nombre de la app de android

    ResponderBorrar
  4. CON CUANTO DE VOLTAJE ALIMENTO DE LA 2DA FUENTE?

    ResponderBorrar
  5. POR FAVOR PUEDES DECIR EL NOMBRE DE LA APLICACIÓN

    ResponderBorrar
  6. Ayudame con el nombre de la aplicación

    ResponderBorrar
  7. Cual es la referencia del transistor?

    ResponderBorrar
  8. HOLA BUENAS NOCHES .
    ESTOY SIGUIENDO TU VIDEO TUTORIAL ME ESTA COSTANDO ENCONTRAL LA APP PODRIAS POR FAVOR DE DECIR O SUBIRLA AL BLOOG YA QUE TENGO ARMADO EL CIRCUITO Y PROGRAMADO EL ARDUINO Y NO LOGRO CON NINGUNA DE LAS APP PONERLO EN FUNCIONAMIENTO, DESDE YA MUCHAS GRACIAS

    ResponderBorrar
  9. El objetivo de este proyecto es el controlar un motor de dc a través de un Smartphone. La velocidad del motor varía. La comunicación entre el motor y el Smartphone se realizará a través de un módulo Bluetooth. https://consejoscomunales.net/segundo-militarismo-y-la-reconstruccion-nacional/

    ResponderBorrar
  10. Hola que tal, me podría pasar el link para descargar la librería de las comunicaciones en serie

    ResponderBorrar