When we refer to microcontrollers or programmable controllers we will really find a huge variety in the market and the right one to use will depend on the needs of the project as well as the knowledge of the project developer.
So far we have limited ourselves in the blog to the use of PIC microcontrollers because in my opinion they present a range capable of meeting the needs of many projects, however recently I have had the opportunity to discuss this with some students of the faculty of electronic engineering.
The question was about why I always use PIC microcontrollers in my projects and do not use other resources such as Arduino, Rapsberry PI, ESP32 or some other.
It is logical the concern of the students, but perhaps you my dear reader are reading about devices that you do not know, so I want to dedicate this article to explain what is Arduino (and other named cards) and what is the difference between using these and PIC microcontrollers.
Cuando nos referimos a microcontroladores o controladores programables realmente encontraremos una enorme variedad en el mercado y el correcto a usar dependerá de las necesidades del proyecto como también de los conocimientos de quien desarrolla el proyecto.
Hasta ahora nos hemos limitado en el blog al uso de microcontroladores PIC porque a mi parecer presentan una gama capaz de satisfacer las necesidades de muchos proyectos, sin embargo recientemente me ha tocado debatir sobre esto con algunos estudiantes de la facultad de ingeniería electrónica.
La consulta fue sobre por qué siempre uso microcontroladores PIC en mis proyectos y no uso otros recursos como Arduino, Raspberry PI, ESP32 o algún otro.
Es lógica la inquietud de los estudiantes, pero tal vez usted mi estimado lector está leyendo sobre dispositivos que no conoce, por eso quiero dedicar este artículo para explicar lo que es Arduino (y demás tarjetas nombradas) y cual es la diferencia entre usar estos y microcontroladores PIC.
What we see in the image above is an Arduino UNO development board, Arduino is a product dedicated to facilitate the development of electronic projects, for this all the resources are free software category and there is a huge community using these products so it is very easy to find on the web many of the codes for programs that we need.
Let's consider what we have seen about PIC microcontrollers, this is an integrated circuit (a chip), to use this chip we need to develop a program but more important to adapt this chip to a circuit that will take care of the hardware facilities.
We would need to select a resonator for the working frequency, some capacitors, resistors for MCLR, a reset button and a voltage source that can supply the proper working voltages, this as the basics.
Then we would have to develop our electronic board so we need knowledge to make the PCB and the final printed circuit, then we have to find who were the inputs and outputs to make the connections and all that.
It's a lot of things and you need advanced knowledge to implement it, let's say I want to make it so easy that anyone can use it even without knowledge in electronics. So I integrate everything mentioned in a board and just leave the facilities to connect the peripherals, then I have an Arduino development board.
So, when we talk about Arduino we are also talking about the use of microcontrollers because they have one integrated in the board.
Lo que vemos en la imagen anterior es una tarjeta de desarrollo Arduino UNO, Arduino es un producto dedicado a facilitar el desarrollo de proyectos electrónicos, para ello todos los recursos son de categoría software libre y existe una enorme comunidad usando estos productos por lo que es muy fácil encontrar en la web muchos de los códigos para programas que necesitamos.
Consideremos lo que hemos visto sobre microcontroladores PIC, se trata de un circuito integrado (un chip), para usar este chip necesitamos desarrollar un programa pero más importante adaptar este chip a un circuito que se encargará de las facilidades de hardware.
Se necesitaría seleccionar un resonador para la frecuencia de trabajo, algunos capacitores, resistencias para MCLR, un botón de reinicio y una fuente de voltaje que pueda suministrar los voltajes de trabajo adecuados, esto como lo más básico.
Luego tendríamos que desarrollar nuestra tarjeta electrónica así que necesitamos conocimientos para hacer la PCB y el circuito impreso final, luego hay que buscar quienes eran las entradas y salidas para hacer las conexiones y todo eso.
Son muchas cosas y se necesitan conocimientos avanzados para su implementación, digamos que quiero hacerlo tan fácil que cualquiera lo pueda usar incluso sin conocimientos en electrónica. Entonces integro todo lo mencionado en una tarjeta y solo dejo las facilidades para conectar los periféricos, entonces tengo una tarjeta de desarrollo Arduino.
Entonces, cuando hablamos de Arduino también estamos hablando del uso de microcontroladores porque estos llevan uno integrado en la tarjeta.
The board also includes the integrated circuit that will handle USB communications since the microcontroller on the Arduino does not handle USB communication directly.
La tarjeta también incluye el circuito integrado que se encargará de gestionar las comunicaciones por USB ya que el microcontrolador que lleva el Arduino no maneja la comunicación USB de forma directa.
The pins that can be used as discrete inputs or outputs are already defined and the board has the facilities to be connected even by a child, just know which ones you have chosen and connect.
Los pines que pueden ser usados como entradas o salidas discretas ya están definidos y la tarjeta tiene las facilidades para conectar incluso por un niño, solo debe saber cuales ha escogido y conectarse.
At the other end it has two similar sets of connections, these are for the analog inputs and power connections.
En el otro extremo tiene dos grupos de conexiones similares, estás son para las entradas analógicas y conexiones de energía.
On the same board are the electronic circuits that condition the voltage levels for the operation of the microcontroller and auxiliary circuits.
En la misma tarjeta se encuentran los circuitos electrónicos que acondicionan los niveles de voltaje para el funcionamiento del microcontrolador y circuitos auxiliares.
In addition, it also includes a USB connection through which the microcontroller can be programmed directly from the PC, i.e. no additional equipment is needed to program it.
Por si fuera poco también incluye la conexión USB mediante la cual se puede programar el microcontrolador directamente desde el PC, es decir, no se necesita un equipo adicional para programarlo.
But it does not end there, as an extra it has an ISCP port, through this port you can program the internal microcontroller or use the card as a programmer for an external microcontroller.
Pero no termina ahí, como extra tiene un puerto ISCP, mediante este puerto se puede programar el microcontrolador interno o usar la tarjeta como programador de algún microcontrolador externo.
So, it's a microcontroller on a board along with all the things we would normally need separately on a PIC microcontroller.
So easy that someone with no electronics knowledge can buy one, download some code from the internet and save it, connect the external devices and they have already developed a project.
It is used by users without knowledge as well as by professionals in electronics because of the ease it offers and the compatibility with most of the software for developing projects in electronics.
So now the initial question makes sense... Why do I use PIC microcontrollers that present more complications instead of an Arduino board with so many facilities?
The answer is in the first paragraphs. Whoever designed the Arduino board also started from a chip based design and had to do everything else, as my knowledge is advanced I prefer to develop my own electronic boards with my personal touch including only the components I need.
This is not to say that I can't use Arduino, in fact it's great for less advanced levels because you can do pretty much the same thing.
So Arduino is introduced to the blog today at the request of some students, just as I had announced earlier in the year, that I would include Arduino, Raspberry PI and now I'm getting excited about ESP32.
These are all development boards, you have to be clear about the difference between a development board and a microcontroller.
Entonces, es un microcontrolador en una tarjeta junto a todas las cosas que normalmente necesitaríamos por separado en un microcontrolador PIC.
Tan fácil que alguien sin conocimientos en electrónica puede comprar una, descargar un código de internet y grabarlo, conectar los dispositivos externos y ya ha desarrollado un proyecto.
Es usado por usuarios sin conocimientos como por profesionales en electrónica por la facilidad que ofrece y la compatibilidad con la mayoría de los softwares para desarrollo de proyectos en electrónica.
Así que ahora cobra sentido la pregunta inicial... ¿Por qué uso microcontroladores PIC que presentan mayores complicaciones en lugar de una tarjeta Arduino con tantas facilidades?
La respuesta está en los primeros párrafos. El que diseñó la tarjeta Arduino también partió del diseño basado en un chip y tuvo que hacer todo lo demás, como mis conocimientos son avanzados prefiero desarrollar mis propias tarjetas electrónicas con mi toque personal que incluya solo los componentes que necesito.
Esto no quiere decir que no pueda usar Arduino, de hecho es genial para los niveles menos avanzados porque se puede hacer prácticamente lo mismo.
Por eso Arduino se introduce hoy al blog a petición de algunos estudiantes, igual lo había anunciado a principios de año, que incluiría Arduino, Raspberry PI y ahora me estoy entusiasmando por ESP32. Todas estas son tarjetas de desarrollo, hay que tener claro la diferencia entre una tarjeta de desarrollo y un microcontrolador.
If you want to give an extra boost to the blog with a donation you can send it to the addresses:
Si quieres darle un impulso extra al blog con una donación puedes enviarla a las direcciones:
BEP-20: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
ERC-20: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
Arbitrum One: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
Polygon: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0
Avalanche: 0x5Aee5e3e3ED3203e77eF0d8Bb3E3a420E5229Ce0