Leer Primero

Como se utiliza este blog?

domingo, 11 de julio de 2021

Arduino UNO Rev3

Bienvenido a mi blog, hoy hablaremos un poco de la placa Arduino UNO Rev3 o también llamada Genuino Uno, Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores o desarrolladores, para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring) y el Software Arduino IDE (basado en Processing, una herramienta basada en Java). Recordemos que Arduino es un proyecto, un ecosistema y no solo un modelo concreto de placa, Arduino Uno Rev3 es una placa basada en el Microcontrolador ATmega328P de 8 bits. Es una de las placas más ampliamente utilizadas de la familia Arduino y una de las mejores documentadas.

Antes de iniciar quiero recordar que el nuevo Arduino IDE 2.0 esta ahora basado en el marco Eclipse Theia.

Theia se basa en el mismo código subyacente que el popular y ampliable "Visual Studio Code" de Microsoft, esto permite que Arduino avance a un editor más potente y moderno y ahora el DARK MODE o Modo Oscuro viene nativo.

Arduino Uno Rev3 a grandes rasgos cuenta con 14 pines de E/S digitales (6 pines se pueden usar como ~ PWM), 6 entradas analógicas, un resonador cerámico de 16MHz, una conexión USB, conector de alimentación, un cabezal ICSP y un botón de reinicio o reset.


La placa Arduino UNO Rev3 contiene:

1. Microcontrolador ATmega328P: En este caso el Microcontrolador o MCU Atmel ATmega328P tiene memoria flash programable de 32 KB, SRAM de 2 KB, EEPROM de 1 KB (ROM programable y borrable eléctricamente). El microcontrolador ATmega328P opera entre +1.8 y +5.5 voltios cc, trabaja a una frecuencia de 16 MHz, contiene 26 pines de entrada/salida en los que hay 23 líneas de E/S de uso general. La placa Arduino UNO Rev3 actualmente la podemos encontrar con el microcontrolador ATmega328 tanto en encapsulado DIP (dual in-line package) de 28 pines, como SMD - PQFP (Plastic Quad Flat Package) de 32 pines.

2. Puerto USB: Tiene un puerto USB Hembra Tipo B para la conexión. Aunque algunos técnicos opinan que es un conector demasiado voluminoso (grande) y ordinario, su punto fuerte es la robustez, ya que el conector micro USB por ejemplo, tiende con el tiempo, a levantarse y arrancarse de la tarjeta de tanto conectar y desconectar el cable y cuando es así, suele despegarse con todo y pistas, averiando la tarjeta permanentemente. El conector USB tiene principalmente 3 propósitos. El primero cargar nuestro programa ya compilado en la memoria flash del micro, el segundo conectarnos al puerto Serie (UART) predefinido en cada Arduino para comunicarnos durante la ejecución del programa y el tercero, alimentar de corriente a Arduino.

Pin 1 => Alimentación con un voltaje de +5VDC y máximo 500mA.

Pin 2 y 3 => Sirven para la transmisión de datos del BUS.

Pin 4 => GND, Masa o tierra.

3. Puerto de alimentación: el Arduino UNO Rev3 se puede alimentar con un adaptador de CA a CC, una batería, una power bank, etc. Se utiliza un enchufe de centro positivo de 5.5x2,1mm para alimentar la placa Arduino. El voltaje de alimentación de entrada recomendado es de +7 a +12 Vcc.


Según pruebas reales en laboratorio, se ha expuesto que Arduino UNO R3 consume unos ~46mA en reposo y por si mismo (es decir sin nada conectado). Así que con el diseño actual no se puede afirmar que esté modelo de placa sea eficiente energéticamente. Arduino UNO R3 original (hecho en Italia) con una fuente de alimentación externa de 9 VCC, tenemos que el regulador lineal de voltaje NCP1117 comienza a apagarse térmicamente con un consumo de corriente de poco más de 700mA, del mismo modo que a 12VCC, comienza a apagarse térmicamente con un consumo de corriente de poco más de 250mA. Sin embargo, tengamos en cuenta que en esta etapa la temperatura externa de este regulador de baja caída LDO es de alrededor de 95°C a 110°C, extremadamente caliente y capaz de reducir la vida útil de los componentes cercanos en la placa.

