Beruflich Dokumente
Kultur Dokumente
INDICE
Sesin 4 (5 horas)
Lectura=389
Intensidad=96
En este otro ejemplo, vamos a conocer la funcin constrain (). Con ella podemos
limitar el valor de una variable entre dos valores extremos. Utilizaremos esta vez el LM35 para
regular la intensidad del led.
Temperatura=27C
Intensidad=96
En el anterior ejemplo, observamos que el led no vara de forma uniforme sino que da
pequeos saltos de intensidad cuando tocamos con los dedos el LM35. Esto es debido que
estamos escalando una cantidad de temperatura que slo vara entre 26 y 32 grados Celsius
(segn temperatura ambiente). Slo tenemos 6 posibles estados de intensidad. Los 255
estados diferentes de intensidad se reparten gracias a map (), en slo 6 estados diferentes de
intensidad. Se deja para el lector avispado, mejorar el comportamiento gradual de la
intensidad del led mapeando, no la temperatura, sino la lectura del sensor, para las
temperaturas de entre 26 grados y los 32 que podemos hacer aumentar, al tocar el sensor.
Pero qu pasa cuando queremos modular una carga que no pueda alimentar
directamente el microcontrolador?Los pines digitales pueden suministrar 40mA como mximo
y 5V, insuficiente por ejemplo para un motor de continua de 12V. Tendremos que utilizar algn
componente que sea capaz de suministrar la potencia en funcin de una pequea tensin que
nos proporcionar el pin PWM de Arduino. Los transistores MOSFET son ideales para estos
casos ya que se controlan mediante tensina diferencia de los BJT que se pilotan mediante
corriente.
El MOSFET posee tres terminales Gate (puerta) Drain (drenador) y Source (fuente).
Cuando la tensin entre puerta y fuente (VGS) es mayor que la de umbral (VGSthreshold) aparece
una corriente entre el drenador y la fuente. Lo interesante de estos transistores es que tienen
una muy elevada impedancia de entrada y por tanto, por la puerta no circula apenas
corriente. Se controlan mediante la tensin suministrada entre la puerta y la fuente, no por la
corriente. Ideal por la limitacin en corriente de los pines TTL de nuestro Arduino.
Los valores tpicos de VGSthreshold para dispositivos de pequea potencia suele variar
entre 1 y 3 V. Los MOSFET de potencias elevadas, tienen unos valores de VGSthreshold entre 10V
y 15V y necesitaran un driver para elevar la tensin del
pin digital por ejemplo con un transistor BJT.
Los dispositivos de enriquecimiento estn
normalmente en corte cuando la tensin entre puerta y
fuente es 0V.
En la figura tenemos los smbolos de dos
transistores MOSFET de enriquecimiento (no existe
canal entre el terminal D y el terminal S en ausencia de tensin VGS). La figura (a) corresponde
a un MOSFET enriquecimiento de canal N y la figura (b), de canal P (tensin negativa entre G y
S para conducir).
a) La tensin mxima VDSdel MOSFET, debe ser superior a la que necesita nuestra carga.
Para el modelo que utilizaremos, el IRFZ44N, este valor es de 55V.
b) La corriente mxima IDSdel MOSFET, debe ser superior a la que necesita nuestra carga.
En nuestro modelo, esta corriente es de 49A.
Las caractersticas que debemos tener en cuenta a la hora de elegir nuestro MOSFET
en funcin de cmo voy a atacar la puerta de control, son:
a) La tensin del tren de pulsos con el que atacar la puerta debe ser mayor que la
tensin VGSthresholdpara que empiece a conducir, pero en funcin de la corriente que
necesito entre el canal DS, puede que tenga que atacar la puerta con tensiones
mayores. (Grfica ID-VDS en funcin de VGSdel datasheet)
b) La tensin con la que atacamos la puerta del MOSFET, debe ser menor que el valor
mximo de VGS que soporta nuestro MOSFET. En nuestro modelo este valor es de
20V.
Con todo esto podemos conectar la puerta del MOSFET a nuestro pin Arduino PWM de
tres maneras:
Con esta Resistencia de base tendremos un poco mas de 1mA por la base. Por
tanto tendremos un poco ms de 10mA por el colector. Con esto, la resistencia de
colector debe estar para 12V, alrededor de 1K.
Aunque hemos dicho que el MOSFET no necesita casi corriente por la puerta
por que tiene una impedancia de entrada muy alta, si tiene una capacidad parsita
que deberemos cargar, por tanto la resistencia del colector no debe ser muy alta
(tardar ms tiempo a cargarse el condensador) ni muy baja que proporcione una
corriente entre colector y emisor demasiado alta y el transistor sufra.
Dispone pues de 4 canales de 1A mximo cada uno (600mA el L293D) con dos seales
de habilitacin, una por cada par de canales. Con cargas inductivas como motores es
aconsejable utilizar diodos de proteccin (el L293D ya los lleva integrados).
Para el control de un motor por canal, podemos utilizar cualquiera de las dos
siguientes maneras, cableando el motor de la salida de potencia a GND o a Vcc2:
Para realizar un control PWM sobre el motor en este ltimo caso, deberemos activar
de forma permanente la habilitacin del canal, activar una de las dos entradas de seal de
forma permanente y aplicar el PWM a la otra entrada de seal del mismo canal. Si queremos
cambiar de sentido, basta con modificar el valor permanente de la entrada de seal que no usa
el PWM. En este caso el control analgico sobre la velocidad, estar invertido respecto al caso
anterior, tal y como se representa en las siguientes grficas:
La diferencia de tensiones entre los pines de entrada IN1 y IN2, marcan la tensin a la
que estar sometido el motor. En el ltimo punto de esta sesin, en el ejemplo de aplicacin,
se concretar sobre este aspecto, mediante el cdigo de Arduino.
Se pueden poner diodos de proteccin tambin para cada bobina del motor como
vimos con los motores DC.
El microcontrolador generar una secuencia de impulsos para energizar las bobinas y
generar los pasos en un sentido u otro (BASTA CON INVERTIR EL ORDEN DE LA SECUENCIA).
PASO TERMI
ALES SE
TIDO 1 PASO TERMI
ALES SE
TIDO 2
I
1 I
2 I
3 I
4 I
1 I
2 I
3 I
4
1 5V 0V 5V 0V 1 0V 5V 5V 0V
2 5V 0V 0V 5V 2 0V 5V 0V 5V
3 0V 5V 0V 5V 3 5V 0V 0V 5V
4 0V 5V 5V 0V 4 5V 0V 5V 0V
Podemos observar que el motor pap, tiene un consumo de corriente mayor cuanto
ms despacio gira. Es decir, tiene un consumo inversamente proporcional a la velocidad y por
tanto, tambin su par o torque. En el anterior cdigo, no tenemos un control bueno sobre la
velocidad y el nmero de pasos que queremos que efecte nuestro motor. Para ello vamos a
utilizar la librera <stepper.h> de Arduino (sin cambiar de cableado) y comprobar el
funcionamiento de las funciones que esta librera nos ofrece. Observemos el siguiente cdigo:
El motor utilizado en este ejemplo tiene un paso mnimo de 1.8 grados por tanto
necesitar 200 pasos por revolucin. Podra utilizar algn otro driver para controlar el motor
que me permitiera por ejemplo trabajar a 1/8 de paso. En este caso los pasos necesarios para
realizar una revolucin serian 1600. Al crear el objeto de la clase Stepper.h, tengo que poner
en el orden adecuado, los pines utilizados para las cuatro seales de control sobre las 2
bobinas.
En el cdigo anterior utilizamos varios mtodos del sobre el objeto creado de la clase
Stepper.h. Veamos cuales son sus propsitos:
.setSpeed(): Establece la velocidad del motor en revoluciones por minuto. Esta funcin
no hace que el motor gire, slo establece la velocidad a la que girar cuando se llame a
la funcin step().
.step(): Gira el motor el nmero especificado de pasos, a una velocidad determinada
por la llamada ms reciente a la funcin setSpeed(). Esta funcin es bloqueante; esto
es, esperar a finalizar el movimiento para devolver el control a la siguiente lnea de
cdigo. Si establecemos la velocidad a1 RPM y llamamos a step (100) con un motor de
100 pasos, tardar un minuto en ejecutarse. Es aconsejable mantener la velocidad alta
y avanzar slo unos pocos pasos con cada llamada a step().
Esta librera nos permitir realizar operaciones con el motor con mucha ms precisin.
Es importante especificar que tambin hubiramos podido crear un objeto de la clase
Stepper.h, slo con dos pines. Esto es, como veremos en el siguiente punto, para poder utilizar
esta librera con drivers para motores pap, que slo requieren dos pines de nuestro Arduino,
uno para el sentido y otro para la velocidad.
Caractersticas:
Canales: 1
Alimentacin: 5.5Vmin (50V mx.)
Corriente mxima: 9 Amperios
PWM: 40Khz.
Alimentacin lgica: 5V.
Impedancia MOSFET: 10m
Modelo Mosfet: FDS5672 SMD
Este driver es similar al anterior pero diseado para poder conectarlo directamente a
la placa Arduino. Se diferencia respecto al anterior que solo necesitamos 2 pines Arduino para
controlar cada uno de los 2 motores (el anterior permite controlar las tres seales que necesita
el L298 para controlar cada canal). Puede proporcionar hasta 2A por canal. La placa toma la
alimentacin del pin VIN de Arduino e incluye un LED azul y otro amarillo para indicar el
sentido de giro en todo momento. Todas las lneas del driver estn protegidas por diodos para
evitar corrientes inversas que puedan daarlo.La salida OUT1/2 est conectada a la salida
digital 12 (direccin A) y la salida digital 3 (PWM A)La salida OUT3/4 est conectada a la salida
digital 13 (direccin B) y la salida digital 11 (PWM B)
Los 15V de la tensin de control delos MOSFET se generan en el mismo circuito, por lo
que solo se requieren 5V a 50 mA para la alimentacin del circuito, adems de la alimentacin
del motor que est comprendida entre los 5 y los 24V dependiendo de los requerimientos del
motor.
Potencia=39%
Sentido=