Anda di halaman 1dari 9

19 - Control de motores

mediante un transistor
TIP120
En la prctica anterior controlamos el funcionamiento de un servo. Ahora
vamos a realizar un sencillo montaje para controlar la velocidad de un motor de
corriente contnua mediante arduino.
Las salidas que da la placa de arduino, no superan los 250mA, y si tenemos un
motor ms potente, necesitamos una fuente de alimentacin externa (pilas) y un
circuito amplificador (un transistor). En nuestro caso, usaremos un transistor de tipo
drlington, el TIP120, que nos permitir controlar motores bastante potentes. Si
tratamos de conectar el motor directamente a un pin de Arduino, hay muchas
probabilidades de daar la placa.

Los transistores son dispositivos de 3 patillas o pines: Colector, Base y


Emisor. La mayor parte de la electricidad fluye desde el colector al emisor, pero esto
slo suceder si una pequea
cantidad de corriente est
pasando por la Base. Esta
pequea corriente es
suministrada por la salida

digital

de

Arduino.

Hay que prestar


atencin a las patillas
(pines) del TIP120 para
conectarlo correctamente.
El siguiente elemento importante que
vamos a ver es el diodo rectificador. ste
acta como una vlvula unidireccional que
slo permiten que la corriente fluya en una
direccin, por lo que el circuito estar
protegido por si la alimentacin del motor
produce un pico de corriente o si el motor
consume
demasiada.

Cuando se desconecta la alimentacin de un


motor, se obtiene un pico negativo de la
tensin, que puede daar la placa Arduino o
el transistor. El diodo protege contra ste
pico. Su colocacin es imprescindible.
Lo principal a recordar es que los diodos
rectificadores, como los LED deben tener
una colocacin correcta.
Por ltimo, la resistencia protege a la base del transistor de un exceso de corriente que
podra daarlo.
Este montaje nos permite colocar motores de hasta 60 V. Los cables rojo y
negro deber ir a los terminales de nuestra fuente de alimentacin externa (las pilas)

Ejercicio 19-1

D
I
G
O
#
define
fadePi
n9
void
setup (
)
{
pinMode ( fadePin , OUTPUT ) ;
}
void loop ( )
{
for ( int i = 0 ; i < 360 ; i + + )
{
/ / convertir 0-360 ngulo radian (necesario para la
funcin seno) float rad = DEG_TO_RAD * i ;

/ / calcular el seno del ngulo como un nmero


entre 0 y 255 int sinOut = constrain ( ( sin (rad) * 128 )
+ 128 , 0 , 255 ) ;
analogWrite ( fadePin , sinOut ) ;
delay ( 15 ) ;
}
}

Ejercicio 19-2

ATENCIN: El transistor es el mismo y se conecta igual que antes. Cuidado


con la posicin del colector-base-emisor.
En este circuito, para alimentar al motor no utilizamos las pilas, sino la
alimentacin de 5V de arduino. Eso significa que los motores que podemos usar deben
ser de mucha menor potencia que en el caso anterior.
La patilla D3 de la Arduino est conectada a la resistencia. Al igual que
cuando se utiliza un LED, esto limita la corriente que fluye en el transistor a travs de
la base. (Si fuese muy alta, se podra estropear)

CDIGO
int
motor
Pin =
3; void
setup()
{
pinMode(motorPin,
OUTPUT);
Serial.begin(9600);
while (! Serial);
Serial.println("Speed
0 to 255");
}
void loop()

{
if (Serial.available())
{
int speed = Serial.parseInt();
if (speed >= 0 && speed <= 255)
{
analogWrite(motorPin, speed);
}
}
}
El transistor acta como un interruptor, controlando la alimentacin del motor.
El pin 3 se utiliza para activar el transistor de encendido a apagado y se le da el
nombre de 'motorPin' en el programa. Cuando se inicia el programa, aparece
una ventana donde se te pide que para controlar la velocidad del motor es
necesario introducir un valor entre 0 y 255 en el Serial Monitor.

En la funcin 'loop', el comando Serial.parseInt() se utiliza para leer el


nmero introducido como texto en el Serial Monitor y convertirlo en un entero int.
Puedes escribir cualquier nmero aqu, por lo que la sentencia "if" en la
siguiente lnea slo hace una escritura analgica con este nmero si el nmero est
entre 0 y 255.

Ligeras modificaciones

Invierte las conexiones del motor. Qu sucede?


Introduce valores diferentes (comenzando en 0) en el Serial Monitor y apunta
el valor en el que el motor empieza a girar con velocidad. Observa que el motor
empieza a girar ms rpido a medida que aumenta la salida analgica.
Haz que el motor gire deprisa. Intenta apretar el eje del motor entre los dedos.
No lo mantengas as durante mucho tiempo, o puedes quemar el transistor, pero
encontrars que es bastante fcil parar el motor. Cuando est girando rpido, no
tiene mucha fuerza.
Haz ahora que el motor gire despacio y vuelve a intentar apretar el eje del
motor entre los dedos. Notas alguna diferencia en su fuerza?

Ejercicio 19-3

En el segundo circuito, hemos visto una forma de controlar la velocidad de


giro del motor. Vamos a ver ahora cmo hacerlo con un potencimetro. Recordad que
un potencimetro no es ms que una resistencia variable.
El circuito es bastante simple, pero recuerda que la conexin GND debe ser
compartida entre el Arduino y la fuente de alimentacin adicional y estoy usando una
resistencia de 1k Ohm entre Arduino pin 9 y el pasador de la base del transistor. En la
segunda imagen se aprecia mejor.

D
I
G
O

Vamos a leer el voltaje del potencimetro mediante la instruccin


analogRead(). A continuacin, mapeamos el resultado a un rango de 0 a 255, y lo
guardamos en una nueva variable. Utilizaremos esta variable para ajustar la velocidad
del motor utilizando analogWrite ().

const int transistorPin = 9; / / conectado a la base del transistor


void setup ()
{
pinMode (transistorPin, OUTPUT);

/ / Establece el pin como salida de transistor

}
void loop () {
int sensorValue = analogRead (A0);

/ / Leer el potencimetro

int = OutputValue map (sensorValue, 0, 1023, 0, 255);

/ / Mapea el valor del sensor a un

rango de 0 a 25

analogWrite (transistorPin, OutputValue);

/ / Usa para controlar el transistor

Nota:

Hasta ahora hemos controlado la velocidad de giro del motor, pero


para poder controlar tambin el sentido, necesitamos utilizar otro tipo de
componentes llamados puente-H que veremos en la prctica siguiente.

Ejercicio 19-4
Disear y construir un circuito que detecte la temperatura ambiental. Si es
25C se debe activar un ventilador para bajar la temperatura. Cuando sta sea <25C,
el ventilador debe apagarse.
Ten cuidado con las conexiones, y no te olvides de la resistencia de proteccin de la
base y del diodo rectificador.

Anda mungkin juga menyukai