La placa controladora Arduino UNO R3

Este contenido es un complemento práctico para los contenidos teóricos de los temas 4. Fundamentos de Computación Física, 5. Internet de las Cosas y 6. Robótica, de la asignatura Computación y Robótica de 2º y 3º de ESO.

Tabla de contenidos

1. ¿Qué es Arduino?

Bueno, empecemos por el principio, ¿qué es Arduino?

En su definición oficial se dice que “Arduino es un entorno de prototipado basado en microcontroladores para el diseño y desarrollo de prototipos electrónicos”.

Pero, como seguro que no has entendido nada, vamos a verlo con más detenimiento.

Arduino es una combinación de hardware y software que permite a estudiantes como vosotros dar vida a vuestras ideas. Es una placa con un microcontrolador que se puede programar para realizar diversas tareas.

Imagina que queréis hacer que una luz parpadee o que un motor gire; Arduino puede hacerlo posible.

Lo que hace especial a Arduino es su simplicidad y accesibilidad. A diferencia de otros sistemas de microcontroladores, está diseñado para ser fácil de usar, incluso para aquellos que no tienen experiencia previa en electrónica o programación. Su entorno de desarrollo integrado (IDE) os permitirá escribir código en un lenguaje sencillo, parecido a C++, y cargarlo fácilmente en la placa para dar vida a vuestros proyectos.

En nuestras clases, utilizaremos Arduino para aprender conceptos fundamentales de programación y electrónica.

Por ejemplo, al controlar LEDs o motores, entenderéis cómo funciona la programación secuencial y cómo se interactúa con componentes electrónicos.

Este aprendizaje práctico os ayudará a comprender mejor la teoría que hay detrás de lo que estáis programando.

Además, Arduino es una herramienta fantástica para fomentar la creatividad y la resolución de problemas. Podréis trabajar en proyectos que van desde estaciones meteorológicas automatizadas hasta pequeños robots. Cada proyecto os desafiará a pensar de manera crítica y a aplicar lo que habéis aprendido para encontrar soluciones creativas.

Finalmente, la comunidad de Arduino es un recurso de incalculable valor. En internet, encontraréis innumerables proyectos, tutoriales y foros donde personas de todo el mundo comparten sus conocimientos y experiencias. De hecho, si buscas “comunidad arduino” en Google, obtienes casi 6 millones de resultados. 

Esto significa que, además de aprender en clase, tendréis acceso a una amplia gama de recursos para seguir explorando y aprendiendo por vuestra cuenta.

Como ves, Arduino no es solo una herramienta educativa; es una puerta hacia un mundo de creatividad y descubrimiento

2. Conceptos básicos de la placa

Existen muchas versiones de placas controladoras Arduino, estas son sólo algunas de ellas:

Si te interesa conocer sus diferencias y precios, aquí tienes los modelos más vendidos: UNO R3, UNO R4 WiFi, MEGA 2560 R3, NANO, DUE, MKR 1000 Wi-Fi.

Cada una de ellas ha sido fabricada con un propósito específico, que se escapa del currículo de este curso. Sin embargo, sí que debemos aprender cuáles son las partes principales de la placa con la que trabajaremos: el modelo UNO R3.

Además, cuando tengas algo de experiencia, verás que las partes fundamentales que vamos a ver se pueden encontrar en la mayoría de las placas y que son comunes también en otros tipos de controladores.

2.1. Esquema de componentes principales.

Para empezar, es importante comprender que Arduino es una plataforma diseñada para facilitar el aprendizaje y el desarrollo en electrónica y programación. Esta plataforma se centra en un microcontrolador y ofrece una serie de entradas y salidas que están listas para ser utilizadas. Además, se caracteriza por su facilidad para comunicarse con otros dispositivos. 

Espero que no te desanime la siguiente imagen, porque con el tiempo verás que casi siempre utilizamos los mismos componentes:

2.2. Una caja negra.

Vamos a empezar definiendo nuestro Arduino como una caja negra. Este término, comúnmente asociado con los sistemas de registro de los aviones, se refiere a algo cuya funcionalidad conocemos, pero cuyo funcionamiento interno no está a la vista. En el caso de Arduino, lo consideraremos una caja negra porque nos centraremos en sus entradas, el procesamiento que realiza y sus salidas, sin profundizar inicialmente en los detalles técnicos de cómo se lleva a cabo este procesamiento.

