ADAPTÁNDONOS AL MUNDO EXTERIOR
En las sesiones previas hasta ahora, hemos influido en el
mundo exterior poniendo una orden en los pines digitales de Arduino. Por
ejemplo poniendo HIGH en un pin y confiando en que esto sea suficiente para
gobernar lo que haya detrás, que hasta ahora han sido diodos LEDs.
Pero la capacidad de Arduino para alimentar ese elemento
externo es limitada, y con mucha frecuencia insuficiente para excitar un actuador exterior.Por
eso necesitamos elementos externos que reciban la señal de control de nuestro
Arduino y adapten este control a las necesidades del mundo exterior.
Para ello vamos a tener que utilizar elementos como
transistores, relés, servos y pequeños motores de diferentes tipos.
·
Los pines digitales de Arduino permiten un
máximo de 40 mA o lo que es lo mismo 5V x 40mA = 0,2 Watt.
·
Esto es suficiente para iluminar LEDs o incluso
mover un pequeño servo pero es insuficiente para mover un motorcito de
corriente continua o de paso a paso.
·
Es importante asegurarnos de que lo que
conectemos a los pines no sobrepasen las especificaciones de nuestros Arduinos,
porque si los forzamos la cosa acabara oliendo a plástico quemado y un viaje a
la tienda de Arduinos a por otro.
A lo largo de las sesiones anteriores hemos ido conociendo
componentes electrónicos de distintos tipos: Diodos, LEDS, Resistencias,
Potenciómetros… y ahora vamos a presentaros otro que es la base fundamental de
toda la electrónica moderna, incluyendo la informática, se llama transistor.
¡Que no cunda el pánico! Somos conscientes del
terror reverencial que el transistor inspira entre los aficionados
novatos a la electrónica y los novicios de Arduino, pero tranquilos, es mucho
más fácil de lo que parece y es un componente muy agradecido en casi cualquier
proyecto que podáis imaginar.
Así que por favor seguid leyendo. Y confio en que acabareis
cogiéndole gusto a los transistores.
EL TRANSISTOR
Según la Wikipedia un transistor es un dispositivo
electrónico semiconductor utilizado para entregar una señal de salida en
respuesta a una señal de entrada, que cumple funciones de amplificador,
oscilador, conmutador o rectificador.
Guauuu, no me extraña el pánico. Vamos a traducir.
Siguiendo con las analogías que vimos en la sesión 3, entre
el flujo de corriente eléctrica y flujo de agua, resulta que con el agua
tenemos una cosa muy similar al transistor. Se llama grifo.
Si, uno de esos grifos que abrimos y cerramos para ducharnos
o lavarnos las manos y que cumplen básicamente dos funciones:
·
Permitir abrir o cortar el flujo de agua
(digitalmente SI/NO).
·
Regular la intensidad de dicho flujo, abriendo
más o menos el paso.
Pues básicamente un transistor es exactamente lo mismo pero
construido de otro modo, con diferentes materiales y un poco más rápido de
accionar. Un transistor puede trabajar de dos maneras:
·
Permitir o cortar el flujo de corriente.
·
Amplificando una señal de entrada (enseguida
volvemos)
Cuando un transistor funciona de la primera manera, en modo
pasa o no pasa, pero sin medias tintas, decimos que funciona al corte (no
pasa) o a saturación (pasa sin restricciones). Y esto es el
fundamento de toda tecnología digital moderna: Ordenadores, teléfonos,
consolas, relojes digitales. De hecho un transistor en corte es un 0 y en
saturación es un 1, (o TRUE / FALSE si preferís).
Los grifos, tiene tres partes: entrada, salida y control.
Los transistores igual, pero se llaman emisor, colector y base (E, C, B).
Si hacemos funcionar un grifo y vamos moviendo sin parar el
control en ambas direcciones, el flujo de salida de agua es proporcional al
Angulo del mando en cada momento. Y si la tubería fuese lo bastante enorme
estaríamos amplificando enormemente nuestro movimiento manual.
Cuando hacemos eso con un transistor poniendo en la Base una
señal eléctrica variable, el flujo de corriente entre el Emisor y el
Colector sigue la señal de la base pero amplificándola. Se pueden conseguir
ganancias enormes con este sistema y es la base de todos los amplificadores
electrónicos modernos.
Cada vez que escuchas música, hay un transistor (o
varios) amplificando una señal débil para que puedas escucharla.
·
Todos tenemos clara la idea de lo que es un
conductor y un aislante. Los semiconductores son un tipo de
materiales que podemos convertir en conductores o aislantes a voluntad,
mediante una señal eléctrica. Y que presentan ciertas propiedades interesantes
bajo las condiciones adecuadas.
·
Los semiconductores mas típicos y mas extendidos
en la fabricación electrónica son el Silicio y el arseniuro de Galio, pero son
muchos los materiales, que en mayor o menor medida, presenta un efecto
semiconductor
·
La mayor parte de los componentes que conocemos
en electrónica, como LEDs, transistores y diodos son semiconductores, y muchos
otros menos conocidos como tiristores y hasta láseres de estado solido
NUESTRO PRIMER CIRCUITO CON UN TRANSISTOR
Vamos a empezar con un transistor de uso general, que
podemos encontrar con facilidad en cualquier sitio: P2N2222. Todos los
circuitos que incluyen un transistor se suelen parecer a este:
·
El transistor es Q1, y normalmente se suele
representar inscrito en un círculo.
·
La flecha del emisor indica la dirección de la
corriente y que es un transistor NPN, si la flecha tuviera la dirección
contraria sería un transistor PNP, pero mejor lo dejamos de momento
·
M1 es cualquier cosa que vayamos a controlar
(como un motor de CC por ejemplo).
·
Pin9 representa uno de los pines de control de
nuestro Arduino cuy señal gobernara el circuito externo.
Un circuito así nos permite que la resistencia entre Emisor
y Colector sea proporcional a la señal de control que inyectamos en la Base. En
este ejemplo un valor de 5V en la Base permite el paso de la corriente sin
restricciones. Y para tensiones que vayan decreciendo en la Base (mediante PWM)
la oposición al paso es cada vez mayor hasta que en 0V corta por completo el
paso.
·
Transistor es una acrónimo que deriva del inglés
Transfer Resistor
Vamos a alimentar nuestra carga con 5V porque no tenemos
otra. Pero podríamos conectar 12V, 24V o lo que necesitásemos e ir usando
motores más potentes sin preocuparnos de si Arduino puede alimentarlo o no. De
hecho se venden transistores capaces de regular corriente alterna domestica a
220V.
Una ventaja de usar un transistor es que aísla eficazmente
el circuito de control de la base de la carga entre Emisor y Colector, haciendo
casi imposible que queméis un Arduino con un circuito como este.
·
El número de transistores comerciales es
ilimitado (y sus precios también) dependiendo de su función y de su capacidad
para soportar diferentes tensiones, mayores cargas, disipar más calor o hacer
poco ruido electrónico.
·
No es buena idea buscar transistores raros y
caros diseñados para tareas específicas. Mientras no tengáis muy claro porque
compráis un transistor caro, es mejor pegarse a los modelos baratos de toda la
vida.
·
El P2N2222 lleva muchos años en el mercado por
algo. Empezad con él y ya iremos hablando de otros.
CIRCUITO PARA PROTOBOARD
Vamos a utilizar un transistor para gobernar la velocidad de
rotación de un pequeño motor de corriente continua (CC)., pero este mismo
circuito nos permitiría gobernar motores mayores sin más que asegurarnos de que
el transistor que empleemos resista la carga.
Para saber
que es cada pin, Sostened el transistor con las patas hacia abajo mirando a la
cara plana, donde esta rotulado el nombre. De
izquierda a derecha son Emisor, Base y Colector.
|
·
Importante: Dado que el motor tiene carga
inductiva conviene añadir un diodo que proteja el transistor.
·
No es imprescindible, pero un transistor suele
ser más caro que un diodo (aunque no mucho) y más difícil de reemplazar.
|
EL PROGRAMA DE CONTROL DEL MOTOR
Vamos a empezar por lo sencillo, simplemente, arrancando y
apagando el motor sin variar la velocidad.
const int
control = 9 ;
void setup()
{
pinMode(control, OUTPUT) ;
}
void loop()
{
digitalWrite(control, HIGH);
delay(2000);
digitalWrite(control, LOW);
delay(1000);
}
Ya va siendo hora de que empecemos a coger buenas
costumbres, y por eso en la primera línea definimos una constante de tipo
entero llamada control, que usaremos en lugar el 9, cuando queramos referirnos
al pin de control.
·
A medida que el tamaño de los programas crecen,
un error en un numero de pin puede ser muy difícil de detectar, pero en cambio
dándole un nombre, no solo ayuda a que sea más fácil de leer, sino que además,
si por cualquier motivo queremos cambiar el pin de control, basta con cambiarlo
en un único sitio sin necesidad de recorrer el programa buscando un número
concreto.
Para ver como varía
la velocidad podríamos hacer:
const int
control = 9 ;
void setup()
{
pinMode(control, OUTPUT) ; }
void loop()
{
for ( int n = 0 ; n < 255 ; n++)
{
analogWrite
(control, n) ;
delay(15) ;
}
}
Donde escucharemos
como va aumentando la velocidad del motor hasta pararse y volver a empezar. La
razón es que al variar la tensión en la base del transistor, este limita la
corriente que lo atraviesa modificando así la velocidad del motor al que esta
conectado. Sería bastante sencillo añadir al ejemplo un potenciómetro, de modo
que usemos su valor para variar la velocidad del motor. Animo
os lo dejo como ejercicio.
Comentarios
Publicar un comentario