4. Chip de interfaz USB: El microcontrolador ATmega16U2, encontrado en las placas Arduino UNO Rev3 originales, pertenece a la compañía Microchip, utiliza una arquitectura AVR de 32 registros de 8 bits cada uno, este microcontrolador es de bajo consumo y cuenta con 16 KB de memoria flash, 512 bytes de memoria EEPROM y 512 bytes de memoria SRAM, también dispone de un oscilador interno para la sincronización de instrucciones, 22 pines de entradas y salidas, una interface UART, 2 de SPI y 5 pines PWM. En la placa electrónica Arduino UNO Rev3, tenemos un chip ATmega16U2 programado con el firmware necesario para la transmisión de información con el protocolo USB, de esta manera cuando nos conectamos a través del puerto USB de nuestro ordenador a la placa Arduino, el encargado de comunicarse, situándose como intermediario entre el ordenador y el ATmega328P, es el microcontrolador ATmega16U2.


5. Pines de E/S digitales: En la placa Arduino UNO Rev3 contamos con 14 pines de E/S digitales numerados del pin D0 al pin D13 estos pines se pueden utilizar como entradas o salidas mediante las funciones pinMode (), digitalWrite () y digitalRead () y tienen una resistencia pull-up interna (desconectada por defecto) de 20-50 kOhms, de igual forma de estos 14 pines, los pines número 3, 5, 6, 9, 10 y 11 son pines ~ PWM de 8 bits con la función analogWrite () (modulación de ancho de pulso). Los pines PWM simulan la salida de hardware analógico mientras que otros pines simulan la salida analógica de software. Estos 6 pines PWM encuentran aplicaciones en las que necesitamos regular algo, por ejemplo la velocidad de un motor DC o el brillo de una lámpara. Algunos de estos pines de entrada/salida digitales también pueden servir como interfaz SPI (interfaz periférica en serie) desarrollada por Motorola, recordemos que a diferencia de I2C, en SPI solo puede existir un dispositivo maestro y no existe límite para el número de esclavos. En los pines Rx (D0) Tx (D1), tenemos el puerto serial UART, que se utiliza para recibir y transmitir datos en serie TTL, estos pines están conectados a los pines correspondientes del micro ATmega16U2 y en los pines D2 y D3 tenemos las interrupciones externas, estos pines se pueden configurar para activar una interrupción en un valor bajo, un flanco ascendente o descendente o un cambio de valor. Consulte la función attachInterrupt () para obtener más detalles. Trabajan a máximo 40mA.

6. Pines de entrada analógica: Hay un total de 6 pines analógicos en la placa Arduino UNO Rev3 cada uno de las cuales proporciona 10 bits de resolución (es decir, 1024 valores diferentes). Por defecto miden desde tierra hasta 5 voltios, aunque es posible cambiar el extremo superior de su rango usando la función analogReference(). Los 6 pines de entrada analógica numerados del pin A0 al pin A5 toman la señal de los sensores analógicos y la convierten en un valor digital. Los pines miden el voltaje, no la corriente porque tienen un valor muy alto de resistencia interna. Entonces, el valor de la corriente es mucho menor en comparación con el voltaje, además los 6 pines indicados como entradas analógicas (A0-A5), también pueden ser configurados como entradas o salidas digitales. Resaltar que en los pines A4 (SDA) y A5 (SCL) tenemos el protocolo I2C (TWI), el software Arduino incluye una biblioteca <Wire> para simplificar el uso del bus I2C.