Piensa en cómo usas el móvil: seleccionas una foto y le das a subir a Instagram (entrada), aparece una barrita que te indica el progreso de la subida (proceso) y la imagen aparece publicada en tu feed (salida).

En ningún momento necesitas saber qué hace internamente la red social para que tu imagen consiga aparecer publicada, sin embargo ahí está ya para siempre. Así, como en este ejemplo, hay muchos sistemas a nuestro alrededor que siguen esta lógica de entrada, proceso y salida.

2.3. Señales de entrada y salida.

Ahora, apliquemos este concepto a Arduino. Las señales que entran y salen de Arduino pueden ser de dos tipos: digitales y analógicas

Las señales digitales tienen solo dos estados: encendido o apagado, alto o bajo, HIGH o LOW, representado por 5V o 0V. Esto es similar a una luz de una habitación que está encendida o apagada. Nuestro Arduino Uno, tiene 13 pines que pueden actuar como entradas o salidas digitales, lo que significa que pueden leer o entregar 5V o 0V. 

Cuando conectamos nuestro Arduino al ordenador a través del cable USB, debemos tener cuidado con los pines marcados como TX y RX. Estos pines están relacionados con la comunicación serie a través del puerto USB. Si los utilizamos para otras cosas mientras el Arduino está conectado al ordenador, podríamos experimentar comportamientos inesperados en nuestro proyecto. Es como si intentáramos hablar por teléfono mientras otra persona también está usando la misma línea para una llamada diferente; la comunicación no sería clara.

En cuanto a las entradas analógicas, estas nos permiten medir valores que varían con el tiempo, como las señales de audio. Aunque teóricamente estos valores pueden ser infinitos, en la práctica, las entradas analógicas de Arduino pueden medir voltajes entre 0V y 5V. Ya no tenemos o 5V o 0V, sino un valor comprendido entre 0 y 5V. Estos voltajes se traducen en valores digitales que la placa puede entender, que van desde 0 hasta 1023, lo que representa 1024 valores posibles.

Por ejemplo, una señal analógica de entrada de 2,5V (la mitad de 5V) será traducida a un valor digital de 512 (la mitad de 1024).

El modelo Arduino Uno, por ejemplo, tiene 6 entradas analógicas. Estas entradas están diseñadas para soportar tensiones de hasta 5V. Es importante no exceder este límite para evitar dañar la placa. 

Las entradas analógicas también pueden ser utilizadas como señales digitales, por ejemplo, en nuestra placa la entrada analógica A0 equivale al pin 14.

Hasta ahora, hemos hablado de entradas/salidas digitales y entradas analógicas. 

¿Qué ocurre con las salidas analógicas?

Es interesante indicar que, técnicamente, Arduino no proporciona salidas analógicas reales. Sin embargo, hay una técnica muy ingeniosa llamada modulación por ancho de pulso (PWM) que nos permite emular una salida analógica. Podéis identificar los pines que soportan PWM en la placa Arduino por una ~ al lado de números como el 3 y el 5.

¿Qué hace especial a la PWM? Esta técnica juega con el tiempo que una señal digital está en estado alto (1) o bajo (0), es decir, el ancho de los pulsos de la señal. Al variar este ancho, podemos simular una señal analógica a partir de una digital. Esto es especialmente útil, por ejemplo, para controlar la intensidad de un LED o la velocidad de un motor.

Para entenderlo mejor, imaginad que estáis ajustando el volumen de vuestra música. Con la PWM, en lugar de tener solo “volumen alto (+)” o “volumen bajo (-)”, podéis obtener niveles graduales de volumen, aunque en el fondo solo estéis encendiendo y apagando rápidamente la señal digital.

2.4. Alimentación.

Junto a las entradas analógicas, podemos localizar la zona de alimentación de la placa. El objetivo de estos conectores tiene una doble función:

  1. Alimentar de electricidad la placa controladora.
  2. Distribuir la alimentación desde la placa a algunos sensores o tareas de control.

