in

Microcontroladores: ¿Por dónde empiezo?

A lo largo de 2009, hemos visto en NeoTeo una gran cantidad de montajes que han sido el gusto y deleite de muchos lectores pero que le han dejado a muchos otros un sabor amargo al descubrir que por desconocimiento del tema no logran comprender muchos aspectos relacionados a las construcciones con microcontroladores. Muchos expresan su alegría y su gusto por los trabajos publicados, pero otra importante mayoría se limita a comentar “lástima que de electrónica no sé nada”. Para todos ellos quisimos organizar un artículo mencionando lo más básico y elemental de la práctica que deben conocer para comenzar a dar los primeros pasos en el mundo de los microcontroladores. Durante 2010 nadie debe quedar afuera. NeoTeo será la casa de todos, sean expertos o aprendices, ingenieros o alumnos de nivel inicial. La electrónica está aquí, es hoy y nosotros utilizaremos todos los medios para que no dejes pasar este arrollador tren que no se detiene. Ven, sube y viajemos juntos.

Lo esencial para iniciarte en el mundo de la electrónica “viva”, de la electrónica activa y con movimiento propio, es saber que debes utilizar tus manos para construir hardware. La electrónica no existe sin hardware. Por ejemplo: tu ordenador no sería nada sin un hardware que lo haga funcionar. Debido a que existen infinitos tipos de dispositivos electrónicos capaces de interactuar entre sí para dar forma a cualquier sistema activo con prestaciones al menos elementales, nosotros vamos a orientar nuestra guía únicamente hacia la zona de los microcontroladores y el mundo físico que los rodea. Intentaremos mostrarte el ABC de lo que necesitas para el inicio. Sin esto será complicado iniciarse en forma exitosa; por lo tanto, te recomendamos tomar algunos ahorrillos y hacer una de las más importantes inversiones que puedas realizar: invertir en conocimientos para tu futuro. Comencemos.

Protoboard. Breadboard. Placa de pruebas.
Elemento indispensable para armar lo que será la escala intermedia antes de construir un circuito impreso y armar un montaje definitivo. En un protoboard, los terminales conectores de los elementos simplemente se introducen en orificios preparados para tal fin que poseen una conexión muy específica que debes conocer previamente para no cometer errores en el armado y las conexiones de tu diseño. Los tamaños de estos elementos fundamentales son tan variados como sus precios. Y si de consejos hablamos, no te recomendamos comprar el más pequeño y barato por el simple hecho de que eres un aprendiz. NO. Trata de buscar un término medio entre lo que puedas pagar y el tamaño de un protoboard, tratando de evitar algo que te quede chico a la segunda práctica de armar un desarrollo. Es decir, trata de comprar algo donde puedas albergar varios circuitos integrados (al menos 3 ó 4) y que te permita incorporar lo mínimo e indispensable en una construcción de práctica.

Modelos de ejemplo de placas de prueba y montaje

El protoboard de la izquierda puede ser un tamaño justo para iniciar la actividad. Allí puedes albergar en su bahía central (entre las letras “e” y “f”, según la imagen superior de ejemplo) unos 3 circuitos integrados o 2 de ellos y algunos otros componentes adicionales que sirvan de soporte funcional al diseño que intentarás ejecutar. Observa que a los costados poseen dos líneas bien definidas. Una roja que en sus extremos tiene un signo positivo y otra de color azul con el símbolo negativo. Por supuesto que serán los conocidos “buses” de alimentación. Es decir, en toda su extensión llevarán la alimentación al circuito bajo ensayo. Por supuesto que la energía no se crea o genera mágicamente por sí sola. Allí deberás conectar la alimentación proveniente desde un circuito que ya veremos de qué se trata. Para mayor claridad y comprensión, la imagen derecha te muestra el esquema de conexiones que lleva un sistema de pruebas de este estilo. Ese se maneja soldando los componentes, pero nos sirve para que veas cómo son las líneas de conexión “invisibles” dentro de un protoboard.

Ejemplo de un protoboard "densamente poblado"