7. Pines de potencia

  • Vin: Es el voltaje de entrada a la placa Arduino/Genuino cuando se está usando una fuente de alimentación externa, recomendable alimentarlo con +7 a +12 Vcc. Se debe tener precaución ya que la entrada de voltaje por este pin no está protegida por el diodo ante inversión de polaridad, la conexión va directamente a la entrada del regulador NCP1117. Si se esta alimentando al Arduino por el jack, por este pin Vin también saldrá dicho voltaje suministrado.
  • 5V: este pin emite 5V regulados desde el regulador NCP1117 en la placa.
  • 3V3: este pin genera una fuente de alimentación regulada de 3.3 voltios generada por el regulador LP2985-33 integrado. El consumo máximo de corriente de este pin es de 50mA.
  • GND: Pines de tierra o masa.
  • AREF: Este es la referencia de voltaje del conversor Análogo/Digital (ADC) del micro, de 10 bits, este ADC convierte los voltajes entrantes entre 0V y 5V a valores enteros entre 0 y 1023. Esto da como resultado una resolución de aproximadamente 4.8mV. AREF se puede usar en lugar de la referencia estándar de 5V para el extremo superior del espectro analógico; por ejemplo, si desea usar el ADC para monitorear una señal que tenía un rango de 0 a 1.5 voltios, podría obtener la escala completa del ADC conectando AREF a una señal de 1.5V. ¡OJO NO CONECTE UNA SEÑAL FUERA DE LA GAMA 0V A 5V O FREIRA EL MICROCONTROLADOR! Tenga en cuenta que para que esto funcione, debe ejecutar analogReference(EXTERNAL); antes de usar analogRead(). También, después de cambiar la referencia analógica, las primeras lecturas de analogRead() pueden no ser precisas. Para obtener más información, consulte gratis aquí la Referencia analógica.
  • IOREF: este pin en la placa Arduino/Genuino proporciona la referencia de voltaje con la que opera el microcontrolador, es un voltaje correspondiente a la E/S de esa placa, por ejemplo, Arduino UNO suministrara 5v por este pin.

8. Regulador de voltaje 5V: el trabajo principal del regulador lineal de voltaje NCP1117 es regular el voltaje de entrada y salida de la placa Arduino Uno Rev3. Regula el voltaje para el pin de 5V, se debe considerar que si el voltaje de alimentación del puerto es superior a 12 V (como vimos anteriormente), el regulador de voltaje puede sobrecalentarse y dañar la placa.

9. Botón de reinicio maestro: Este botón es útil para resetear la placa Arduino UNO Rev3 y reiniciar el programa desde el origen. Es útil cuando el programador quiere ejecutar el programa desde el punto de partida. Al presionar el botón de reset, envía el pulso lógico al pin de reset del microcontrolador ATmega328P, cuando se resetea la placa, se está reseteando el procesador principal ATmega328P, sin cerrar la conexión USB, que es mantenida por el chip ATmega16U2 si es un Arduino UNO Rev3 Original, o el CH340G si es un Arduino UNO Rev3 genérico o clon.

10. Pines de encabezado de ICSP ATmega16U2: ICSP es In-Circuit Serial Programming. En este caso concreto se utiliza para programar el Microcontrolador ATmega16U2 con el firmware necesario para la transmisión de información con el protocolo USB.

11. Leds Rx/Tx: los Leds Rx y Tx de la placa parpadearán cuando los datos se transmitan a través del chip USB a serie ATmega16U2 y la conexión USB a la computadora.

12. Pines de encabezado de ICSP ATmega328P: ICSP es In-Circuit Serial Programming. En este caso concreto se utiliza para programar el Microcontrolador ATmega328P con el bootloader necesario para trabajar en el IDE de Arduino. También se pueden pasar sketch's por estos pines.

13. Fusible: Fusible de restablecimiento PTC, corriente de retención 500mA, corriente de disparo 1A y resistencia inicial máxima 1 ohm. Para Arduino se mandan hacer de ese color especifico, en las placas más nuevas este fusible lleva ahora el símbolo de "infinito" ∞.

14. Diodo de Prevención de Reflujo: diodo DO-214AC 1kV 1A.

15. Regulador de voltaje 3.3V: regulador LP2985-33 de baja deserción SOT-23-5 regula el voltaje para el pin de +3.3V por el cual se maneja máximo 50mA.

16. Mosfet pch: Mosfet de canal P SOT-23 de 2A 1.5V un Mosfet es un transistor cuyo funcionamiento no se basa en uniones PN, como el transistor bipolar, sino que está basado en la estructura MOS, la placa Arduino UNO Rev3 puede ser alimentada por el puerto USB o por el jack DC de corriente y este mosfet es el que switchea y elige automáticamente una sola de las fuentes de alimentación (en caso de que las 2 estén presentes a la vez).

