El pinout de la placa muestra qué pines son responsables de qué. ¡El microcontrolador es tan versátil que la mayoría de los pines tienen más de una función!. Considere los pines e interfaces de la placa basada en el Arduino Nano, ya que otros modelos de Arduino tienen exactamente las mismas entradas / salidas / interfaces, pero solo en una cantidad diferente.
GPIO
Comencemos con los pines, de los cuales la mayoría son GPIO. General Pourpose Input Output, entradas y salidas de propósito general, están etiquetadas en la placa como D0 – D13 y A0 – A5. Según la imagen de los pines, se denominan PD *, PB * y PC *, (en lugar de un asterisco, un número) están marcados en beige oscuro. ¿Por qué se les llama “oficialmente” PD / PB / PC ? Debido a que los pines se combinan en puertos de varios pines (no más de 8), en el ejemplo del Nano hay tres puertos: D, B y C, respectivamente, los pines están marcados: PD3– Puerto D 3 – la tercera salida del puerto D. Estos son pines digitales capaces de producir una señal lógica (0 o VCC) y leer la misma señal lógica. VCC es el voltaje de suministro de alimentación del microcontrolador, lo normal de una placa Arduino convencional es de 5 voltios, respectivamente, esta es una lógica de 5 voltios: 0V – señal de nivel bajo ( LOW ), 5V – nivel alto ( HIGH ). La tensión de alimentación del microcontrolador juega un papel muy importante, de esto hablaremos más adelante. Los GPIO tienen varios modos de funcionamiento: entrada ( INPUT ), salida ( OUTPUT ) y una entrada con un pull-up a la fuente de alimentación con una resistencia de 20 kOhm incorporada en el Mc ( INPUT_PULLUP ). Hablaremos más sobre los modos en una lección separada.
Todos los pines GPIO en modo de entrada pueden aceptar una señal con un voltaje de 0 a 5 voltios (de hecho, hasta 5,5 voltios, según la hoja de datos del microcontrolador). Un voltaje negativo o un voltaje superior a 5,5 voltios provocará que el pin o incluso el propio MC falle. Un voltaje de 0-2.5 voltios se considera un nivel bajo ( BAJO ), 2.5, y 5.5 – un nivel alto ( ALTO ). Si el GPIO no está conectado en ningún lugar, es decir «en el aire sin conectar», adquiere un voltaje aleatorio que surge de las interferencias de la red y de ondas electromagnéticas a diferentes frecuencias que impregnan el mundo moderno.
Los GPIO en el modo de salida ( OUTPUT ) son salidas de transistor del microcontrolador y pueden generar una tensión de 0 o VCC (tensión de alimentación MC). Vale la pena señalar que el microcontrolador es un dispositivo lógico, no de potencia, sus salidas están diseñadas para enviar señales a otros componentes, y no para alimentarlos directamente. La corriente máxima que se puede absorber del GPIO de la salida arduino es 40 mA. Si intenta sacar más, el pin fallará (el transistor de salida se quemará y eso es todo). ¿Qué es 40 mA? Un LED típico de un solo color de 5 mm consume 20 mA, y esto es prácticamente lo único que se puede alimentar directamente desde el Arduino. Además, no se olvide de la corriente máxima de todos los pines, está limitada a 200 mA, es decir, no se pueden alimentar más de 10 LED desde la placa con el brillo total.
Interfaces.
La mayoría de los GPIO tienen capacidades adicionales, dado que los pines de otros sistemas de microcontroladores están conectados a ellos, ya está familiarizado con ellos en la lección anterior:
- ADC (ADC, convertidor analógico a digital) – marcas ADC verdes * en el pinout.
- UART (interfaz de comunicación): TXD y RXD azules en el pinout.
- Temporizadores, son los mismos pines PWM: violeta claro OC * A y OC Bed y * , donde * es el número del temporizador.
- SPI (interfaz de comunicación) – azul SS , MOSI , MISO , SCK.
- I2C (interfaz de comunicación) – azul SDA y SCL.
- INT (interrupciones de hardware) – rosa INT0 y INT1 , y PCInt * – PinChangeInterrupt.
ADC.
Los pines ADC (del ADC) están marcados en la placa con la letra A. Sí, los pines A6 y A7 en la placa Nano solo tienen una entrada al ADC y no son pines GPIO. ADC– convertidor de analógico a digital, le permite medir voltaje de 0 a VCC (voltaje de suministro MC) o voltaje de referencia. En la mayoría de las placas Arduino, la capacidad de ADC es de 10 bits (2 ^ 10 = 1024 valores de medición), lo que significa lo siguiente: el voltaje de 0 a la referencia se convierte a un valor digital de 0 a 1023 (1024-1 ya que el conteo comienza desde cero). El voltaje de referencia juega un papel muy importante: con una referencia de 5 V, un paso de medición de ADC será de 4.9 milivoltios (0.00488 V), y con una referencia de 1.1V de 1.1 mV (0.00107 V). El punto es eso, creo que se entiende la idea. Si el voltaje de referencia se establece por debajo del voltaje de suministro del Mc, luego digitalizando el voltaje por encima de la referencia obtenemos 1023. Al aplicar un voltaje por encima de 5.5 Voltios al ADC, obtenemos un puerto quemado. Tampoco se recomienda el suministro de voltaje negativo. Hay varios modos de referencia de voltaje en arduino: Aref, por lo que puede ajustar el rango deseado y obtener la precisión deseada. Otros modelos de Arduino (como Mega) también tienen otros modos integrados. Se recomienda conectar la tensión de referencia a la placa a través de una resistencia, por ejemplo, 1 kOhm (1.000 ohmios). Para medir voltajes superiores a 5,5 voltios, se debe utilizar un divisor de voltaje con resistencias.
Temporizadores (PWM).
Conclusiones del temporizador: en el microcontrolador, además del núcleo habitual con el que trabajamos, también existen contadores «hardware» que funcionan en paralelo con todo el resto del hardware. Estos contadores también se denominan temporizadores, aunque no tienen nada que ver con los temporizadores: los contadores cuentan literalmente el número de tics que hace el oscilador de cristal, lo que establece la frecuencia de funcionamiento de todo el sistema. Conociendo la frecuencia del generador (generalmente 16 MHz), puede determinar los intervalos de tiempo con una precisión muy alta y hacer algo sobre esta base. ¿Para qué sirven estos contadores? En Arduino IDE, tenemos varias herramientas listas para usar basadas en temporizador (funciones de tiempo, retrasos, mediciones de longitud de pulso, etc).
En este artículo, estamos hablando de pines y salidas, y hablaremos de ellos: cada contador tiene dos salidas GPIO. El nano ( el microcontrolador ATmega328p) tiene tres contadores, respectivamente 6 salidas. Una de las capacidades de los contadores es la generación de una señal PWM, que se envía a los GPIO correspondientes. Para nano, estos son los pines D5 y D6 (contador 0), 9 y 10 (temporizador 1) y 3 y 11 (temporizador 2). Una lección separada está dedicada a la señal PWM, ahora solo recuerde que puede usarse para controlar el brillo de los LED, la velocidad de rotación de los motores, la potencia de calentamiento de las bobinas y mucho más. Pero debe recordar que la limitación de corriente de 40 mA sigue presente y no se puede alimentar nada más potente que los LED desde los pines.
Interrupciones.
Las interrupciones de hardware permiten que el procesador cambie instantáneamente a un determinado bloque de acciones (función de manejo de interrupciones) cuando cambia el nivel de la señal en el pin. Hablaremos más sobre esto, así como sobre PinChangeInterrupts en otra lección.
Otros pines.
- El pin de 3.3V se puede usar para alimentar sensores y módulos de baja potencia: la corriente máxima que se puede absorber del pin de 3.3V es 150 mA, que es suficiente para cualquier sensor y módulo, excepto quizás los módulos de radio nrf25L01.
- Pin GND – suministro de tierra o masa GND.
- Pin 5V: alimentado desde una fuente con un voltaje de hasta 5.5V (para obtener más detalles sobre la alimentación, consulte la siguiente lección).
- Pin Vin: alimentado desde una fuente con un voltaje de 7-15 V (para obtener más detalles sobre la alimentación, consulte la siguiente lección).
- RST: reinicia el Mc. Además, este pin se lleva al pulsador.