En Arduino Uno, encontraréis salidas de 3.3V y 5V. Estas salidas pueden ser utilizadas para alimentar componentes externos que se integren en vuestros proyectos. Es importante recordar que debemos usar cualquier pin marcado como GND (tierra) como el polo negativo para esta alimentación. Esto es como asegurarnos de conectar correctamente el polo positivo y negativo de una batería en un dispositivo.

Además, nuestra placa tiene una entrada llamada Vin. Esta entrada nos permite alimentar la placa externamente con voltajes de hasta 12V. La placa funciona internamente con 5V, pero gracias a un regulador interno, puede manejar voltajes de entrada más altos. Sin embargo, debemos tener cuidado de no exceder este límite de 12V para evitar dañar la placa.
En cuanto a las formas convencionales de alimentar la placa, tenemos dos opciones principales:

  1. La primera es a través del puerto USB. Esta opción no solo alimenta la placa, sino que también nos permite conectarla a un ordenador para programarla, hacer pruebas y monitorear su funcionamiento. 
  1. La segunda opción es mediante un Jack de alimentación, comúnmente utilizado con baterías de 9V (por ese motivo nuestro kit incluye un porta pilas con 6 pilas de 1,5V = 9V). Este método es muy útil cuando queremos hacer funcionar nuestros proyectos de forma independiente, sin estar conectados a un ordenador.

2.5. Conectores ICSP.

En nuestras clases sobre Arduino, es importante conocer todos los aspectos de la placa para aprovechar al máximo sus capacidades. Por eso, es necesario que hablemos sobre las conexiones para comunicación ICSP (In-Circuit Serial Programming) presentes en la placa Arduino y su importancia tanto en la programación como en la comunicación de la misma.

La tarjeta Arduino cuenta con dos conexiones ICSP, que son puntos específicos para la comunicación serial dentro del circuito. Esta forma de comunicación es fundamental para programar ciertos aspectos de la placa.

El primer ICSP, ubicado cerca de las entradas analógicas, tiene un propósito muy específico: se utiliza para programar el Bootloader del microcontrolador de Arduino.

¿Qué es el Bootloader? Es un pequeño programa que gestiona el arranque de la placa. Este gestor de arranque es esencial porque interpreta los programas que cargamos en Arduino, facilita la recepción y envío de datos a través de los puertos y hace posible la comunicación USB. En resumen, el Bootloader es como el director de una orquesta, asegurándose de que todo funcione correctamente cuando encendemos nuestra placa Arduino.

El segundo ICSP, situado cerca del conector USB de la tarjeta, tiene una función diferente. Se utiliza para programar el microcontrolador que se encarga específicamente de la comunicación USB. Esto es crucial porque nos permite establecer y modificar cómo la placa Arduino comunica y recibe información a través del puerto USB, una función vital para muchos de nuestros proyectos.

2.6. Otros componentes importantes.

A lo largo de este documento hemos explorado los componentes más importantes para  programar la placa, pero hay otros tremendamente importantes que la hacen funcionar. Veamos algunos de ellos, antes de terminar este repaso.

Uno de los componentes que seguramente llamará vuestra atención es el cristal de cuarzo. Este oscilador de 16 MHz es muy importante porque determina la velocidad a la que se ejecutan los programas en Arduino. Podéis pensar en él como el metrónomo de un músico, marcando el ritmo al que se procesan las instrucciones.

El corazón de la placa Arduino es el microcontrolador ATmega328. Este es el cerebro detrás de toda la acción: ejecuta vuestros programas, lee las señales de entrada y envía comandos a otros dispositivos. La rapidez con la que realiza estas tareas está dictada por el cristal de cuarzo.

Además del ATmega328, hay otro microcontrolador importante en la placa Arduino, especialmente para aquellos de vosotros interesados en la comunicación USB. Este es el ATmega16u2, ubicado cerca del conector USB. Aunque no profundizaremos en detalles técnicos sobre este chip, es importante saber que facilita la comunicación entre el Arduino y vuestro ordenador a través del USB.

En resumen, estos componentes son fundamentales para entender cómo funciona Arduino y son la base para empezar a programar y crear vuestros propios proyectos. Con el tiempo y a medida que avancemos en vuestro aprendizaje, adquiriréis un conocimiento más profundo sobre cada uno de estos elementos. Por ahora, el objetivo es daros una visión general de estos componentes y su función, sin adentrarnos en una clase completa de electrónica digital.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *