En este tutorial os voy a enseñar cómo crear un circuito de Arduino básico, quemar el Bootloader y realizar la programación directamente en la breadboard. Esto es útil cuando queramos crear circuitos usando ATMega328p independientes, o simplemente queramos reducir el consumo eliminado componentes extra.

Entre las ventajas de este circuito están el precio, ya que consta de menos componentes que una placa Arduino. Esto ayuda si tenemos que crear varios circuitos iguales y no necesitamos estar programándolos. Además tal y como comento arriba, al constar de menos componentes (entre ellos el regulador), reduce el consumo.

Por supuesto no todo es bueno, y este circuito tiene ciertas desventajas. Entre ellas está la carencia del regulador, lo cual es una ventaja porque baja el consumo pero nos limitará el voltaje de entrada. Otra desventaja es la carencia de circuito para programarlo, por lo que tendremos que usar uno externo.

Índice

Material necesario

Para crear este circuito básico necesitaremos de estos materiales.

Protoboardhttps://amzn.to/2JSaxed
https://amzn.to/2wjyGqO
Jumpers o cables de conexiónhttps://amzn.to/34igSJ5
https://amzn.to/2X8FP8k
Un chip ATMega328phttps://amzn.to/3bTocO2
Un cristal de cuarzo de 16Mhzhttps://amzn.to/2y13PQ0
Dos condensadores cerámicos de 22pfhttps://amzn.to/3c0qOcM
Un pulsadorhttps://amzn.to/2UInygj
Una resistencia de 1khttps://amzn.to/39LiM6f
https://amzn.to/2VgRy2f

Si necesitas alguno de los materiales de arriba me ayudaría que utilizaras el link para coprarlos.

Pinout

Lo primero que debemos conocer de nuestro ATMega328p es su pinout, con motivo de saber cómo conectarlo de forma correcta.

Una vez que conozcamos cómo conectar el chip, ya podemos proceder a crear el circuito básico.

Circuito básico

Una vez hecha la introducción, es necesario que nos pongamos manos a la obra y comencemos con el circuito básico.

Para saber cómo conectarlo, podemos utilizar el siguiente esquema:

ATMega328p en Protoboard

Para crear este circuito me he basado en el incluido en la web de prometec, pero he quitado la parte del regulador, la cual no nos interesa para el propósito de ahorrar energía.

Aquí os dejo el datasheet por si queréis ver más información acerca de este microcontrolador.

Quemando el Bootloader

Una vez tengamos nuestro circuito básico montado, tendremos que quemar el Bootloader para poder comenzar a usar nuestro Arduino, ya que en caso contrario no podremos programarlo. Para ello necesitamos disponer de un Arduino funcional, el cual nos permitirá cargar el código para la quema del Bootloader.

He buscado de formas de hacerlo sin otro Arduino pero no he encontrado ninguna que sea efectiva, o al menos no tanto como usando un Arduino, por lo que utilizaremos el siguiente esquema para hacerlo:

Esquema de montaje de un Arduino para quemar el bootloader de un ATMega328p
Esquema para quemar el Bootloader

Una vez que tengamos montado el esquema de arriba, tendremos que conectar la placa Arduino por USB al PC y cargaremos el programa ISP. Para ello abriremos la aplicación Arduino y cargaremos el código de ejemplo:

Nos aseguramos de que la placa Arduino está correctamente configurada en el programa:

Y por último pulsamos el botón para compilar y subir el programa a nuestro Arduino:

Una vez subido el programa correctamente, ya tendremos nuestro Arduino listo para quemar el Bootloader. Ahora sólo tendremos que cambiar el programador de ArduinoISP a Arduino as ISP:

Y por último pulsaremos la opción del mismo menú llamada Quemar Bootloader:

Al pulsar dicho botón, veremos el proceso de quemado del Bootloader en la parte inferior del programa, y nos dirá que el Bootloader ha sido quemado correctamente.

Si recibiéramos algún tipo de error, revisaremos la conexión de los componentes para verificar que todo está correctamente conectado, y si seguimos recibiendo el mismo error, es posible que sea necesario poner un condensador de 10uf entre el pin reset del Arduino y el pin GND. Esto no es necesario en las últimas versiones del programa de Arduino, pero por si acaso os dejo el esquema:

Programación del ATMega328p

Una vez quemado el Bootloader, ya sólo nos quedará realizar la programación del chip ATMega328p. Esto puede ser realizado por un Arduino, o un programador USB a UART del tipo FTDI o CH340G (este último puede requerir la instalación de drivers).

Usando la placa Arduino

Para programar el ATMega328p desde nuestro Arduino podemos utilizar dos métodos:

  • Usando el método descrito arriba para conectarlo y usar el Arduino como ISP
  • Conectándolo directamente al programador de nuestra placa Arduino y programarlo de forma corriente

Usando el esquema usado para quemar el Bootloader

Si quemaste el Bootloader, quizá el método descrito arriba te viene al pelo porque ya tienes el circuito montado, por lo que empezaremos por este método. Para ello, conectaremos el ATMega328p de la misma forma que cuando quemamos el Bootloader.

Una vez conectado cargaremos nuestro Sketch, que en mi caso será el ejemplo Blink, y nos aseguraremos de que el programador siga en Arduino as ISP.

Una vez hecho, ya sólo tendremos que pulsar el botón de subir Sketch, manteniendo la tecla mayúsculas pulsada.

Es muy importante que mantengamos la tecla mayúsculas mientras pulsamos el botón, ya que sino será nuestro Arduino el que sea programado. Si os fijáis bien, se puede ver que el texto cambia a Subir Usando Programador

Usando las conexiones TX y RX

Este método es quizá más fácil a la vez que más tedioso. Es más fácil porque conectamos la placa de Arduino directamente al ATMega328p para programarlo, pero más tedioso porque tendremos que quitar el chip de dicha placa, sino no será posible programarlo.

El esquema de conexión es básicamente conectar los pines Reset, RX y TX de nuestra placa Arduino a los del ATMega328p.

Luego configuraremos el programa como si fuésemos a programar un Arduino Uno.

Y por último pulsamos el botón para subir el Sketch (sin pulsar shift).

Esto subirá el código a nuestro chip ATMega328p y lo dejará listo para funcionar.

Teniendo en cuenta que hemos tenido que retirar el chip de nuestra placa Arduino, quizá una forma más fácil sea directamente poner el chip que queremos programar en la placa. Por supuesto, tendremos que tener cuidado cada vez que lo quitemos para no dañar las patillas y por supuesto, no sirve si ya tenemos el chip soldado en una placa.

Usando un programador FTDI o CH340G

La otra forma de programar nuestro Arduino es usando un programador serial como el FTDI (por ejemplo FT232RL), o CH340G.

Para ello, conectaremos el programador a nuestro ATMega328p de la siguiente forma (el led es opcional, pero nos sirve para verificarlo):

  • El pin DTR o RTS del programador se conectará al pin1 del Arduino (reset) a través de un condensador de 100nf
  • El pin RXD se conectará al pin3 del Arduino (TXD).
  • El pin TXD se conectará al pin2 del Arduino (RXD)
  • Por último se conectarán los pines de corriente VCC y GND a nuestro Arduino para alimentarlo.

Y una vez conectado programaremos el chip como si de un Arduino se tratase. Nos aseguramos de que está bien configurado en el menú de Herramientas:

Una vez hecho cargamos nuestro sketch, como por ejemplo el Led Blink, el cual podremos usar para verificar el funcionamiento, siempre y cuando hubiésemos puesto el led:

Y por último pulsaremos el botón de programación:

Daniel Carrasco

DevOps con varios años de experiencia, y arquitecto cloud con experiencia en Google Cloud Platform y Amazon Web Services. En sus ratos libres experimenta con Arduino y electrónica.

Deja un comentario

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