Práctica 9. Control de un Motor de Corriente Continua

9.1  Objetivo General:  

Accionar un Motor de Corriente Continua a través de pin PWM.

9.2  Materiales y Métodos:

  1. Una tarjeta Arduino Uno-R3 o Arduino Mega 2560.
  2. Un cable USB impresora.
  3. Un computador.
  4. Cables para el montaje del circuito.
  5. Tarjeta Protoboard.
  6. Un Motor de Corriente Continua.
  7. Un diodo.
  8. Una Resistencia Eléctrica de 220 ohm.
  9. Un Botón Pulsador.
  10. Un transistor N-MOSFET.

El motor de corriente continua (denominado también motor de corriente directa, motor CC o motor DC) es una máquina que convierte la energía eléctrica en mecánica, provocando un movimiento rotatorio, gracias a la acción que se genera internamente mediante el campo magnético.

Una máquina de corriente continua (generador o motor) se compone principalmente de dos partes: 1) estator que da soporte mecánico al aparato y contiene los devanados principales de la máquina, conocidos también con el nombre de polos. Los polos pueden ser de imanes permanentes o devanados con hilo de cobre sobre núcleo de hierro. 2) Rotor es generalmente de forma cilíndrica, también devanado y con núcleo, alimentado con corriente directa mediante escobillas fijas (conocidas también como carbones).

Algunas aplicaciones especiales de estos motores son los motores lineales, cuando ejercen tracción sobre un riel, o bien los motores de imanes permanentes. Los motores de corriente continua (CC) también se utilizan en la construcción de servomotores.

Figura 1 - P9

Figura 1. Motores de Corriente continua.  

Un diodo es un componente electrónico de dos terminales que permite la circulación de la corriente eléctrica en un solo sentido. Este término generalmente se usa para referirse al diodo semiconductor, el más común en la actualidad; consta de una pieza de cristal semiconductor conectada a dos terminales eléctricos.

Si por ejemplo se emplea Arduino para conmutar un circuito con un voltaje superior al soportado por el microcontrolador, para impedir que cualquier corriente fluya hacia Arduino, es decir, evitar que Arduino entregue una tensión y bajo ninguna circunstancia se exponga a una corriente de entrada (reflujo), entonces se utiliza un diodo entre Arduino y el dispositivo a usar. Al impedir que haya un flujo de corriente hacia Arduino se protege al microcontrolador de que una posible sobre corriente termine dañando el microcontrolador.

Figura 2 - P9

Figura 2. Diodo utilizado en la práctica. (Imagen de modulos-voluntarios.tumblr.com)

El transistor es un dispositivo electrónico semiconductor utilizado para entregar una señal de salida en respuesta a una señal de entrada. Cumple funciones de amplificador, oscilador, conmutador o rectificador. El término «transistor» es la contracción en inglés de transfer resistor («resistor de transferencia»). Actualmente se encuentran prácticamente en todos los aparatos electrónicos de uso diario: radios, televisores, reproductores de audio y vídeo, relojes de cuarzo, computadoras, lámparas fluorescentes, tomógrafos, teléfonos celulares, entre otros.

Figura 3 - P9

Figura 3. Transistor utilizado en la práctica PMOSFET. (Imagen de www.protostack.com)

9.3  Montaje de la práctica:

Con el fin de comprender el funcionamiento del circuito, así como verificar todas las conexiones existentes, se realiza en primer lugar el montaje en el programa Fritzing.

Figura 4. Montaje del circuito en el programa Fritzing.

Dado a que el motor CC requiere de un mayor voltaje del que provee la tarjeta Arduino, en esta práctica se emplea  una fuente de alimentación externa, específicamente una pila de 9 Voltios. El diodo nos sirve de protección para el Arduino, que se alimenta con 5 Voltios, dejando que la corriente de 9 Voltios sólo circule para alimentar al motor. Para que el circuito pueda funcionar, el cable Tierra debe estar conectada a la Tierra del Arduino, pues si no el circuito se desestabiliza. Esto es una regla en todos los montajes: las tierras o masas deben estar siempre conectadas. El transistor además está protegiendo el Arduino, funcionando como interruptor para este circuito. También se utiliza una resistencia para protegerlo.

Luego que se conoce  el circuito en el programa Fritzing, se comienza con el desarrollo del programa en el IDE de Arduino.

9.4  Código en el IDE de Arduino:

– Se debe seleccionar en la IDE de Arduino el tipo de tarjeta con el que se va a trabajar siendo Arduino Uno-R3 o Arduino Mega 2560.

– Se selecciona el Puerto Serial, es decir el puerto USB donde se va a conectar la tarjeta Arduino con el computador.

– Se realiza el código:

  • Inicialmente debemos identificar el programa que se esta desarrollando, por tanto se asigna un nombre al programa, esto se hace empleando el símbolo //.
  • Se deben declarar las variables globales que serán utilizadas en el programa.  En la práctica se declaran de tipo constante, una variable que no cambiara durante el desarrollo del programa, su comando es const, además se debe especificar qué tipo de datos es la constante, en este caso será entero y su comando es int, luego se le da el nombre de la variable; en este caso tanto el motor como el pulsador tendrán el mismo comando. El nombre para cada variable seria motorPin en el pin 9 para el Motor y switchPin en el pin 2 para el pulsador y una variable entero switchState igual a cero (0), la diferencia de las demás variables con esta última es que  no será constante ya que varia entre 0 y 1, en función de si el botón está presionado o no.
  • Se define si la variables declaradas son de tipo entrada o de salida, para eso se utiliza el comando void setup(), se abre corchete para saber qué es lo que contiene ese comando y al finalizar el comando cierro corchete. Internamente del corchete se declarara que tipo de variable van a ser motorPin y switchPin. A través del comando pinMode, este a su vez necesita como argumento la variable y el tipo de señal de la misma, es decir pinMode(motorPin,OUTPUT); en la que OUTPUT  indica que la señal saldrá del pin 9 permitiendo encender el motor. Para definir el botón pulsador, se indica del mismo modo pero con la opción INTPUT. Cada vez que el reciba una pulsación del botón el código Arduino  decidirá  tomar una acción; la cual es que envíe una señal digital al pin 9 y encienda el motor, su comando será pinMode(switchPin,INPUT).
  • Luego de definir las variables, se procede a realizar la estructura del código a través del comando void loop (), de igual manera se abre corchete y luego se cierra una vez de terminar su cumplimiento. Internamente del corchete se establecerán las instrucciones que ejecutará Arduino continuamente. Se utiliza la variable switchState la cual leerá digitalmente lo que sucede en el pin 2 (botón), su comando es digitalRead(switchPin). Se introduce en la práctica otra estructura de programación la cual es if, la que significa si en español. La estructura if es un condicional que permite decir en función del valor de la variable switchState, si este es alto (HIGH=1) o si es bajo (LOW=0). Para que el Motor se pueda encender se utiliza el comando digitalWrite(motorPin,HIGH), esta condición estará dentro de la estructura de programación if.
  • Para que el Motor pueda apagarse se utiliza el mismo comando digitalWrite pero con una señal baja LOW y dentro del lazo (else),  digitalWrite(motorPin, LOW).
  • Finalmente se debe verificar que al final de cada instrucción se haya colocado el respectivo punto y coma, de lo contrario habrán errores a la hora de compilar.

NOTA: Para que el IDE de Arduino pueda entender los comandos es necesario que al final de cada instrucción se coloque punto y coma (;).

En la siguiente imagen se mostrara como quedo plasmado en el IDE de Arduino, los procedimientos anteriormente señalados:

//Poner en marcha un motor CC
const int switchPin=2;
const int motorPin=9;
int switchState=0;
void setup(){
pinMode(motorPin,OUTPUT);
pinMode(switchPin,INPUT);
}
void loop(){
switchState=digitalRead(switchPin);
if(switchState==HIGH){
digitalWrite(motorPin,HIGH);
}
else
{
digitalWrite(motorPin,LOW);
}
}

Algoritmo 1 Control de un Motor de Corriente Continua a través de la plataforma Arduino.

Desarrollo del algoritmo 1 en el simulador https//123d.circuits.io:

https://circuits.io/circuits/3828333-practica-9-control-de-un-motor-de-corriente-continua

9.6  Conclusión:

Esta práctica se han incluido nuevos componentes para ser controlados con la tarjeta Arduino. Se presentó como puede ser accionado un motor DC utilizando una batería y un transistor MOSFET. Además, hemos visto mediante el MOSFET que se pueden separar la etapa de potencia (Batería de 9V) y la etapa de accion de arduino (5V ). Esto ha permitido accionar el motor con un mayor voltaje que el que maneja la tarjeta arduino.