Objetivos
Material requerido
Kit inicio UNO | |
Kit Inicio Mega |
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 uno. 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.
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:
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:
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.
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.
- Transistor es una acrónimo que deriva del inglés Transfer Resistor
- 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.
- 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.
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.
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.
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.
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. [one-fourth] [/one-fourth][three-fourth last][margin value=»5″ /][fancy-ul style=»rounded-tick»] [three-fourth last][margin value=»5″ /][fancy-ul style=»rounded-tick»]
Para ver cómo 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. Ánimo os lo dejo como ejercicio.
Resumen de la sesión
En este curso de arduino hemos aprendido lo siguiente: