You are on page 1of 39

Instituto Politcnico Nacional

Escuela Superior de Ingeniera Mecnica y


Elctrica

ESIME
Unidad Zacatenco

MAQUINAS ELECTRICAS I

PRACTICA 2: CONTROL DE MOTOR DC.


REPORTE PRACTICA 2

PROFESOR: Franco Guzmn Luis Fernando

ALUMNOS:
Martnez Villa Fidel
Miranda Castillo Jos Roberto
Herrera Jimnez Alexis

GRUPO: 5AM5

RESUMEN

En esta prctica implementamos los conocimientos adquiridos en la prctica anterior. Esta


vez agregamos un motor de CD a nuestros arreglos e implementaremos un programa
arranque/paro, hasta llegar a encender y apagar el motor con un mismo botn. Cabe
mencionar que esta vez para poder realizar los arreglos requeridos se debe conocer cmo
hacer una etapa de potencia para el motor, ya que este motor demandara ms tensin que
los circuitos convencionales anteriormente utilizados.

INDICE

Resumen. 3
Objetivo... 4
Objetos de aprendizaje. 4
Saberes previos. 4
Marco de referencia. 4
Material y/o equipo 7
Desarrollo 8
Circuito 1..... 8
Circuito 2..... 12
Circuito 3..... 18
Circuito 4. 22
Ejemplo de aplicacin de ingeniera.. 26
Conclusiones... 26
Conclusin General 26
Bibliografa.. 27
Anexos...................... 28

INDICE DE FIGURAS

Figura 1. 5
Figura 2. 6
Figura 3. 6
Figura 4. 6
Figura 5. 6
Figura 6. 8
Figura 7. 10
Figura 8. 10
Figura 9. 11
Figura 10.. 12
Figura 11.. 13
Figura 12...16
Figura 13...16
Figura14....17
Figura 15...18
Figura 16...20
Figura 17...20
Figura 18...21
Figura 19...21
Figura 20...22
Figura 21...24
Figura 22...24
Figura 23...25

INDICE DE TABLAS

Tabla 1.7
Tabla 2.17
Tabla 3.17

OBJETIVO

En esta prctica el usuario sabr elaborar una etapa de potencia para un motor, partes de
un motor DC, componentes requeridos para la etapa de potencia, lectura de flancos, etc.
Para realizar todo lo anterior se debe de conocer que para hacer una etapa de potencia se
utilizara un TIP 120, diodos, resistencias y programacin en C. Esto servir para realizar
algn proyecto relacionado a motores y hasta llegar a hacer un arranque/paro jogging.
OBJETOS DE APRENDIZAJE

Para esta prctica el alumno aprender a realizar una etapa de potencia par aun motor DC
y as poder aplicarla en cualquier proyecto que requiera motores de este tipo. Aprender
a realizar un programa que identifique los flancos de los pulsos para as cambiar de estado
al motor con un solo botn.

SABERES PREVIOS

El alumno, deber saber las partes de un motor DC.


El alumno deber conocer electrnica bsica as como programacin en C/C++.
El alumno deber tener nociones de una etapa de potencia.

MARCO DE REFERENCIA

Motor imn permanente


Motor CC Imn Permanente. Por su sencillez en la construccin son muy utilizados en
equipos de sonido y video, ejemplo, reproductores de dvd y cd, lectores de cd para
computadoras, juguetes por control remoto inalmbrico, aunque su mantenimiento se
hace muy costoso y complicado.
Funcionamiento
En general los imanes estn situados en el estator o carcaza, tambin se sitan los
porta escobillas y las escobillas que alimentan el rotor a travs del colector y las
delgas haciendo llegar la CC al devanado y crear la f.e.m. que hace girar al rotor.
Basta con invertir la polaridad de la CC aplicada a las escobillas y el motor invierte su
sentido de giro, pero nunca pueden ser enclavados en una posicin fija, simplemente
giran a una velocidad y sentido de acuerdo a la polaridad y nivel de CC aplicada.
Para corregir esta caracterstica se crearon los motores paso a paso y los
servomecanismos que si pueden ser posicionados y son los mas utilizados en la
robtica y sistemas de control automticos.
Existe otro tipo de motor de CC e imn permanente que eliminan las escobillas y
utilizan la conmutacin electrnica llamados motores sin escobillas y son ampliamente
utilizados en los sistemas de enfriamientos de fuentes de poder y computadoras.

