Cómo encender un led con un microcontrolador
Como dice mi amigo Raúl, encender un LED es a los microcontroladores lo que imprimir el mensaje “Hola, mundo” es a la programación: es la prueba de fuego para comprobar que toda la cadena, desde que tenemos la idea hasta que la vemos funcionar, está montada. La cadena en este caso tiene cinco pasos:
Paso 1. Diseñar el circuito.
Para diseñar el circuito utilizo Eagle, una aplicación disponible como freeware para el diseño de circuitos que además permite generar luego las pistas para la placa de circuito impreso. Para esta prueba utilizo un PIC de 8 pines, el 12F675, que como todos los microcontroladores de la casa microchip es muy fácil de usar y programar. Para encender un LED de forma intermitente solo necesitaremos una batería, el LED y una resistencia para limitar la corriente por el LED. El diagrama podéis verlo ampliado pinchando en la imagen, y como podéis comprobar es realmente sencillo. Solo hay una cosa un tanto “extraña”: el conector de 5 pines es un interfaz ICSP y se utiliza para programar el PIC sin necesidad de desmontarlo del circuito, luego explicaré cómo funciona esto. De momento pensad que no está ahí.
Paso 2. Escribir el programa.
Para encender y apagar el LED necesitaremos activar y desactivar la salida digital 2 (conectada al pin 5). Me apetece hacerlo parpadear, así es que pondremos la salida a HIGH (Vcc) para que luzca, esperaremos medio segundo, pondremos la salida en LOW (gnd) para apagarlo, esperaremos otro medio segundo y vuelta a empezar.
El programa es también muy sencillo, está escrito en C y utilicé el compilador de C de HI-TECH (freeware), que distribuye microchip como parte de su IDE de desarrollo MPLAB (software gratuito de la casa microchip). Como curiosidad, el programita ocupa 68 bytes (de 1K) que es un 6.6% de la memoria de programa disponilbe.
Paso 3: Montar el circuito.
Con los componentes en la mano, unos cables y un protoboard para montarlo todo sin necesidad de soldar, el circuito puede estar montado en cuestión de minutos. Como alimentación utilizo una batería de las que usamos en aeromodelismo para los servos, de 5V. Si no tuviera que programar el chip, bastarían dos cables, desde la batería al chip, para el montaje, ya que pincharía la resistencia directamente a la patilla 5 del chip, el led en serie con la resistencia y por último a masa y et voila!
¿Entonces por qué hay más de dos cables en mi montaje? Pues para poder programar el PICsin necesidad de sacarlo del circuito y plantarlo en el programador de PICs, que es como se hacía antes. En lugar de eso utilizo un interfaz llamada ICSP (In Circuit Serial Programming) que mediante cinco pines lleva la señal desde el programador al chip. Ya estamos listos para conectar el programador.
Paso 4: Grabar el PIC.
Para grabar el PIC utilizaré la interfaz ICSP y un cable, que me fabriqué yo mismo, para inyectar los datos ICSP desde el programador al circuito. El programador es un PICKit2, de la casa microchip, y el software que utilizo es el mismo MPLAB IDE con el que escribí el programa, ya que puede trabajar directamente con el programador PICKit2. Durante la grabación la batería está desconectada. Todo el proceso de grabación y verificación lo controlo desde el MPLAB IDE. Una vez terminada la grabación, podemos pasar a probar.
Paso 5: La prueba final.
Ya solo queda probar que el PIC hace lo que nosotros queríamos originalmente, es decir, que enciende y apaga el LED a un ritmo de un ciclo por segundo.
Desconectamos la sonda ICSP, conectamos la batería y…ooooooh, qué boniiiiitoooooo.
Como veis es realmente sencillo esto de trabajar con PICS. En un par de horas podemos tener nuestro primer circuito funcionando. Pero si esto os parece sencillo, aún hay otra forma más fácil aún de trabajar con microcontroladores: Arduino. Podeis ver un artículo sobre el Arduino en esta página de NoFlyArea: Arduino.
Enlaces
- Código fuente
- Cadsoft Eagle: software para diseñar circuitos
- Microchip MPLab IDE: entorno integrado de desarrollo con PICs de microchip
- Hoja de características del PIC 12F675