No temas cargarlo de infinitas cosas. Tú debes tener en claro hacia dónde colocas cada cable y cada componente que interviene en el proyecto. Tampoco te sientas cohibido por ser poco prolijo al principio. Si bien la estética del armado de un circuito es fundamental cuando las cosas no funcionan y hay que salir a buscar la falla, tampoco es tan crítica en desarrollos pequeños. Nuestro consejo, naturalmente, es que las conexiones sean lo más cortas y claras posibles. Evita los cables largos y los componentes con terminales largos. Estas premisas te ayudarán a acelerar los tiempos en momentos de resolución de problemas o de relevamiento del armado antes de la prueba inicial. Recuerda: un protoboard = rapidez, practicidad de reformar un circuito, reutilización indefinida. 

Alimentación. Fuente de energía.
Debes contar con un sistema de energía capaz de suministrar la tensión necesaria para el buen funcionamiento de los circuitos que intentes desarrollar en tu flamante protoboard. Sin energía no hay funcionamiento. Las baterías o las fuentes de alimentación de pared son una alternativa interesante para un buen inicio. Luego, a medida que tu experiencia vaya incrementándose, podrás construir fuentes de alimentación de salidas múltiples de tensión (5V, 9V, 12V, tensiones negativas, etc.) o, en el mejor de los casos, adaptar una fuente de alimentación de ordenador para utilizarla como alimentador universal para toda clase de desarrollos.

Cualquier suministro de energía es útil si se lo adapta correctamente

Las baterías recargables pueden ser una de las mejores opciones para alimentar tus proyectos en una fase inicial ya que te pueden ser útiles para otras aplicaciones domésticas. Las fuentes de alimentación (de pared) de 9 ó 12 Volts que sean capaces de suministrar al menos 500 miliamperes (medio Amper) también serán útiles en esta etapa. Lo importante es lograr una tensión de 6 a 12 Volts con la cual alimentaremos los circuitos con los que experimentaremos. Tómalo de manera literal: la energía es la alimentación de nuestros circuitos, es la energía que los pone en acción, es el equivalente a nuestra ingesta alimentaria.

Fuente de 5 Volts. Optimizando la alimentación.
A partir de la tensión obtenida por las baterías o por el transformador de pared, debemos organizar dentro del protoboard una fuente de alimentación de 5 Volts regulados para hacer funcionar con la tensión correcta y exacta a cualquier microcontrolador. Con el sencillo agregado de algunos capacitores, un simple regulador de tensión fijo estará listo para trabajar. Para que puedas identificar los elementos mencionados y cómo deben estar dispuestos dentro del protoboard, te mostramos una imagen ilustrativa que te servirá de guía al momento de la construcción y armado de esta parte fundamental del desarrollo.

Vista aérea de la fuente de 5 Volts en un protoboard

El circuito equivalente a lo que puedes ver en la construcción mostrada te detalla algunas pautas muy importantes a tener en cuenta que son las que te garantizarán un funcionamiento correcto y libre de inconvenientes causados por inversión de polaridad o exceso de tensión de entrada. Como siempre te decimos, para que esto funcione correctamente, no debes descartar ningún componente del circuito (por intrascendente que te parezca) y debes montar de manera ordenada los dispositivos tal como muestran el circuito y la imagen anterior.

Esquema de una fuente de 5 Volts para experimentación

A la entrada de tensión puedes aplicarle desde 6 hasta 12 Volts de corriente continua. El diodo D1 protege a todo el circuito ante posibles inversiones accidentales de polaridad al conectar la energía al circuito. R1 se encarga de limitar la corriente del circuito cuando trabajamos con tensiones superiores a los 9 Volts y permite alcanzar una caída de tensión suficiente para hacer trabajar al diodo zener D2 que regulará la entrada de tensión a VR1. De este modo, VR1 siempre tendrá en su entrada una tensión de 7V5, cuando la alimentación sea superior a los 9 Volts. Esto permitirá utilizar VR1 sin disipador de calor y operando a una temperatura segura. Los capacitores C1 y C3 se encargan de eliminar cualquier ruido residual que pueda existir en la entrada de alimentación que sea producto de arrancadores de iluminación fluorescente o de motores eléctricos funcionando en la cercanía. Por su parte, C2 y C4 se encargarán de atenuar el ripple o zumbido inducido por impulsos de baja frecuencia, como puede ser la red de energía domiciliaria. Con este sencillo circuito, entonces, tendremos completada la sección de alimentación a nuestro microcontrolador.