Clasificacin
De acuerdo con la construccin de la armadura, el motor de CC de imn permanente
se puede descomponer en tres tipos de diseo de armadura:

motores de ncleo de hierro


motores de devanado superficial
motores de bobina mvil

Arduino. Motor CC usando TIP 120


Controlar motores y dispositivos de alta potencia usando transistor TIP120
Hasta ahora los dispositivos que hemos utilizado son de baja potencia, la mayor parte
de trabajo, en este caso de Arduino, lo hace a un rango de 3 a 5 voltios y
aproximadamente 20 mA de corriente, esto es suficiente para controlar dispositivos
chicos pero cuando usamos algn actuador que utilice mas de 20 mA de corriente o
requiera una tensin ms alta no podemos hacerlo funcionar conectndolo
directamente a los puertos E/S de Arduino, tenemos que implementar un circuito
intermedio. Aqu ocupamos un transistor TIP120. Un transistor se define como:
un dispositivo electrnico semiconductor que cumple funciones
de amplificador, oscilador, conmutador o rectificador. El trmino transistor es la
contraccin en ingls de transfer resistor (resistencia de transferencia).
El motor requiere al menos 6 voltios para hacerlo andar, y mucho ms de 20 mA para
mejor desempeo. Aqu lo que implementamos de interfaz entre Arduino y el Motor CC
fue usar un transistor npn TIP120, este transistor funciona como amplificador o como
un interruptor electrnico (conmutador o switch)

Figura 1. TIP-120.
Cmo funciona esto?
Bsicamente, tiene una entrada llamada el Colector, una salida llamada el Emisor, y
un control denominado Base. Cuando se enva una seal de ALTO a la base (B, pin de
control), el transistor cambia y permite que la corriente fluya desde el colector (C) para
el emisor (E).

Figura 2. Diagrama TIP-120.

Armadura o estator:
Dentro de este, existe un imn el cual sirve como
un par de polos magnticos que hace que el
rotor gire.

Figura 3. Armadura o estator.

Rotor
En este rotor existen tres bobinas y est
montado en un eje. El rotor est formado de
varias lminas apiladas y cubiertos por bobinas,
las cuales cambian de polarizacin
continuamente al girar y entrar en contacto con
las escobillas.
Figura 4. Rotor.

Nota: las bobinas del motor con un eliminador, el


rotor girara dependiendo de las bobinas que se
energicen.

Escobillas
Las escobillas se encargan de transmitir la
corriente al rotor para que pueda existir un
cambio magntico y haya movimiento.

Figura 5. Escobillas.
6

MATERIAL Y/O EQUIPO


Placa Arduino Leonardo

Tabla 1. Material y/o


equipo.

Fuente 5V
LED rojo

Push botton
Resistencias 1 kohm
Jumper
Potencimetro 5 kohm
Protoboard
Motor DC
Diodo IN4001
TIP-120

Microcontroller ATmega32u4
Operating Voltage
5V
Input Voltage (recommended) 712V
Input Voltage (limits) 6-20V
Digital I/O Pins 20
PWM Channels 7
Analog Input Channels 12
DC Current per I/O Pin 40 mA
DC Current for 3.3V Pin50 mA
Flash Memory 32 KB (ATmega32u4)
of which 4 KB used by bootloader
SRAM 2.5 KB (ATmega32u4)
EEPROM
1 KB (ATmega32u4)
Clock Speed 16 MHz
Length 68.6 mm
Width 53.3 mm
Weight 20g

1.8-2.2VDC forward drop


Max current: 20mA
Suggested using current: 16-18mA
Luminous Intensity: 150-200mcd

1000 ohms +- 5%
Consultar en anexos
Consultar en anexos

DESARROLLO

Circuito 1:
Descripcin del circuito:
En este circuito se llevara a cabo el encendido y apagado de un motor DC, cuando se
presione el push botton se encender, cuando se suelte el push botton se apagara.

Lista de componentes:
Placa Arduino.
Led.
4 resistencias de 1 kohm.
Computadora.
Protoboard.
Jumpers.
Diagrama de flujo:

Diodo IN4001.
Motor DC.
TIP-120.
Push botton.
Fuente 5V.

Figura 6. Diagrama de flujo (encendido/apagado) push botton.


8

Algoritmo:
const int buttonPin = 2; //se declara el puerto de entrada en el pin 2
const int motor = 13; //se declara la salida del motor en el pin 13
const int ledPin1 = 9; //se declara la salida del led en el pin 9
int buttonState = 0; //se inicializa y declara el estado del bush botton en 0
void setup()//en esta parte se abre el cuerpo que llevara la configuracion
{
pinMode(motor, OUTPUT);//se declara el puerto del motor como salida
pinMode(buttonPin, INPUT);//se declara el puerto del push botton como entrada
Serial.begin(9600);//se inicializa la velocidad de la seal
}
void loop() //en esta parte se abre el cuerpo que lleavra el ciclo
{
buttonState = digitalRead(buttonPin);// se declara el estado del push button como un
lector digital
if (buttonState == HIGH)//se inicializa un if , si el estado es alto se enciende el led y el
motor y en el monitor serie aparecera la leyenda "on"
{
digitalWrite(motor, HIGH);
digitalWrite(ledPin1, HIGH);
Serial.println("ON");
}
else //si es de lo contrario lo mencionado anteriormente, el motor y el led se apagaran y
en el monitor serie aparecera la leyenda "off"
{
digitalWrite(motor, LOW);
digitalWrite(ledPin1, LOW);
Serial.println("OFF");
}
}

Diagramas de conexiones fsicas:

Figura 7. Diagrama conexiones fsicas (encendido/apagado) push botton (ISIS).

Diagrama esquemtico:

Figura8. Diagrama esquemtico (encendido/apagado) push botton.

10

Fotografas:

Figura 9. Circuito fsico (encendido/apagado) push botton.

Observaciones
En este circuito observamos que el funcionamiento de un motor DC es sencillo pero para
poder hacer que tenga la suficiente potencia se tiene que realizar una etapa de potencia y
poner una fuente independiente para este.

11

Circuito 2:
Descripcin del circuito:
En este circuito se har el encendido y apagado de un led y el motor DC mediante un push
botton para el encendido y otro push botton para el apagado. Pero se harn dos cdigos
para la prioridad de reset y set; los arreglos fsicos sern los mismos.
Lista de componentes:

Placa Arduino.
Led.
4 resistencias de 1 kohm.
Computadora.
Protoboard.
Jumpers.
Diagrama de flujo:

Diodo IN4001.
Motor DC.
TIP-120.
2 Push botton.
Fuente 5V.

Prioridad setstate

Figura 10. Diagrama de flujo (encendido/apagado) 2 push botton preferencia setstate.


12

Prioridad resetstate

Figura 11. Diagrama de flujo (encendido/apagado) 2 push botton preferencia


resetstate.

Algoritmo prioridad resetstate:


const int ledPin=9;//se declara el puerto 9 para el led
const int motorPin=13;//se declara el pin 13 para el motor
const int setPin=2;//se declara el pin 2 como inicio
const int resetPin=3;//se declara el pin 3 como reinicio
boolean setstate=0;//se inicializa el estado del pin 2 como 0
13

boolean resetstate=0;//se inicializa el estado del pin 3 como 0


void setup()//en esta parte se comienza con el cuerpo de la configuracion
{
pinMode(ledPin,OUTPUT);//se declara el pin del led como salida
pinMode(motorPin,OUTPUT);//se declara el pin del motor como salida
pinMode(setPin,INPUT);//se declara el pin 2 como entrada
pinMode(resetPin,INPUT);//se declara el pin 3 como entrada
Serial.begin(9600);//se inicializa la velocidad de la seal
}
void loop()//en esta parte se inicializa el cuerpo del ciclo
{
setstate=digitalRead(setPin);//se declara el pin 2 como lector digital
resetstate=digitalRead(resetPin);//se declara el pin 3 como lector digital
if(setstate==HIGH)//se inicializa un if, si el estado del pin 2 es alto se enciende el led,el
motor y aparece en el monitor serie "on"
{
digitalWrite(ledPin,HIGH);
digitalWrite(motorPin,HIGH);
Serial.println("ON");
}
else//se hace un else-if y se dice que si el estado del pin 3 es alto el motor,led se apagaran
y en el monitor serie aparecera "off"
{
if(resetstate==HIGH){
digitalWrite(ledPin,LOW);
digitalWrite(motorPin,LOW);
Serial.println("OFF");
}
}
}

14

Algoritmo prioridad setstate:


const int ledPin=9;//se declara el puerto 9 para el led
const int motorPin=13;//se declara el pin 13 para el motor
const int setPin=2;//se declara el pin 2 como inicio
const int resetPin=3;//se declara el pin 3 como reinicio
boolean setstate=0;//se inicializa el estado del pin 2 como 0
boolean resetstate=0;//se inicializa el estado del pin 3 como 0
void setup()//en esta parte se comienza con el cuerpo de la configuracion
{
pinMode(ledPin,OUTPUT);//se declara el pin del led como salida
pinMode(motorPin,OUTPUT);//se declara el pin del motor como salida
pinMode(setPin,INPUT);//se declara el pin 2 como entrada
pinMode(resetPin,INPUT);//se declara el pin 3 como entrada
Serial.begin(9600);//se inicializa la velocidad de la seal
}
void loop()//en esta parte se inicializa el cuerpo del ciclo
{
setstate=digitalRead(setPin);//se declara el pin 2 como lector digital
resetstate=digitalRead(resetPin);//se declara el pin 3 como lector digital
if(resetstate==HIGH)//se inicializa un if, si el estado del pin 2 es alto se enciende el
led,el motor y aparece en el monitor serie "on"
{
digitalWrite(ledPin,LOW);
digitalWrite(motorPin,LOW);
Serial.println("OFF");
}
else//se hace un else-if y se dice que si el estado del pin 3 es alto el motor,led se apagaran
y en el monitor serie aparecera "off"
{
if(setstate==HIGH){
digitalWrite(ledPin,HIGH);

15

digitalWrite(motorPin,HIGH);
Serial.println("ON");
}
}
}

Diagramas de conexiones fsicas:

Figura 12. Diagrama conexiones fsicas (encendido/apagado) 2 push botton (ISIS).


Diagrama esquemtico:

Figura 13. Diagrama esquemtico (encendido/apagado) 2 push botton.

16

Fotografas:

Figura 14. Circuito fsico (encendido/apagado) 2 push botton.

Observaciones:
En este circuito se observamos que necesitamos 2 push botton, uno para el encendido y
otro para el apagado. Para poder realizar el programa solo se necesit conocimientos
adquiridos en la prctica anterior.
Tabla 2. Prioridad al reset.

S
0
1
0
0
0
1

R
0
0
0
1
0
1

M
0
1
1
0
0
0

Tabla 3. Prioridad al set.

S
0
1
0
0
0
1

R
0
0
0
1
0
1

M
0
1
1
0
0
1

Nota: en la tabla 2 se muestra que en el programa se configura primero el paro y


despus el arranque, y en la tabla 3 es el contrario. Lo que podemos notar es que en
la programacin se da prioridad a la ltima condicin.

17

Circuito 3:
Descripcin del circuito:
En este circuito se encender un motor de DC por medio del monitor serie, si en el monitor
serie se escribe la letra A se encender el motor, si se introduce una P se apagara el
motor.
Lista de componentes:

Placa Arduino.
Led.
2 resistencias de 1 kohm.
Computadora.
Protoboard.

Jumpers.
Diodo IN4001.
Motor DC.
TIP-120.
Fuente 5V.

Diagrama de flujo:

Figura 15. Diagrama de flujo (encendido/apagado) por monitor serie.


18

