Tutorial: ¿Cómo programar un Arduino Pro Mini 328?
En este tutorial explicaremos como programar un Arduino Pro Mini usando un Conversor USB a Serial (TTL), veremos que su uso y programación es tan fácil como en las demás placas Arduino.
Las placas Arduino se comunican con la PC utilizando el puerto USB tanto para la programación como para el intercambio de datos, por esta razón dentro de las placas Arduino encontramos un chip que se encarga de la conversión de USB a Serial TTL. En las primeras versiones de Arduino las placas utilizaban el puerto COM o RS232 para comunicarse con la PC, pero este puerto es cada vez menos común por lo que ahora se utiliza el puerto USB. Las versiones actuales de Arduino Uno y Arduino Mega utilizan un microcontrolador Atmega como conversor, en el caso del Arduino Leonardo o Micro el conversor está integrado en el microcontrolador principal.
El Arduino Pro Mini a diferencia de las demás placas no incluye un conversor en placa (por un tema de reducción de precio), por lo que es necesario utilizar un conversor externo para la programación del chip o para la comunicación serial. Dentro de los conversores USB-Serial TTL se encuentran los chips: FTDI232, PL2303, CH340G y el CP2102 que es el que usaremos en este tutorial.
En el mercado podemos encontrar diferentes modelos de Arduino Pro Mini, siendo la principal diferencia que debemos considerar: el voltaje de funcionamiento y la frecuencia del cristal. Los 2 modelos principales son el Arduino Pro Mini 328 - 5V/16MHz y el Arduino Pro Mini 328 - 3.3V/8MHz.
Existen dos formas de programar el Arduino Pro Mini, la primera es utilizando un Módulo Conversor USB serial TTL y la segunda utilizando un Programador especial para microcontroladores Atmel AVR. En este tutorial desarrollaremos el primer método: Utilizando un coversor USB-Serial.
Dentro de los conversores USB-Serial el CP2102 se destaca por incluir el pin DTR, que será de gran utilidad al momento de programar nuestro Arduino Pro Mini. El Pin DTR es el encargado de resetear automáticamente al Arduino Pro Mini. Luego de un RESET en el Arduino se ejecuta el gestor de arranque (Bootloader), en ese momento la PC envía los datos con el nuevo "sketch" y el Arduino es reprogramado, si pasan 1 o 2 segundos y no se envían los datos, el Arduino ejecutará su sketch actual.
- Conversor con pin DTR
- Conversor sin Pin DTR
Programar Arduino Pro Mini usando un Conversor con pin DTR
Para este caso tan solo basta con conectar el Arduino pro mini y el conversor de la siguiente manera.
Pro Mini CP2102
DTR <- DTR
TXO -> RXD
RXI <- TXID
VCC <- 5V
GND <- GND
* Si el arduino Pro Mini es de 3.3V, el VCC debe conectarse al pin 3V3 del Conversor
En nuestro ejemplo hemos usado un módulo conversor CP2102, pero el orden de pines puede cambiar entre los diferentes modelos.
El siguiente paso es seleccionar la tarjeta de nuestro Arduino Pro Mini en el IDE de Arduino
Ahora seleccionamos el Puerto COM correspondiente al CP2102 en nuestro caso es el COM5
Si tienen varios puertos COM o no están seguros si es el puerto COM correspondiente al módulo conversor pueden averiguarlo en Equipo->Propiedades>Administración de dispositivos
Una vez seleccionado el tipo de tarjeta, el puerto COM y haber hecho las conexiones correspondientes, solo hace falta hacer clic en "cargar". Si todo es correcto, la programación o carga no debe tener problemas y no debe arrojar ningún tipo de error.
Programar Arduino Pro Mini usando un Conversor sin pin DTR
En este caso dejamos sin conectar el pin DTR del Pro mini, lo demás conectamos igual que en el caso anterior.
Pro Mini PL2303
TXO -> RXD
RXI <- TXD
VCC <- 5V
GND <- GND
* Si el arduino Pro Mini es de 3.3V, el VCC debe conectarse al pin 3V3 del Conversor
Ahora como en el caso anterior seleccionamos en tarjeta al Pro Mini y el puerto COM correspondiente al conversor, el puerto COM del conversor lo puedes ver en “administración de dispositivos” (igual que en el caso anterior):
La diferencia con el otro módulo es al momento de Cargar el programa, pues al no tener el Pin DTR, el IDE de Arduino no va a poder resetear automáticamente al Pro Mini, por lo que se tendrá que hacer de forma manual:
Clic en cargar el programa, y después reseteamos manualmente el Arduino justo un segundo antes o en el cambio de “compilando” a “Cargando”.
Otra forma más fácil puede ser en tener presionado el botón de Reset desde el momento que se da clic en cargar y soltarlo cuando pasa de “compilando” a “cargando”.
Si todo es correcto el IDE debe indicar: "Carga Terminada"
Si no se logra resetear el Arduino Pro Mini en el momento adecuado, tendremos el siguiente error:
Si a pesar de indicar "carga terminada" aparecen errores en la consola, significa que no se ha cargado correctamente el programa, por lo que debemos volver a cargar el sketch.
*Nota 1: Si el Arduino Pro Mini ya está alimentado por una fuente de voltaje externa ya no se debe conectar los 5V del conversor.
*Nota 2: el Arduino Pro Mini utilizado en este tutorial es de 5V/16Mhz, pero existen también modelos de 3.3V, por lo que hay que tener cuidado al momento de alimentarlo, si este fuera el caso, VCC se tiene que conectar al pin de 3.3V (3V3) del conversor serial
Ab* 01/03/2021 Responder
Muy buena info! Quería realizar esta pregunta antes de que estropee la placa.. tengo el CP2102 que viene con el DTR. Pero quiero conectarlo a una placa lilypad simple board (usa el 328P). Los pines para la conexión son GND, GND, VCC, RXD, TXD, DTR.. la conexion sería lo mismo que con el arduino? Los conecté de esta forma:lilypad cp2102
DTR DTR
TX RX
RX TX
VCC +5V
GND -
GND GND
(Si tuviera el FT232 conectaria el otro GND al CTS), pero debido a que no lo tengo no sé si las conexiones son las correctas en el CP2102. Si alguien me puede ayudar se lo agradecería mucho. Saludos!!
Fe**** 17/05/2021 Responder
Sí, estaría bienAn***** 04/08/2020 Responder
Muy buenas,Estoy teniendo problemas al subir a la placa el programa y me sería de mucha ayuda que alguien me pudiera ayudar.
He conectado la placa al conversor (con DTR) correctamente, y he cargado sin ningún problema el ejemplo de Blink. Pero cuando he ido a subir otro programa no me dejaba, y me saltaba el error de cuando no se resetea correctamente la placa.
A pesar de que debería resetearse automáticamente, he intentado también hacerlo de forma manual y tampoco he logrado que se cargue ningún programa.
Si a alguien que ha solucionado el mismo problema, o sabe como solucionarlo, agradecería mucho la ayuda.
di*** 24/10/2021 Responder
hola Andres, me pasa exactamente igual si solucionaste agradezco la infoju**** 23/05/2022 Responder
tengo el mismo problema alguien ya encontró la soluciónAl******* 05/05/2020 Responder
Hola disculpa. lo que no logro entender, es que, si en estos modulos la salidas de las señales TX y RX tienen niveles logicos 3.3v.Se entiende que tiene un pin de salida de alimentacion para dispositivos externos de 3.3v y otro a 5v . pero el nivel logico de las otras señales? son todas a 5v? son todas a 3.3v? tendra algo para configurarlo?
Gracias y Saludos
Gu******* 02/12/2019 Responder
Hola Sebastian, te felicito por este tutorial. Les comparto que yo estaba de necio queriendo programar erroneamente mi tarjeta al seleccionar "Arduino Mini"... Lo correcto fue seleccionar Board: "Arduino Pro or Pro Mini" y Processor: "Atmega 328P (5V, 16 MHz)"... saludosLu*** 01/05/2019 Responder
Hola, he connectado el arduino al ordenador, arduino pro mini 5v 16mhz, pero cuando intento suvir el archivo SSD1306Ascii , me da,Sketch uses 1440 bytes (4%) of program storage space. Maximum is 30720 bytes.Global variables use 146 bytes (7%) of dynamic memory, leaving 1902 bytes for local variables. Maximum is 2048 bytes
Pero la pantalla no enciende cuando la connecto a los 5v, que estoy haciendo mal?, porque he probado otro codigo y funciona, pero con este no
Du**** 01/04/2019 Responder
Hello, I have a problem when I run M365 arduino 1.6.6 I get message of erratic compilation "Arduino : 1.6.6 (Windows 10), Carte : "Arduino Pro or Pro Mini, ATmega328 (5V, 16 MHz)"
In file included from C:UsersfredDesktoptrotinettem365_dashboard-masterM365M365.ino:1:0:
sketchdefines.h:1:22: fatal error: WatchDog.h: No such file or directory
#include "WatchDog.h"
^
compilation terminated.
exit status 1
Erreur lors de la compilation.
Do you have a solution ? thank you
ed* 26/12/2018 Responder
HolaTengo problemas al cargar el programa. Me sale el fallo "No such file or directory
"
He descargado correctamente el programa ya que en el software de arduino veo el codigo.
Utilizo version de arduino 1.8.8
Jo** *******ez 14/11/2018 Responder
solo hay que instalar la carpeta blink para que funcione la pantalla con todas las funciones en patin xiaomi m365 ?con eso solo bastaria?
Ra** ****ga 08/02/2018 Responder
Saludos estoy trabajando con un conversor USB-Serial el CP2102 de 6 pines y un Pro MIni y al poco tiempo de estar subiendo el programa aparece este error, por favor me pueden indicar que es lo que sucede? Gracias por su ayudaavrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xde
ro*** ****** ***ra 08/02/2018 Responder
muy buen informe graciasJo*** **** ****** **za 03/12/2017 Responder
Funcionó perfecto con un conversor PL2303 (sin DTR) manteniendo pulsado el reset hasta el cambio de compilado a subiendo. Ya me sentía frustrado de que no pudiera subir un sketch.¡Gracias!
Lu***** 04/11/2016 Responder
Hola, tengo un Arduino Pro Mini pero no se que modelo es. El cristal esta borrado asíque no se la frecuencia. Y atrás de la placa tiene las leyendas 8MHz, 16MHz, 20MHz, 3V3, 5V. Como puedo saber que modelo es? Gracias!Na***** 05/11/2016 Responder
Hola Luciano, el Arduino Pro Mini tiene un pequeño regulador, el valor de regulador es de 3.3V o de 5V dependiendo del modelo. Alimenta por el pin YAW con 5V y mide el valor del voltaje en VCC si en VCC obtienes 3.3V es porque la placa es de 3.3V/8MHZ. Las dos placas solo se diferencian en el regulador y en el cristal. Saludossa****** 03/09/2016 Responder
buenas, se puede programar una arduino Pro mini para que transmita temperatura via NFC. GraciasNa***** 14/09/2016 Responder
Hola, eso va a depender del módulo NFC que uses, todo lo que se puede programar con un arduino uno también se lo puede programar en aun Arduino Pro mini, esto porque tienen el mismo Microcontrolador.Se******* 16/08/2016 Responder
Hola, muy bueno el post! He probado con todo lo que dices, seguí el paso a paso ( tengo un conversor sin DTR ) pero aún así no he podido hacerlo funcionar. Simplemente estoy intentando probar el programa blink, y no logro hacer que funcione. La computadora me reconoce correctamente al conversor entre sus puertos, he elegido la opcion de Pro Mini 5v 328 ( aunque en mi arduino el microcontrolador dice atmega 328P, no sé si será lo mismo ), y al intentar subirlo me falla. Me aparece este error :avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xa7
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xa7
y asi sigue hasta llegar al attempt 10 of 10 : not it sync: resp= 0xa7
Tienes idea de qué puede ser? Ya he probado todo y leido en muchos foros. El bootloader debe estar bien , porque ni bien le doy alimentación a la placa y aprieto el boton reset me titila el led del pin 13 ( sin que le haya cargado el programa ).
Saludos y muchas gracias,
Sebastián.
Na***** 22/08/2016 Responder
Hola Sebastian, ten en cuenta que si estas usando un conversor sin DTR, tienes que resetear manualmente tu arduino, justo antes que empiece a cargar el programa como se explica en el tutorial, Verifica también que tengas seleccionado la tarjeta correcta, en tu caso placa pro mini y en procesador Atmega328(5V,16Mhz), si no seleccionas la placa o frecuencia correcta, no podrás programar tu arduino.ro** 01/02/2019 Responder
Hola. Me pasa exactamente lo mismo que a Sebastián, a pesar de que he reseteado manualmente el arduinoRoke
Lu*** 27/07/2016 Responder
Hola! muy buen post!Tengo el Pro Micro de 16MHZ con un conector MicroUSB, ya hice lo necesario para que aparezca en la lista de placas, pero no se qué Programador debo seleccionar en el Arduino-IDE. ¿me podrían dar alguna sugerencia?
Saludos y gracias.
Na***** 28/07/2016 Responder
Hola Lucas, verifica bien qué tipo de placa estas usando, el Arduino Pro Mini y el Arduino Pro Micro son placas distintas, Si el tuyo es el Arduino Pro Micro, en el IDE prueba seleccionando la placa Arduino/Genuino Micro o Arduino Leonardo, ya que estos usan el mismo microcontrolador.Ga** *****al 16/07/2016 Responder
Is there a difference between the pro minis on the market? I'm looking to purchase one and it seems that there are a lot of 3rd party manufacturers which make them? Are they any different in terms of quality or performance? Here's the one I want to buy: arduino pro mini.Thanks,
Gary
Da**** *******es 11/07/2016 Responder
¡Hola amigo! ¿Cómo sé si mi Arduino Pro Mini es de 3,3V o 5V? Sólo sé que el cristal es de 16.000;Gracias
Na***** 12/07/2016 Responder
Hola Daniel, si el cristal es de 16 MHz lo más probable es que sea de 5V, un Pro mini de 3.3V generalmente viene con un cristal de 8MHz (Frecuencia recomendada para el ATMEGA328 a 3.3V). Pero si tu Pro mini es de 5V también puedes alimentarlo con 3.3V, en el IDE Arduino lo que importa es la frecuencia, que está definida por el cristal.