El Oscilador. El corazón que late para dar vida 
Cualquier sistema inteligente que lleve en su interior un programa necesita un sistema de reloj (clock) que vaya marcando el ritmo de las instrucciones que realice el desarrollo. Le indicará paso a paso al microcontrolador el ritmo al que se cumplirán las instrucciones. Como el segundero determina el ritmo de avance del reloj o como el metrónomo se utiliza para indicar el tempo o compás de una canción, el oscilador, en un sistema con microcontrolador, sirve para indicarle al sistema interno la cadencia o el ritmo en el que se ejecutarán las instrucciones. Atención a este concepto: no debemos confundir la velocidad a la que se realizan los eventos externos del sistema (encender luces, activar solenoides, emitir sonidos, leer pulsadores, etc.) con el ritmo al que se ejecutan las instrucciones de programa dentro de un microcontrolador.

El oscilador de un sistema con microcontrolador, indicará el ritmo de vida del sistema

Por un lado, podemos realizar un programa que genere una intermitencia de encendido en un LED de 2 veces en un segundo, utilizando un PIC con un oscilador interno que funcione a 20 millones de ciclos por segundo (cristal de 20Mhz). Para un correcto funcionamiento, bastará con colocar un par de capacitores cerámicos de unos pocos picofaradios (22 a 47pF) con respecto a GND (Tierra). Algunos diseñadores incluyen en paralelo con el cristal una resistencia de 1 a 4,7 Mohm, pero esto no es esencial en los desarrollos iniciales. Por otro lado, existen muchos microcontroladores que ya traen incorporado en su interior un tipo de oscilador que no requiere de cristal externo.

Para esto, dentro del programa de funcionamiento del sistema, debemos indicarle al micro este modo de operación, mediante instrucciones precisas que en la jerga de la programación se las conoce como “setear los fuses”. Es decir, debemos darles los valores correctos a determinados registros internos del microcontrolador para que éste funcione según estos parámetros seleccionados. Pero para todo esto ya tendrás tiempo más adelante. Comienza colocándole un cristal al sistema ya que la programación es más sencilla y, si no les indicas nada específico, todos los programas que se utilizan para generar el código que empleará el micro tomarán por defecto que utilizarás un cristal.

Diversidad de formatos de cristales osciladores

Reset de inicio del sistema.
Esta conexión es necesaria ya que en los comienzos nuestros programas pueden ser algo inestables o quizás funcionen hasta un determinado momento y luego se detengan. Más práctico que desconectar la energía y volver a conectarla es colocar el pulsador de RESET para el que todo microcontrolador tiene reservado un espacio. Además, durante el inicio del sistema (al conectarle la energía), el núcleo de proceso del microcontrolador requiere de esta conexión para obtener un arranque o inicio adecuado. La práctica es muy sencilla y no demanda ningún aspecto especial dentro del programa que le carguemos al microcontrolador. El circuito específico es muy elemental. A través de este mismo pin, se puede implementar (para los más avanzados) una configuración especial para ingresar la tensión de programación (Vpp) en una conexión ICSP (In Circuit Serial Programming). En lugar de colocar una simple resistencia al positivo de la alimentación, un pequeño arreglo que incorpora un diodo y una resistencia resuelven esta conexión.

Un simple pulsador es la conexión indicada para la entrada de RESET

Indicador de funcionamiento.
Un pequeño LED que nos muestre el suministro de energía al sistema siempre es muy útil de disponer. Malas conexiones en los porta-pilas, en los conectores de batería o en los terminales de entrada de tensión son accidentes habituales durante las primeras prácticas. Y si de accidentes hablamos, la inversión de polaridad al conectar la fuente de alimentación puede llevarnos a perder mucho tiempo hasta descubrir el problema. Por un lado, estaremos seguros de que no romperemos nada por haber colocado en la entrada de alimentación un diodo 1N4007, como vimos antes. Y por el otro lado estaremos seguros de que la tensión está llegando al sistema porque vemos la fuente de alimentación encendida. ¡Todo está bien pero no funciona!  Estos pequeños errores pueden hacernos perder mucho tiempo, pero una pequeña luz indicadora puede ser la solución rápida con una simple observación visual.