Algoritmo:
const int ledPin=9;//se declara el pin 9 para el led
const int motorPin=13;//se declara el pin 13 para el motor
char variable;//se delcara para leer una variable en formato caracter
void setup()//se inicializa el cuerpo de la configuracion
{
Serial.begin(9600);//se inicializa la velocidad de la seal
}
void loop()//se inicializa el cuerpo de ciclo
{
variable=Serial.read();//Se declara que la variable leera una avriable de manera serial
if(variable=='P'){//se declara in if; si se presiona la tecla P en el monitor serie el motor
y el led se apagan
digitalWrite(ledPin,LOW);
digitalWrite(motorPin,LOW);
//Serial.println("OFF");
}
else//se delcara un else-if; si en el monitor serie se presiona la letra A se enciende el led
y el motor
{
if(variable=='A')
{
digitalWrite(ledPin,HIGH);
digitalWrite(motorPin,HIGH);
//Serial.println("ON");
}
}
}

19

Diagrama de conexiones fsicas:

Diagrama
Figura 16.esquemtico:
Diagrama conexiones fsicas (encendido/apagado) por monitor serie (ISIS).

Figura 17. Diagrama esquemtico (encendido/apagado) por monitor serie.

20

Fotografas:

Figura 18. (encendido/apagado) por monitor serie.

Figura 19. Circuito fsico (encendido/apagado) por monitor serie.


Observaciones:
En este circuito se observa que de igual manera se puede encender y apagar el motor mediante
el monitor serie, obviamente declarando en el programa que se va a ocupar el monitor y que
variables sern para hacer dichos cambio

21

Circuito 4:
Descripcin del circuito:
En este circuito se tendr que leer los flancos de los pulsos de la seal, solo los que van
de un 0 a un 1 para poder encender y apagar el motor DC con un solo push botton.
Lista de componentes:

Placa Arduino.
Led.
3 resistencias de 1 kohm.
Computadora.
Protoboard.
Jumpers.
Diagrama de flujo:

Diodo IN4001.
Motor DC.
TIP-120.
Push botton.
Fuente 5V.

Figura 20. Diagrama de flujo (encendido/apagado) 1 push botton (lector de flancos de la seal).
22

Algoritmo:
const int buttonpin=2;//se declara el pin 2 para el push botton
const int ledPin=13;//se declara el pin 13 para el led
const int motorpin=9;//se declara el pin 9 para el motor
boolean buttonstate;//se declara el estado de boton
boolean lastbuttonstate=false;//se declara que el ultimo estado del boton sera falso
boolean outputstate=LOW;//se declara que la salida del estado sera un estado bajo
void setup()//se inicializa el cuerpo de la configuracion
{
pinMode(buttonpin,INPUT);//se declara el pin 2 como entrada
pinMode(ledPin,OUTPUT);//se declara el pin 13 como salida
pinMode(motorpin,OUTPUT);//Se declara el pin 9 como saldia
digitalWrite(ledPin,LOW);//se declara que el led inicializa apagado
}
void loop()//se inicializa el cuerpo del ciclo
{
buttonstate=digitalRead(buttonpin);//se delcara que el estado del boton sera un lector
digital del pin 2. esta aprte sirve para detectar los flancos de los pulsos, solo leeera los
flancos que van de un 0 a 1
if(buttonstate!=lastbuttonstate)//se declara un if; si el estado del boton es diferente al
ultimo estado del boton, el estado sera alto
{
if(buttonstate==HIGH)
{
outputstate=!outputstate;//se declara que si la salida del estado es diferente a la misma
el estado es alto
}
}
digitalWrite(ledPin,outputstate);//se declara como escritor digital al pin 13 y la salida
del estado
digitalWrite(motorpin,outputstate);//se declara como escritor digital al pin 9 y la salida
del estad

23

lastbuttonstate=buttonstate;//se delcara que el ultimo estado del boton sera igual al


estado del boton
}

Diagrama de conexiones fsicas:

Figura 21. Diagrama conexiones fsicas (encendido/apagado) 1 push botton (lector de flancos de la
seal) (ISIS).

Diagrama esquemtico:

Figura 22. Diagrama esquemtico (encendido/apagado) 1 push botton (lector de flancos de la


seal).
24

Fotografas:

Figura 23. Circuito fsico (encendido/apagado) 1 push botton (lector de flancos de la seal).

