La esencia y el propósito general de Arduino es desarrollar dispositivos electrónicos rápida y eficazmente. Arduino es un controlador universal sobre la base del cual puede hacer un dispositivo completo de propósito absolutamente arbitrario, desde útil (reloj de alarma, relé de tiempo con un montón de configuraciones y pantalla, automatización de invernadero, hogar inteligente…) a inútil, pero divertido o interesante (un ventilador, un coche controlado por radio con una pistola, un robot con muchas funciones, etc). Para lograr estos objetivos, varios dispositivos externos y sensores están conectados a Arduino, con los que puede interactuar.
Empecemos por el mundo digital, en el que los dispositivos se comunican entre sí mediante señales digitales, las llamadas lógicas, es decir, que tienen dos estados más simples: verdadero y falso, sí y no, 1 y 0. En la mayoría de los dispositivos digitales, estos dos estados se transmiten por voltaje 0 y 5 voltios, pero también hay 0 y 3.3 voltios. Por lo tanto, el microcontrolador puede esencialmente medir una señal digital (lo que se suministra al pin, 0 o 5 voltios), o emitir 0 y 5 voltios en su pin, respectivamente. La señal digital codificada se parece a esto: saltos de 0 y 5 (o 3,3) voltios con diferentes duraciones.
El conjunto de reglas y longitudes de las secciones de 5 y 0 voltios puede denominarse protocolo de comunicación, o interfaz, bus.
Pinout Arduino Nano.
- GPIO es el puerto de E / S básico. Puede leer y emitir señales digitales (solo 0 y 5 voltios).
- PWM: puede generar una señal PWM de hardware. (Anchura de pulso modulada).
- ANALÓGICO: pin de ADC, convertidor de analógico a digital. Puede medir voltaje variable.
- UART: pines UART de hardware para conectar módulos con la misma interfaz de comunicación serie.
- I2C: pines del bus I2C de hardware para conectar módulos con la misma interfaz.
- SPI: pines del bus SPI de hardware para conectar módulos con la misma interfaz.
Sensores digitales simples para Arduino.
Cualquier sensor que tenga un pin con una salida lógica puede atribuirse al tipo digital, es decir, el voltaje en este pin solo puede ser de 0 o 5 voltios, dependiendo de la lectura del sensor. Ejemplo, detector de movimiento por infrarrojos, un botón, un sensor de línea, el codificador, así como prácticamente todos los demás sensores con pines de alimentación y de salida marcados como DO, OUT o S.
Dichos módulos están conectados a cualquier pines GPIO.
Interfaces.
Algunos sensores tienen una salida digital, pero no solo dan 0 y 5 V, sino que transmiten datos a través de una interfaz de comunicación digital mediante su correspondiente protocolo. Los pines de la señal de dichos sensores pueden ser etiquetados como SCK, SDA, SCL, MISO, MOSI, SS y otras abreviaturas. Para trabajar con dichos sensores, asegúrese de consultar ejemplos o documentación. De hecho, cualquier sensor de este tipo se puede conectar a cualquier pin GPIO y emular mediante programación la interfaz de comunicación deseada, lo cual es difícil y le quitará tiempo extra al procesador. El Arduino Nano admite múltiples interfaces en hardware, lo que significa que puede trabajar con ellas de manera muy rápida y eficiente sin apenas programación.
UART.
UART: pines D0 ( RX ) y D1 ( TX ). La mayoría de las veces, los módulos Bluetooth, GPS y GSM están conectados a través de él. En general, solo se puede conectar un módulo. Los pines del módulo generalmente se denominan RX y TX. La conexión al módulo se realiza “a la inversa” – RX-> TX y TX-> RX, ya que RX recibe señales (Receptor) y TX – transmite (Transmisor) esto históricamente solía llamarse «null modem». Para conectar varios módulos UART o para operar simultáneamente un módulo y un “monitor de puerto”, se utiliza un software UART utilizando la biblioteca SoftwareSerial incorporada.
- RX < TX
- TX < RX
Bus I2C.
I2C: pines A4 ( SDA ) y A5 ( SCL ). Esta interfaz es un bus, es decir, se pueden conectar en paralelo varios dispositivos (hasta 128) con direcciones únicas.
Opciones de marcado y conexión a hardware I2C:
- A4 < SDA (D) – línea de datos, datos de serie en ambos sentidos.
- A5 < SCL (C, SCK) – línea de reloj de sincronización, serial CLock.
Transmisión SPI de Arduino.
SPI: pines D11 ( MOSI ), D12 ( MISO ) y D13 ( SCLK ), a veces se agrega D10 ( SS ). Esta interfaz también es un bus, con una alta velocidad, y admite la conexión de un número esencialmente ilimitado de módulos: el módulo tiene un pin CS (Chip Select), que es llevado por el microcontrolador a GND para seleccionar este módulo como un dispositivo para recibir y transmitir datos en ese momento. SPI es una interfaz muy común y simple, muy a menudo los sensores y módulos están conectados a cualquier pin GPIO y usan software para enviar y recibir datos a través de las funciones incorporadas shiftIn () y shiftOut (). Los sensores «complejos» y los sensores con un gran volumen y una alta tasa de transferencia de datos (tarjeta de memoria, módulo NFC) deben conectarse al bus SPI de hardware del microcontrolador.
Opciones de etiquetado y conexión a hardware SPI:
- D11 < MOSI (SDI, DI, DIN, SI) – línea de datos de Arduino al módulo
- D12 < MISO (SDO, DO, DON, SO) – línea de datos del módulo a Arduino
- D13 < SCLK (SCK, CLK, SPC) – línea de sincronización
- D10 < SS (SCK, CLK, SPC): se usa en los casos en que Arduino es un «sensor»
- GPIO < CS (SS, RCK): seleccione el módulo actual presionando este pin a GND
Señal analógica.
El segundo tipo de comunicación es analógica, solo funciona «para recepción». El microcontrolador puede medir la tensión que se le suministra al ADC (convertidor analógico a digital), el rango de medida está limitado hasta la tensión de referencia o la tensión de alimentación del microcontrolador, es decir, el máximo valor que el microcontrolador puede muestrear, sin componentes adicionales, es de 0 a 5 voltios, o de 0 a 3,3 voltios para los modelos de 3,3 voltios. Vamos a volver a esto más adelante.
Debido a la presencia de un ADC (lectura de una señal analógica), arduino puede leer las lecturas de cualquier sensor analógico: termistores, termopares, fotorresistores, potenciómetros, voltaje de derivación, etc. del mundo de la electrónica analógica. De hecho, puede conectar cualquier cosa sin habilidades especiales, cada posible deseo seguro tiene una biblioteca terminada.
Los módulos analógicos y los sensores están relacionados, la señal de la cual sale en forma de voltaje de 0 a 5 voltios, pero cambia «suave y linealmente» según las lecturas del sensor. Estos son, por ejemplo, un micrófono de audio, termistor, fotorresistor, sensor de humedad, potenciómetro, etc. Muchos medidores analógicos tienen pines etiquetados de la misma manera que los digitales. ¿Cómo distinguir un sensor digital de uno analógico? Ya sea de acuerdo con la descripción o mirando la documentación del sensor. Algunos módulos tienen una salida digital y analógica al mismo tiempo (sensores de sonido, líneas y algunos otros), sus pines suelen estar etiquetados como DO– salida digital y AO– salida analógica. Además, la salida analógica puede ser etiquetado como OUT o S.
Dichos módulos se conectan a cualquier pin ANALÓGICO.
Otros.
Además de estas interfaces populares, existen otras ( CAN, 1-wire y así sucesivamente), pero como tenemos el poder de un microcontrolador, podemos emular casi cualquier protocolo e interfaz de comunicación, el llamado software <nombre de interfaz> (softwareSerial, softwareI2C…) son bibliotecas que emulan dicho protocolo. Y aquí viene al rescate la comunidad arduino, que ya ha escrito bibliotecas para todo lo que es posible, y puede comunicarse fácilmente con casi cualquier pieza de hardware que admita cualquier protocolo de comunicación popular. En el mismo bus CAN, puede conectarse al cerebro de su automóvil y hacer cualquier cosa con él. Un montón de microcircuitos para varios propósitos se conectan a arduino sin ningún problema y le permiten controlarse a sí mismo. Todo tipo de amplificadores, controladores, registros de desplazamiento, DAC, ADC, multiplexores, resistencias digitales y cientos de otras piezas interesantes.
Resumiendo.
Como ya sabes hay muchos sensores, puedes medir todo lo medible. Electrónica: voltaje, corriente, resistencia, funcionamiento en CA, campos. Parámetros del microclima: temperatura, humedad, presión, contenido de gas, velocidad del viento, iluminación, lo que sea. También hay una gran cantidad de módulos interesantes: Bluetooth, comunicaciones celulares, GPS, pantallas de varios tipos y tamaños, detectores de presencia, tanto de infrarrojos como de microondas, módulos para comunicación inalámbrica de arduino y mucho más.
Puede controlar absolutamente cualquier pieza de hardware que realice su función simplemente cuando se aplica alimentación: una bombilla, tira de LED, calentador eléctrico, motor o cualquier accionamiento eléctrico, electroimán, empujador de solenoide, y todo esto con cualquier voltaje de suministro. Pero aquí hay que entender algo: Arduino (más precisamente, un microcontrolador) es un dispositivo lógico, es decir, de manera amistosa, solo debe dar comandos a otros dispositivos, o recibirlos de ellos. Pero el máximo suministro de energía es para un LED. Con este entendimiento, vamos más allá. Para que un arduino encienda o apague (suministre energía) a otro dispositivo, necesita un dispositivo intermediario, como un relé o transistor. Arduino controla el relé, y el relé, a su vez, enciende cualquier carga deseada con cualquier voltaje de suministro y todo eso, hablaremos más sobre esto por separado.
Como esencia de todo lo escrito anteriormente, las posibilidades de Arduino para conectar y controlar varias piezas de hardware son casi ilimitadas, puedes plasmar cualquier idea, incluso la más loca. Los sensores miden algo, los dispositivos ejecutivos controlan algo, al mismo tiempo, los datos se envían a algún lugar, algo se muestra en la pantalla y se controla mediante botones. ¡Maravilloso!