Un indicador LED es un auxiliar muy importante y sencillo de realizar

Además, la presencia de un indicador de “Power ON” nos dará la sensación de estar construyendo un equipo con calidad profesional. Siempre existe la posibilidad de que necesitemos varias indicaciones de alimentación a diferentes circuitos. Para esto, debemos saber calcular la resistencia que llevará en serie el diodo LED indicador. Sabiendo que una corriente de funcionamiento segura para este dispositivo es de 20mA (20 miliamperes), utilizaremos la elemental Ley de Ohm (dale… no te hagas el que no la sabes) para calcular el valor de la resistencia. Para el caso más común de una alimentación de 5Volts, el cálculo será igual a Tensión de Alimentación / Corriente de LED = Valor de la Resistencia. Recordemos que los valores necesarios para el cálculo deben ser empleados en unidades enteras, esto es, 5 Volts / 0,02 Amper = 250  Ohm. Como el valor comercial más aproximado es de 220Ohm, seleccionaremos éste para un funcionamiento apropiado, eficaz, seguro y vistoso.

¿Qué tenemos hasta aquí?
Todo lo visto hasta aquí es la configuración mínima de hardware para hacer funcionar un sistema con un microcontrolador. Sólo te falta saber qué deseas hacer con el sistema. Un elemental diodo LED intermitente, una consola de juego, un instrumento para el taller, ¿qué se te ocurre hacer? Lo que sea que decidas, siempre será bueno que sea sencillo al comenzar y, como siempre, un destellador LED es la práctica inicial obligada. En todos los casos, al microcontrolador hay que grabarle en su interior el programa para su funcionamiento, es decir, el set de instrucciones para que haga lo que deseas. Hay que “enseñarle” lo que debe hacer. Hay que programarlo. En NeoTeo (donde siempre encuentras lo que necesitas), te mostraremos un circuito para tal fin y todas las instrucciones de cómo realizarlo exitosamente. Una vez grabado el microcontrolador, ya tendremos todo listo para comenzar. Este será el circuito inicial:

Circuito inicial. Un intermitente a diodo LED es el "Hola Mundo" en hardware

Tenemos todo el hardware. ¡Comencemos ya!
Un momentito, señores. ¿Qué información cargaremos dentro del micro? Debemos decidir un lenguaje de programación para generar el archivo que se cargará en el microcontrolador y lo hará funcionar. Los más populares son ASM, C y BASIC. Los tres tienen sus ventajas y desventajas. Nada es maravilloso en un solo envase en esta vida. Con uno puedes ganar en sencillez al momento de programar, pero desperdiciar espacio de memoria útil de programa. Tal vez con otro lenguaje aproveches hasta el último bit y ciclo de reloj, pero quizás éste sea tan difícil como mirarse uno mismo el interior de un oído. Entonces, la decisión en este punto es algo compleja. Algunos dirán que hay que arrancar con lo más fácil para luego pasar a lo más complejo (me incluyo), mientras que otros opinarán lo contrario. Nosotros hemos adoptado el lenguaje BASIC para nuestros primeros ensayos y nos ha resultado bueno. Esto es una elección muy particular y personal. Prueba, ensaya, experimenta, instala programas, practica mucho y luego tú mismo inclinarás la balanza hacia el lenguaje que más cómodo y apropiado para tus trabajos te resulte. Por último, sólo resta decir que ¡no hay nada mejor que comenzar 2010 con un proyecto! Por lo tanto, aquí hay uno para que lo puedan hacer TODOS. Comencemos este nuevo año con un LED intermitente. ¡Anímate! ¡2010 es tu año!

Listado del programa en BASIC

Reportar

¿Qué te pareció?

Escrito por Mario

40 Comments

