Arduino en su mínima expresión

Arduino en su mínima expresión

tecnoingenia / octubre 6, 2019

Como primer artículo del blog me pareció apropiado comenzar con una pequeña explicación en la cual se basarán muchos de los proyectos que pienso publicar.


Se trata de la configuración mínima de un microcontrolador ATmega328 para poder utilizarlo en el entorno de arduino, he basado muchos de mis proyectos con estos componentes ya que proporcionan un entorno sencillo y accesible para llevar acabo nuestras ideas y/o prototipos.


La idea es poder programar el ATmega328 con el IDE de arduino e integrarlo en nuestras placas de una forma más profesional, desarrollar nuestro controlador adaptado a nuestros gustos o en el caso de un estudiante poder presentar nuestros proyectos sin un arduino del que salen no sé qué cantidad de cables…


Irónicamente haremos uso de un arduino uno para poder llevar acabo este tutorial.


Para empezar necesitamos la siguiente lista de componentes:

1.- Microcontrolador ATmega328PU

2.- Cristal Oscilador de 16Mhz

3.- 2 Capacitores cerámicos de 22uF

4.- 1 resistencia de 10K

5.- Un arduino UNO

6.- 1 protobard

Software:

1.- La versión más resiente del IDE de arduino https://www.arduino.cc/en/Main/Software


Para poder utilizar un ATmega328 como un arduino UNO es necesario cargar la configuración de este o «quemar el bootloader», que es básicamente un software que se aloja en la memoria flash del ATmega y nos permite cargar un código a través del puerto serie. Así que… Manos a la obra.


Comenzaremos por abrir nuestro arduino IDE y en la pestaña de archivo, ejemplos, seleccionaremos ArduinoISP


Abrir sketch ArduinoISP

Se mostrará el siguiente código de ejemplo


ArduinoISP

Una vez abierto nuestro Sketch, conectaremos el arduino a un puerto USB y presionaremos subir, que es el segundo símbolo de izquierda a derecha en la parte superior izquierda de nuestro IDE y esperamos hasta que nos indique que se ha subido. (Es importante verificar que en el menúde herramientas se encuentre seleccionado el puerto COM correcto de nuestro arduino).


Subir Skech

Una vez hayamos cargado el sketch correctamente procederemos a desconectar nuestro arduino del cable USB y conectaremos el circuito que se muestra en la siguiente imagen (es de suma importancia que el arduino tenga el programa cargado y este desconectado al momento de armar el circuito).



Distribución de pines en Atmega328

Pin 1 ——-> Resistencia 10K ohm

Pin 7 ——-> +5Vcd

Pin 8 ——-> GND (0Vcd)

Pin 9 ——> Cristal Oscilador

Pin 10 —-> Cristal Oscilador

Pin 17 —-> Pin digital 11 de arduino

Pin 18 —-> Pin digital 12 de arduino

Pin 19 —-> Pin digital 13 de arduino

Pin 20 —-> +5Vcd

Pin 22 —-> GND


Algunas observaciones: Tanto el oscilador, la resistencia y los capacitores cerámicos no tienen polaridad, así que no importa en que sentido se conecten, los capacitores se pueden omitir pero son importantes al momentos de ejecutar un programa para mantener la uniformidad de la oscilación del cristal. Se puede añadir un led en serie a una resistencia de 330ohm en el pin digital 7 del arduino que mostrará el estatus.


Una vez hayamos conectado nuestro circuito como muestra la imagen regresaremos al IDE y conectaremos el arduino al puerto USB de nuestra PC, en la pestaña de Herramientas, Programador, seleccionaremos Arduino as ISP.



Hecho esto volveremos a la pestaña de Herramientas y haremos click en la opción de «Quemas Bootloader».



Si hemos seguido los pasos correctamente pasados unos segundos en la parte inferior izquierda nos mostrara la leyenda «Quemado de bootloader completado».


Listo hemos quemado el bootloader en nuestro ATmega328 y estamos listos para empezar a divertirnos con el, ahora el artículo se llama «Arduino en su expresión mínima» por que para mí la base de un arduino como tal es lo que se muestra en la siguiente imagen.



Lo demás que querramos añadir dependera de las necesidades de nuestro proyecto hay cosas que probablemente necesitaremos aparte como un regulador de voltaje o resistencia de pull up, etc. pero eso lo veremos más tarde.


Bueno ahora, ¿Cómo puedo comprobar que todo esto sirvió de algo?, ¿Cómo sé que este blog no me está tomando el pelo?, bueno vamos a probar el típico blink en nuestro ATmega, que viene a ser el «hola mundo» de los electrónicos.


para poder cargar código en el microcontrolador deberemos implementar el siguiente circuito



Básicamente estamos conectando en paralelo El reset, TX y RX del ATmega con el del arduino. Hay otras formas de hacer esto como simplemente colocando el ATmega328 en la base del arduino y luego retirándolo para colocarlo en nuestro circuito o utilizando un convertidor TTL a serial pero eso es tema para otro tutorial.


Las conexiones de los pines son las siguiente:

Pin 1 ATmega —-> Reset de Arduino

Pin 2 ATmega —-> RX arduino

Pin 3 ATmega —> TX arduino

Pin 18 Atmega —-> resistencia 330 ohm en serie con LED a GND (Recuerden que el led si tiene polaridad la terminal más larga es la positiva y la corta la negativa).


Ahora con el arduino conectado al USB, nos iremos a Archivo, Ejemplos, Basic y seleccionaremos Blink. Se abrirá el sketch correspondiente y presionaremos en subir.




Una vez se termine de subir deberemos ver nuestro led parpadear, lo que significa que hemos concluido nuestro tutorial con éxito.


Pero más que concluir este es el inicio de un mundo de posibilidades y proyectos con este microcontrolador, de lo que se trata es de poder diseñar placas a la medida de nuestras necesidades utilizando una plataforma sencilla, rápida y con infinidad de aplicaciones.


Quiero aclarar que en este post estoy considerando que el lector cuenta con cierto conocimiento básico en electrónica y en la plataforma de arduino, si crees que es necesario empezar a conocer esta plataforma desde cero por favor házmelo saber en los comentarios, hasta pronto.


1 Comment

    • tecnoingeniaPosted on : julio 13, 2020 at 6:20 pm

      segun entiendo, tu hardware permite grabar tanto el bootloader como un sketch en el atmega, pero para grabar un sketch esta el arduino, creo que tu configuracion de dipswitch es innecesaria y redundante, nos gustaria que eliminaras el dipswitch y volvieras a enrutar tu pcb, tambien si es posible que utilices el fritzing y permitas descargar el .fzpz teniendo en cuenta que la herramienta fritzing es gratis y open source.

Leave a Reply

TecnoIngenia | Blog personal -israel.barreras@tecnoingenia.com