4- M贸dulos, sensores e Interfaces para Arduino.

La esencia y el prop贸sito general de Arduino es desarrollar dispositivos electr贸nicos r谩pida y eficazmente. Este 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 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 a la pata, 0 o 5 voltios), o emitir 0 y 5 voltios de su pata, respectivamente. La se帽al digital codificada se parece a esto: saltos de 0 y 5 (o 3,3) voltios con diferentes duraciones.

Fornas de se帽al Bus SPI
Fornas de se帽al Bus SPI

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.

Pinout del Arduino Nano.
Pinout del 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.
  • UART  : pines UART de hardware para conectar m贸dulos con la misma interfaz de comunicaci贸n.
  • 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. Este 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 .

Sensores digitales para arduino
Sensores digitales para arduino


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. 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.

Peque帽os sensores de protocolo
Peque帽os sensores de protocolo

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 鈥渁 la inversa鈥 – RX-> TX y TX-> RX, ya que RX recibe se帽ales (Receptor) y TX – transmite (Transmisor). Para conectar varios m贸dulos UART o para operar simult谩neamente un m贸dulo y un 鈥渕onitor 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
  • A5 < SCL  (C, SCK) – l铆nea de sincronizaci贸n, serial CLock

Bus i2c y arduino
Bus i2c y arduino

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 presionado 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
Bus Spi de los Arduino
Bus Spi de los Arduino

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 deseo 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 芦suavemente禄 seg煤n las lecturas del sensor. Estos son, por ejemplo, un micr贸fono, 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 芦escribiendo禄: 芦con茅ctese a un pin anal贸gico禄. 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  – anal贸gico. Adem谩s, la salida anal贸gica puede ser etiquetado como  OUT  o  S .

Dichos m贸dulos est谩n conectados a cualquier pin ANAL脫GICO.

Sensores anal贸gicos para arduino
Sensores anal贸gicos para arduino

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 …). 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.

Ahora, de hecho: hay muchos sensores, puedes medir todo lo que se mide. 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 energ铆a: 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. 隆Romance!

En mi directorio de enlaces a componentes de Arduino, puede encontrar casi todos los sensores, m贸dulos y otras trastos existentes para Arduino, y casi todo el mundo tiene un enlace a un art铆culo con un ejemplo y una biblioteca. 隆脷salo!


Deja un comentario