Leave a Reply
  1. Hola Mario:

    Como siempre pensando en todo, y que bueno retomar de nuevo conceptos y ayudas para que muchos aprendan, que bien que pienses en recargar de nuevo las baterias para todo lo que viene y de la forma tan clara que tu lo haces da gusto iniciar en la electronica.
    Para los que ya hemos aprendido gracias a ti, nos ayuda un articulo como este para aquellos que nos preguntan como se inician, y bueno, les dire que en neoteo, el gran mario tiene este genial articulo.
    Por ahora los que ya hemos realizado varios articulos tuyos, nos adelantaremos con los que no hemos podido realizar por falta de tiempo.

    Un gran abrazo desde Colombia,

  2. muy buen post mario, lo seguire al pie de la letra y tratare de aprender mas, como dices al principio del post, lo escencial es lo primero que me esta faltando en este momento, jejeje

  3. gracias por hacer blog tan completo ademas de brindar tanta informacion "bien ordenada" para los que gatean en electronica y caminan en PICs pocos blog pueden hacer eso…sigan asi dando el ejemplo.

  4. A mi me gustaría aprender a cruzar ésto con un simulador de circuitos llamado Proteus que tengo por aquí.
    Podría seguir el curso sin miedo de romper nada. El problema es que el Proteus es también bastante complicado de manejar. Ojalá hiciesen un artículo sobre simuladores de circuitos y sus posibilidades de usarlos para este tema.

  5. Hola,
    aunque no estoy registrado visito la web de neoteo de forma habitual y con especial interés tus artículos, siempre ilustrativos.
    Me podrías indicar que compilador usas para el lenguaje BASIC y que hardware para cargar el programa en el PIC (yo soy mas de freescale y uso el codewarrior que facilita grandemente la inicialización del micro con una interfaz gráfica bastante intuitiva, desde mi punto de vista claro, pero allá donde miro (en la web) hay una página dedicada a los PIC).
    Por otra parte yo me he inclinado más por el lenguaje C y la verdad es que no tengo mucha idea de BASIC ni de las librerías disponibles, tendré que buscar a ver si me informo un poco.

    Muchas gracias por tus artículos. Un saludo,
    Jorge

  6. excelente, una consulta que tal es el basic en micros para mi uso utilizo el "C" con ccs pero con micros de 16f te infla regular el codigo

  7. hola muy buen aporte yo soy estudiante de ing en electronica y telecomunicaciones
    y ps si es bueno lo q escribes pero siento q es muy a grandes rasgos porq detras de todo eso hay una maraña de calculos y leyes fisicas para q pueda ser posible hasta el simple funcionamiento de un regulador de voltaje o incluso un led

  8. hola, hace tiempo que quería hacer algun proyecto con un pic.
    Dispongo de un 16f84a ¿podrías indicarme que cambios tendría que hacer para utilizar este pic?

    un saludo a todo el foro.

  9. hola…Muy bien este post para empezar el año aprendiendo algo, en mi caso soy estudiante de electronica, soy bueno con el asm (en las simulaciones todo bien) pero malo con los montajes espero sigan este curso haber si mejoro en montajes, por ahora a practicar el inicio.

    Y muchas gracias a NEOTEO y todos sus escritores por interesarse en que la gente se eduque.

    • Yo intentaría emular Windows, creo que hay una máquina virtual para Mac que permite ejecutar Windows.
      A partir de ahí puede empezar a funcionar.

  10. Hace tiempo habia hecho esta pregunta pero no me acuerdo en que articulo fue?

    Yo estoy por comprar un micro sencillo para empezar en el mundillo, tengo una notebook y una pc sin conexion serial, queria construir un programador pero para usb, pero no he encontrado informacion al respecto, me podrian dar una mano?

    Ademas, tambien si hago un programador con seria, pero uso un cable adaptador (rs-232 a usb), funcionaria?

    Me gusta el programa con el que diseña los circuitos, como se llama, esta para ubuntu, hay otros mejores (que no sea multishit, jajaja).

    Muchas gracias de anticipado y feliz año nuevo.

    • -hola
      Te funcionaría el adaptador serial a usb si el software que vas a utilizar para grabar el pic está basado en windows. (Hay algunos muy viejitos que están basados en DOS).
      Creo que es más fácil hacer un programador por puerto serial que por puerto USB.
      Saludos

  11. bien ahi con este post, anteriormente habia leido articulos de electronica q publicaron, pero como no tenia conocimientos basicos quedo en las ganas..

  12. Hola Mario.Cordial saludo desde Colombia,tierra bella.Un abrazo además para todos los amigos de Neoteo.Como siempre,lector asiduo de ésta página,donde paso interesantes momentos a diario.Me gusta mucho tu actitud pués siempre estás dispuesto a las sugerencias de los demás.Veo además que es algo que haces de corazón,que te apasiona,que disfrutas.Te felicito,te deseo lo mejor de lo mejor en éste año 2010,para tí,tu familia y si me permites hacerlo desde acá,para todos los responsables de que ésta página sea excelente.Gracias por lo que hacen.Pese a que mi profesión se relaciona con la salud,he tenido como hobby siempre la electrónica y sus artículos los leo siempre con interés.Gracias NeoTeo!Un abrazo para todos desde ésta tierra hermosa,Colombia!

  13. Muchisimas gracias Mario en verdad quieria una ayuda, una mano por el camino de la electronica y en cuanto comience mis a desallorar algo por muy pequeño lo compartire.

    Saludos desde Mexico-Puebla

  14. Excelente! Seguro que hay mucho que se animan y otros, como yo, que aprenden cosas nuevas. A tres amigos que están empezando y les estoy echando un cable (nunca mejor dicho) seguro que les viene muy bien.
    Gracias.

  15. Hola.

    Me acabo de registrar pero hace mas de un año que leo la revista. Gracias a Neoteo aprendi a programar pic y en visual basic. Me gustaria devolver parte de lo que se y tengo bastante informacion sobre el integrado PCF8574 que se que a varios de los que usan PIC les va a ser muy util, me gustaria saber alguna forma de compartir esta data.

    Saludos.

  16. Almejandro, un programador por USB tiene que llevar un micro que tambien tienes que programar, je es como un circulo vicioso, en forosdeelectronica.com tienen un programador con el codigo fuente abierto. De todas maneras te recomendaria abrir tu PC, mi PC es bastante moderna y no tenia puerto serial, sin embargo luego de abrirla, en la placa vi el conector para puerto serial, compre la "hembra" del conector y la saque como una tarjeta mas y ya tengo el puerto 😀 ojo no compre una tarjeta sino solo un simple cable con un conector a los pines de la placa y por el otro lado un conector serial simple con su pedazo de metal para ser añadido como una tarjeta mas en la pc…

  17. Hola!
    Ya tengo todos los materiales pero ahora no puedo conectarlos ya que no entiendo los diagramas, si alguien pudiera ayudarme se los agradeceria.
    Gracias

  18. ESTA CONGANAS ESTA PAGINA!!!! …. CUANDO HE ESADO TRABAJANDO CON MICROCONTROLADORES, NOTE KE SON MIS ESTRICTOS EN CUANTO A LA CORRIENTE…. UN PROGRAMA QUE FUNCIONABA CORECTAMENTE, CUANDO A UN LED LE TENIA UNA RESISTENCIA DE 330, NO TRABAJO CUANDO LO CAMBIE A UNA DE 220

  19. Creo que esta pagina me va ayudar bastante para iniciarme en la electrónica. Por lo que veo, Mario eres un crack en esto. Espero aprender mucho de NeoTeo.

    Por cierto, excelente guia para dummies xD

  20. Excelentes aportes!! Veo que te enfocas mucho en los PIC’s te invito que conozcas los microntroladores de ATMEL, ATmega, ventajas con los PIC’S, mayor capacidad de puertos E/S, mayor frecuencia de operacion, varios ADC, programacion y compilacion sumamente sencilla, programador fisico USB facil de implementar, sin duda los mejores microcontroladores.
    Tengo bastante informacion para compartir, cualquier duda con gusto.
    Saludos y felicidades por su pagina!

  21. Una aclaración. Para calcular la resistencia, hay que usar la diferencia entre voltajes y no el voltaje de entrada.

    Es decir, un led suele ir a 1.5V y consume 0.020A. Si la fuente da 5V, sería 5 – 1.5 = 3.5V. Así, 3.5 / 0.020 da 175 y hay que tomar siempre la resistencia que quede justa o por arriba, ya que por abajo podría sobrecalentarse.

    En este caso te queda muy cercano porque solo es 1.5v, pero si el led fuese de 3’3V, la resistencia solo debería de ser de 85, mientras que aplicando la fórmula como haces ahí, seguiría siendo 250 y perderías luminosidad.

Responder a Dal Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

SocialTrance: “Hipnotismo” social en Facebook

Células Madre: La esperanza de una vida mejor