17. Varistor para la Linea de Datos USB: Varistor de 5.5V en la placa Arduino UNO Rev3, es el encargado de proteger los dispositivos USB de la electricidad estática.

18.  Oscilador de Cristal del ATmega16U2: circuito de oscilación de 16 MHz para el ATmega16U2.

19. Resonador Cerámico: Es un dispositivo que en su interior posee el cristal de 16MHz (CSTCE16M0V53-R0) y la capacitancia necesaria para el circuito de oscilación del ATmega328P, por esta razón posee 3 pines de SMD (2 para el oscilador y tierra para la capacitancia). Los resonadores cerámicos están construidos con cerámica piezoeléctrica de alta estabilidad. Con capacitancia de carga incorporada, estos resonadores cerámicos SMD eliminan la necesidad de capacitores de carga externos.

20. LED de encendido: El Led de encendido de la placa indica que la alimentación suministrada a la placa esta presente. Dicho led por lo general siempre es verde.


Programación

1. El Arduino UNO Rev3 se puede programar con la descarga del software Arduino IDE.

El ATmega328P en el Arduino UNO Rev3 viene pregrabado con un cargador de arranque (bootloader) y es básicamente un archivo ".hex" que se ejecuta cuando se energiza la placa. Es similar al BIOS/UEFI que se ejecuta en una PC al inicializarse. El bootloader de Arduino está programado en la memoria flash del ATMega328P y ocupa 0,5 KB de los 32KB disponibles. El bootloader se comunica usando el protocolo STK500 original. El bootloader de Arduino es, esencialmente, el bootloader STK500 versión 2 de Atmel.

2. Otra forma de programar tu Arduino UNO Rev3 es compilar el código por separado usando el compilador AVR-GCC para generar el archivo ejecutable y luego usar Avr-ObjCopy para convertirlo en un archivo .HEX finalmente, Avrdude se usa para cargar el archivo hexadecimal en el tablero.

AVRDUDE es un acrónimo de AVR Downloader/UploaDEr. Es un software de código abierto que se utiliza para programar microcontroladores AVR de atmel (ahora microchip). También puede usarlo para programar EEPROM's, memorias Flash e incluso fusibles y bits de bloqueo. ademas al instalar AVRDUDESS éste no toca la variable %PATH%, por lo que no causará ningún problema con el IDE de Arduino.



Correspondencia entre los pines del ATmega328P y la placa Arduino UNO R3


También contamos con el "Interactive Board Viewer" del Arduino UNO Rev3 donde podemos ver la vista del esquemático original, la vista PCB y el visor 3D de la placa (cortesía: Altium 365 Viewer):
 
 


Dimensiones Reales de la Arduino UNO Rev3 en mm




Que diferencia hay entre el ATmega328P-PU del Arduino UNO y el ATmega328P-AU del Arduino NANO?

Obviamente aparte de la diferencia física del encapsulado tipo DIP (ATmega328P-PU) y PQFP (ATmega328P-AU), esta la diferencia en el numero de pines. El ATmega328P-PU tiene 28 pines y el ATmega328P-AU (SMD) tiene 32 pines, este ultimo cuenta aparte de las mismas funciones del ATmega328P-PU con 4 pines extras los cuales son otro Vcc, otro GND, A6 y A7, por esta razón en el Arduino NANO contamos en las entradas analógicas con A6 y A7 por estos pines extras que ofrece el ATmega328P-AU.


Tengamos en cuenta que esta ya es una placa muy básica, hoy en día ya tenemos microcontroladores de 32 bits, que funcionan a mucha más velocidad y soportan muchos más periféricos, hay placas como la TTGO T-CALL donde se incluye wifi, bluetooth y conectividad GSM, todo en una sola placa, además ya es muy normal agregar a la misma placa sensores de movimiento de varios ejes, coprocesadores criptográficos y muchas cosas más, así que como ves, ya este modelo de Arduino UNO R3 se puede considerar "muy modesto".


Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.





También te puede interesar:


No hay comentarios.:

Publicar un comentario