Observaciones:
En este circuito observamos que se controlara el motor por medio de un push botton, pero
el programa que se realizo est incompleto, as como se encuentra el programa no arranca
el motor, pero eso se puede solucionar de dos maneras, agregndole un debounce al
programa o realizando un arreglo fsico llamado latch el cual almacena los estados
lgicos y as lograr que funcione el motor, tambin es conocido como flip flop.

25

EJEMPLO DE APLICACIN EN LA INGENIERIA


Un ejemplo de la aplicacin de los conocimientos adquiridos en esta prctica podra ser
el control de motores en la industria, ya sean motores, monofsicos, bifsico o trifsico.
Con los conocimientos adquiridos se podra tener nociones o las bases para realizar el
arranque/paro jogging de un motor o hasta la inversin de giro de los motores, con un
puente H.

CONCLUSIONES
Herrera Jimnez Alexis
A lo largo de realizar estos programas y arreglos fsicos par aun motor DC me pude dar
cuenta que no es tan fcil como parece, pare realizarlo se necesita una etapa de
potencia para poder encender el motor con una potencia adecuada. Y se debe de tener
mucho cuidado con la programacin. Me pude percatar de que al realizar el ltimo
circuito es necesario detectar los flancos de subida de la seal para poder encender y
apagar el motor con un push botton, de lo contrario no se podra. Obviamente para poder
llegar a hacer esta prctica debimos de hacer los programas anteriores para ver cmo
es que iba avanzando la complejidad de los programas y los arreglos.
Martnez Villa Fidel
En esta prctica los programas aumentaron su grado de dificultad pero se vuelven mas
aplicables a problemas de la vida diaria, en esta ocasin los programas son enfocados
al control de un motor de corriente continua como los que encontramos en aparatos
electrnicos, pero para el control de dicho motor fuera de una programacin importante
donde se cuida los rebotes elctricos producidos por factores externos en este caso fue
el botton pulsador, mediante funciones de programacin que toman en cuenta los
flancos de subida se corrige este error o mediante una configuracin externa, adems
de esto aplicamos una etapa de potencia para el arranque y as no daar el Arduino.
Miranda Castillo Jos Roberto
En la prctica desarrollamos programas para el control bsico de un motor de corriente
continua a travs de la placa Arduino y observe que se necesita de una serie
instrucciones muy lgicas para el correcto control del motor adems que la utilizacin
de una correcta etapa de potencia nos ayuda a cuidar nuestro Arduino y a hacer que
funcione de una manera adecuada tambin observamos cmo es que un factor externo
puede afectar en mucho como fue el caso del rebote que provoca el botn pulsador para
el cual tuvimos que utilizar un instruccin que nos ayudara a eliminarla.
GENERAL
Nosotros concluimos en esta prctica donde ya aplicamos ms funciones de
programacin es necesario cuidar los factores externos en nuestros circuitos pues a
veces nuestra programacin puede estar bien pero factores del circuito como los
botones pueden generar ruido o rebote elctrico que altere nuestra programacin en
este caso lo prevenimos mediante funciones que nos brinda arduino para corregirlo y
que solo le lean los flanco de subida de la misma forma para realizar ya circuitos
usando motores en este caso de corriente continua es necesario siempre una etapa de
potencia puesto ya se demandara mas corriente y podemos daar nuestro controlador
en este caso el arduino.

26

BIBLIOGRAFIAS

https://www.arduino.cc/en/Main/ArduinoBoardLeonardo
https://www.sparkfun.com/datasheets/Components/LED/COM-09590-YSL-R531R3DD2.pdf
http://www.mouser.com/catalog/specsheets/XC-600035.pdf
https://www.arduino.cc/en/uploads/Main/arduino-leonardo-schematic_3b.pdf
http://www.diodes.com/_files/datasheets/ds28002.pdf
http://pdf.datasheetcatalog.com/datasheet/SGSThomsonMicroelectronics/mXyzzrtw.pd
f
https://alonsodub.wordpress.com/2012/07/25/controlar-motores-y-dispositivos-de-alta-potenciatip120/
http://www.ecured.cu/index.php/Motor_im%C3%A1n_permanente

27

ANEXOS
Resistencias

28

29

LED

30

31

Arduino Leonardo

32

33

Diodo IN4001

34

35

36

TIP-120

37

38

39

You might also like