Archivo de la etiqueta: Aplicaciones Arduino

Qué es Arduino

Arduino es un dispositivo programable como es un ordenador, un móvil, un tablet o un PLC, es decir, se puede cambiar el comportamiento o la funcionalidad del dispositivo mediante unas órdenes en un lenguaje concreto que es capaz de ser interpretado por el dispositivo y seguir esas órdenes con el fin de realizar una tarea automática o resolver un problema.

En el caso de los ordenadores, móviles o tablets, la entrada de los datos y la interacción con las personas es a través del teclado, ratón, pantalla táctil o incluso la posición GPS o la inclinación del móvil y la salida de los resultados o visualización por las personas es a través de la pantalla. Sin embargo un PLC/Autómata o un Arduino, la interacción con el humano o con el entorno no está tan limitada como en el caso de un Ordenador o un tablet, los interfaces de comunicación (entrada/salida) son ilimitados y consisten en ciertos componentes hardware (transductores) que convierten los cambios de energía producidos por las alteraciones en el medio físico, en señales eléctricas entendibles por las máquinas. Por lo tanto las entradas a estos dispositivos son los sensores y las salidas son los actuadores que convierten las señales eléctricas en magnitudes físicas.

Arduino es un dispositivo programable que nos permite interactuar con el entorno, pudiendo leer la temperatura de una sala, el deslizamiento de una rueda o el ángulo de inclinación de una plataforma y escribir/actuar sobre el encendido de una caldera, los frenos del coche o un motor para nivelar una plataforma.

La computación física se refiere al diseño de objetos y espacios que reaccionan a cambios en el entorno y actúan en este. Se basa en la construcción de dispositivos que incluyen microcontroladores, sensores y actuadores y que pueden tener capacidades de comunicación con la red u otros dispositivos.

Arduino es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares.

Hardware Libre: http://es.wikipedia.org/wiki/Hardware_libre

Arduino es una plataforma abierta que facilita la programación de un microcontrolador. Los microcontroladores nos rodean en nuestra vida diaria, usan los sensores para escuchar el mundo físico y los actuadores para interactuar con el mundo físico. Los microcontroladores leen sobre los sensores y escriben sobre los actuadores.

En palabras de David Cuartielles: “Actualmente todo lo que nos rodea en la vida es digital (entendido como hacer operaciones matemáticas complejas y comunicar con otros dispositivos), cualquier cosa lleva un microchip, desde el microondas a un coche. Arduino lleva uno de esos microchips y te permite aprender a manejar como funciona el mundo en el que vivimos hoy en día y cómo interactúa el hombre con el mundo digital. Arduino es la puerta hacia tomar control de cómo funcionan las cosas actualmente y en el futuro. Así que encender el ordenador y empezar a programar.

Arduino no solo proporciona las placas (Hardware), sino que nos proporciona un software consistente en un entorno de desarrollo (IDE), un lenguaje de programación simplificado para el HW y el bootloader ejecutado en la placa. La principal característica del software (IDE) y del lenguaje de programación es su sencillez y facilidad de uso.

Arduino promete ser una forma sencilla de realizar proyectos interactivos para cualquier persona. Para alguien que quiere hacer un proyecto, el proceso pasa por descargarnos e instalar el IDE buscar un poco por internet y simplemente hacer “corta y pega” del código que nos interese y cargarlo en nuestro HW. Luego hacer los cableados correspondientes con los periféricos y ya tenemos interaccionando el software con el Hardware. Todo ello con una inversión económica mínima: el coste del Arduino y los periféricos.

Arduino es una tecnología que tiene una rápida curva de aprendizaje con básicos conocimientos de programación y electrónica, que permite desarrollar proyectos en el ámbito de las Smart Cities, el Internet de las cosas, dispositivos wearables, salud, ocio, educación, robótica, etc…

Definición de Arduino en la web oficial: https://www.arduino.cc/en/Guide/Introduction

Otras definiciones de Arduino:

Que es arduino en un minuto (video): http://learn.onemonth.com/what-is-arduino

Hay otro factor importante en el éxito de Arduino, es la comunidad que apoya todo este desarrollo, comparte conocimiento, elabora librerías para facilitar el uso de Arduino y publica sus proyectos para que puedan ser replicados, mejorados o ser base para otro proyecto relacionado.

En resumen:

Arduino = HW + SW + Comunidad

¿Para qué sirve Arduino?

Arduino se puede utilizar para desarrollar elementos autónomos, conectándose a dispositivos e interactuar tanto con el hardware como con el software. Nos sirve tanto para controlar un elemento, pongamos por ejemplo un motor que nos suba o baje una persiana basada en la luz existente es una habitación, gracias a un sensor de luz conectado al Arduino, o bien para leer la información de una fuente, como puede ser un teclado, y convertir la información en una acción como puede ser encender una luz o mostrar por un display lo tecleado.

Con Arduino  es posible automatizar cualquier cosa para hacer agentes autónomos (si queréis llamarles Robots también). Controlar luces y dispositivos, o cualquier otra cosa que se pueda imaginar, es posible optar por una solución basada en Arduino. Especialmente en desarrollos de dispositivos conectados a Internet, Arduino es una solución muy buena.

Aplicaciones de Arduino

¿Qué puede hacer Arduino? https://aprendiendoarduino.wordpress.com/2016/06/26/que-puede-hacer-arduino/

¿Entornos de aplicación de Arduino? https://aprendiendoarduino.wordpress.com/2016/06/26/entornos-de-aplicacion-arduino/

Una de las aplicaciones más conocidas de Arduino es la educación https://aprendiendoarduino.wordpress.com/2018/05/06/arduino-en-la-educacion/ y en el aprendizaje de las nuevas tecnologías. La Aertic http://aertic.es/en/home/ promueve las vocaciones tecnológicas en edades tempranas con el “ArduKit”: https://cepymenews.es/aertic-lanza-iniciativa-ardukit-proyecto-promueve-vocaciones-tecnologicas-edades-tempranas/

Arduino tiene múltiples aplicaciones, pero podemos ver dos ejemplos opuestos para darnos cuenta del amplio rango de aplicaciones que podemos cubrir con Arduino. Además en ambos casos, la programación es diferente, en el primero se usa programación por bloques basado en mBlock/Scratch www.mblock.cc y en el segundo programado en C++ o incluso con herramientas industriales: https://www.industrialshields.com/software-to-program-industrial-shields-products

Robot Minisumo:

Vídeo: https://youtu.be/xh1eUzSPBac

Smart Monitoring, ejemplo de http://www.geezar.es/monitorizacion-e-innovacion/

Anuncios

Aplicaciones de Arduino

Existen multitud de entornos de aplicación de Arduino: automatización industrial, domótica, herramienta de prototipado, plataforma de entrenamiento para aprendizaje de electrónica, tecnología para artistas, eficiencia energética, monitorización, adquisición de datos, DIY, aprendizaje de habilidades tecnológicas y programación, etc…

En la educación tanto en institutos en secundaria y bachillerato como en formación profesional y la universidad, Arduino ha entrado con mucha fuerza para entrenar habilidades y como herramienta pedagógica.

Que se puede hacer con Arduino: https://aprendiendoarduino.wordpress.com/2016/06/26/que-puede-hacer-arduino/

Algunos ejemplo de aplicaciones de Arduino:

Arduino en la Industria

Arduino cada vez se está implantando más y más en la industria y no solo como una herramienta de prototipado, sino que los sistemas de control (autómatas) se están abriendo cada vez más. Algunos ejemplos de uso de Arduino:

Prototipo de zapatillas John Luck ciclismo con medida de potencia  con Arduino:

HW Usado:

Empresas que usan Arduino para I+D:

Arsys:

  • Monitorización en Tiempo real
  • Avisos precoces
  • Control remoto de instalaciones
  • Eficiencia energética
  • Automatización de procesos
  • Automatización de informes/Cuadros de mando
  • Mantenimientos Predictivos
  • PRL

Arduino nos permite recoger y almacenar millones de datos de todo tipo: temperatura, humedad, consumos eléctricos, presión, velocidad de ventiladores, condiciones de maquinaria, alarmas externas, etc… y es posible analizarlos de una forma visual, correlar eventos, buscar patrones o relaciones, etc… puesto que todas estas variable interactúan unas con otras.

Google usa los datos ambientales, de consumo eléctrico, etc… para conseguir unos data center más eficiente mediante el uso de redes neuronales. Se calcula el PUE (Power usage effectiveness) cada 30 segundos, se hace seguimiento constante de una serie de variables y han construido unos modelos capaces de predecir y mejorar la eficiencia del data center.

Más información:

Además el uso extensivo de data mining en los data centers va a cambiar la estructura de los data centers con el uso de FPGAs, GPUs y superordenadores más optimizados para tareas de dataminig que un servidor actual: http://datacenterfrontier.com/machine-learning-changing-the-data-center/

Tema 5 – Taller de Proyectos con Arduino

A continuación se dan las soluciones a los proyectos propuestos.

Proyecto 1 – Estación meteorológica.

Enunciado

Estación meteorológica con una sonda de temperatura y pantalla LCD. Hacer que actualice continuamente la temperatura y la muestre por pantalla. Poner un botón que al pulsarlo la primera vez muestre por pantalla la máxima temperatura leída, al volver a pulsarlo muestre la temperatura mínima leída y al volver a pulsarlo muestre la temperatura actual. Para resetear los valores máximo y mínimo, pulsar durante 5 segundos el botón y muestre por pantalla “valores reseteados”.

Versión mejorada: Con el shield de ethernet conectarse a internet y mediante la API de http://openweathermap.org/ y obtener los datos de humedad y presion y mostrarlos por pantalla. Actualizar estos datos cada hora. También se pueden obtener los datos de la API de AEMET.

Información o referencias usadas

Esquema de conexión

Diagrama de flujo

Proyecto1-Diagrama Flujo

Solución

Proyecto 2 – Arranque y parada de motor DC controlado.

Enunciado

Basándose en los ejercicios 9 y 10 del libro del Arduino Starter Kit, añadir una rampa de arranque y otra de parada cuando se detecte el encendido y apagado. También añadir una rampa de parada y arranque cuando se detecte un cambio de sentido. Añadir un botón de parada de emergencia, que al pulsarlo, se pare el motor inmediatamente.

Información o referencias usadas

Ejemplo básico: http://diymakers.es/control-velocidad-y-sentido-de-motor-dc/

Esquema de conexión

Diagrama de flujo

Proyecto_2-Motor_DC_Controlado
Solución

Proyecto  3 – Juego de Sogatira

Enunciado

Hacer un juego con 7 leds y dos botones. El led central se ilumina y en función de quien más veces pulsa el botón el led encendido se va desplazando hacia él, hasta que gana cuando ha llegado al último led. En el inicio el led central parpadea y comienza el juego cuando se queda fijo, cada vez que se gana una posición el led parpadea y cuando gana el led final se queda parpadeando en un bucle infinito hasta que reseteo el Arduino para volver a jugar.

Información o referencias usadas

Ejemplo simulado: http://123d.circuits.io/circuits/463198-juego-sogatira

Esquema de conexión

sogatira

Diagrama de flujo

Proyecto_3-Juego_Sogatira

Solución

Proyecto 4 – Simon

Enunciado

Hacer el juego de Simon con Arduino

Información o referencias usadas

Juego Simón: http://es.wikipedia.org/wiki/Simon_%28juego%29

Varios ejemplos:

Esquema de conexión

Diagrama de flujo

Proyecto_4-Simon

Solución

Proyecto 5 – Gráfica de datos de temperatura en plot.ly

Enunciado

Recoger datos de temperatura cada 5 segundos y mandarlos a la web de plot.ly para que nos los imprima en tiempo real. Será necesario conectarse a Internet y usar el Ethernet Shield.

Información o referencias usadas

API Arduino para Plot.ly: https://github.com/plotly/arduino-api

Información: http://makezine.com/2014/01/21/streaming-data-with-plotly/

Ejemplo: https://plot.ly/arduino/dht22-temperature-tutorial/

Otro ejemplo: https://plot.ly/arduino/tmp36-temperature-tutorial/

Esquema de conexión

Solución

 

Proyecto 6 – Gráfica de datos potenciómetro con Processing

Enunciado

Enviar los datos de voltaje leídos a través de un potenciómetro a nuestro ordenador mediante el puerto serie e imprimirlos en una gráfica mediante processing.
AVANZADO: Encender un Led al ejecutar una determinada acción sobre un programa en Processing.
En lugar de processing se puede hacer con otros lenguajes como Python o .Net para hacer los dos ejemplos anteriores.

Información o referencias usadas

Comunicar Arduino y Processing: http://playground.arduino.cc/interfacing/processing

Ejemplo: http://arduino.cc/en/Tutorial/Graph

Ejemplo Led: http://arduino.cc/en/Tutorial/PhysicalPixel

Esquema de conexión

Solución

Proyecto 8 – Comunicar dos Arduinos mediante I2C

Enunciado

Comunicar dos Arduinos para que se manden información vía I2C. Configurar uno como master para que todo lo que recoja por el puerto serie lo mande al bus I2C y el slave lo recoja y lo muestre por pantalla.

Información o referencias usadas

I2C: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-4/

Ejemplo1: http://arduino.cc/en/Tutorial/MasterReader

Ejemplo2: http://arduino.cc/en/Tutorial/MasterWriter

Otro ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio33-I2C

Esquema de conexión

Solución

Proyecto 9 – Servidor Web embebido

Enunciado

Hacer una sencilla web embebida en Arduino usando el ethernet shield. La web estará en una tarjeta SD dentro de un fichero llamada index.html.

Información o referencias usadas

Librería Ethernet: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-2/

Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/blob/master/Ejercicio30-SD/Ejercicio30-SD.ino

Ejemplo: http://arduino.cc/en/pmwiki.php?n=Tutorial/WebServer

Tutorial: http://www.academia.edu/7510788/Embedded_Web_Server_using_Arduino_Ethernet_Shield

Otro tutorial: http://blog.startingelectronics.com/arduino-web-server-tutorial/

Diagrama de flujo

Solución

Proyecto 10 – Grabar datos de temperatura en una Raspberry Pi

Enunciado

Datalogger de los datos de temperatura leídos en una Raspberry Pi. Con una RPi que tenga un servidor LAMP instalado, grabar en una tabla de una BBDD MySQL los datos de temperatura que mande Arduino cada 5 segundos.

Información o referencias usadas

Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio32-EnviaDatos

Solución

Y aquí no acaba el curso…

Recordad que el curso sigue en:

https://aprendiendoarduino.wordpress.com/

Y también en las redes sociales:

Y todas las novedades sobre Arduino, futuros eventos, cursos, etc… mediante correo electrónico.

Proyectos final de curso

Como final de curso, se propone realizar varios proyectos individualmente o en grupo que se presentarán el viernes 17 de abril.

El horario del taller del día 17 de abril, será de 17.30 a 21.30. Durante las 4 horas de taller se montarán los proyectos y se presentarán. También se resolverán todas las dudas que hayan surgido y se explicará el código.

Al finalizar el taller se entregará el material y se comprobará que está todo en perfecto estado y se firmará el documento de devolución de material.

Desde la finalización del curso hasta la realización del taller, se podrá consultar cualquier duda que surja sobre la realización de los proyectos. El método preferido será a través de la comunidad de google+ https://plus.google.com/communities/104107521992758374331, pero también por twitter o por correo electrónico.

Medios de contacto: https://aprendiendoarduino.wordpress.com/acerca-de/

Proyectos

  • Proyecto 1 – Estación meteorológica. Hacer una estación meteorológica con una sonda de temperatura y la pantalla LCD. Hacer que lea continuamente la temperatura y la muestre por pantalla. Poner un botón que al pulsarlo la primera vez muestre por pantalla la máxima temperatura leída, al volver a pulsarlo muestre la temperatura mínima leída y al volver a pulsarlo muestre la temperatura actual. Para resetear los valores máximo y mínimo, pulsar durante 5 segundos el botón y muestre por pantalla “valores reseteados”.
    Avanzado: Con el shield de ethernet conectarse a internet y mediante la API de http://openweathermap.org/ y obtener los datos de humedad y presion y mostrarlos por pantalla. Actualizar estos datos cada hora. También se pueden obtener los datos de la API de AEMET.

Información adicional:

API: http://openweathermap.org/API

WebClient: http://arduino.cc/en/Tutorial/WebClient

Como usar la librería Ethernet: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-2/

JSON Parser: https://github.com/bblanchon/ArduinoJson

Datos para Logroño de http://openweathermap.org/

Datos para Logroño AEMET: http://www.aemet.es/xml/municipios/localidad_26089.xml

  • Proyecto 2 – Arranque y parada de motor DC controlado. Basándose en los ejercicios 9 y 10 del libro del Arduino Starter Kit, añadir una rampa de arranque y otra de parada cuando se detecte el encendido y apagado. También añadir una rampa de parada y arranque cuando se detecte un cambio de sentido. Añadir un botón de parada de emergencia, que al pulsarlo, se pare el motor inmediatamente.

Información adicional: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio21-MotorDC

  • Proyecto 3 – Juego de Sogatira. Hacer un juego con 7 leds y dos botones. El led central se ilumina y en función de quien más veces pulsa el botón el led encendido se va desplazando hacia él, hasta que gana cuando ha llegado al último led. En el inicio el led central parpadea y comienza el juego cuando se queda fijo, cada vez que se gana una posición el led parpadea y cuando gana el led final se queda parpadeando en un bucle infinito hasta que reseteo el Arduino para volver a jugar.

Información adicional:

Ejemplo: http://123d.circuits.io/circuits/463198-juego-sogatira

Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio13-sogatira


sogatira

  • Proyecto 4 – Simon. Hacer el juego de Simon con Arduino

Información adicional:

Juego: http://es.wikipedia.org/wiki/Simon_%28juego%29

Ejemplo: http://www.arduteka.com/2012/07/juego-simon-con-s4a-y-arduino/

Ejemplo: http://www.instructables.com/id/Arduino-Simon-Says/

Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio24-Simon

  • Proyecto 5 – Gráfica de datos de temperatura en plot.ly. Recoger datos de temperatura cada 5 segundos y mandarlos a la web de plot.ly para que nos los imprima en tiempo real. Será necesario conectarse a Internet y usar el Ethernet Shield.

Información adicional:

API Arduino para Plot.ly:https://github.com/plotly/arduino-api

Información: http://makezine.com/2014/01/21/streaming-data-with-plotly/

Ejemplo: https://plot.ly/arduino/dht22-temperature-tutorial/

Otro ejemplo: https://plot.ly/arduino/tmp36-temperature-tutorial/

  • Proyecto 6 – Gráfica de datos de temperatura con Processing. Enviar los datos de voltaje leídos a través de un potenciómetro a nuestro ordenador mediante el puerto serie e imprimirlos en una gráfica mediante processing.
    AVANZADO: Encender un Led al ejecutar una determinada acción sobre un programa en Processing.
    En lugar de processing se puede hacer con otros lenguajes como Python o .Net para hacer los dos ejemplos anteriores.

Información adicional:

Comunicar Arduino y Processing: http://playground.arduino.cc/interfacing/processing

Ejemplo: http://arduino.cc/en/Tutorial/Graph

Ejemplo Led: http://arduino.cc/en/Tutorial/PhysicalPixel

  • Proyecto 7 – Alerta de intrusión por email con plataforma IoT www.carriots.com. Poner un sensor de iluminación conectado al arduino y cuando se encienda la luz mande los datos a la plataforma carriots y configurar en ella un aviso por email de intrusión.

Información adicional:

Documentación: https://www.carriots.com/documentation

Librería Arduino de Carriots: https://github.com/carriots/arduino_library

API Rest de Carriots: https://www.carriots.com/documentation/api

Ejemplo: http://blog.biicode.com/iot-temperature-email-arduino-carriots/

Otro ejemplo: https://nukalamadhu.wordpress.com/2014/04/14/internet-of-things-with-arduino-carriots-m2m-cloud-platform/

Tutorial: https://www.carriots.com/tutorials/arduino_carriots/alert_system

  • Proyecto 8 – Comunicar dos Arduinos mediante I2C. Comunicar dos Arduinos para que se manden información vía I2C, ya sea el master quien lea datos y los envíe el slave o el master escriba y el slave lo lea.

Información adicional:

I2C: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-4/

Ejemplo1: http://arduino.cc/en/Tutorial/MasterReader

Ejemplo2: http://arduino.cc/en/Tutorial/MasterWriter

Otro ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio33-I2C

  • Proyecto 9 – Servidor Web embebido. Hacer una sencilla web embebida en Arduino usando el ethernet shield. La web estará en una tarjeta SD dentro de un ficheo llamada index.html.

Información adicional:

Librería Ethernet: https://aprendiendoarduino.wordpress.com/2014/11/18/tema-6-comunicaciones-con-arduino-2/

Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/blob/master/Ejercicio30-SD/Ejercicio30-SD.ino

Ejemplo: http://arduino.cc/en/pmwiki.php?n=Tutorial/WebServer

Tutorial: http://www.academia.edu/7510788/Embedded_Web_Server_using_Arduino_Ethernet_Shield

Otro tutorial: http://blog.startingelectronics.com/arduino-web-server-tutorial/

  • Proyecto 10 – Grabar datos de temperatura en una Raspberry Pi. Datalogger de los datos de temperatura leídos en una Raspberry Pi. Con una RPi que tenga un servidor LAMP instalado, grabar en una tabla de una BBDD MySQL los datos de temperatura que mande Arduino cada 5 segundo:

Información adicional:

Ejemplo: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Ejercicio32-EnviaDatos

  • Proyectos libres. Proponer otros proyectos.

Sensores

Un sensor es un dispositivo capaz de detectar magnitudes físicas o químicas, llamadas variables de instrumentación, y transformarlas en variables eléctricas. Las variables de instrumentación pueden ser por ejemplo: temperatura, intensidad lumínica, distancia, aceleración, inclinación, desplazamiento, presión, fuerza, torsión, humedad, movimiento, pH, etc. Una magnitud eléctrica puede ser una resistencia eléctrica (como en una RTD), una capacidad eléctrica (como en un sensor de humedad o un sensor capacitivo), una tensión eléctrica (como en un termopar), una corriente eléctrica (como en un fototransistor), etc.

 Los sensores se pueden clasificar en función de los datos de salida en:

  • Digitales
  • Analógicos

 Y dentro de los sensores digitales, estos nos pueden dar una señal digital simple con dos estados como una salida de contacto libre de tensión o una salida en bus.

 Un ejemplo de sensor analógico sería el ACS714:

 Datasheet: http://www.allegromicro.com/~/Media/Files/Datasheets/ACS714-Datasheet.ashx

 Como medir corriente: http://playground.arduino.cc/Main/CurrentSensing

Características de un sensor: http://es.wikipedia.org/wiki/Sensor#Caracter.C3.ADsticas_de_un_sensor

 Tipos de sensores: http://es.wikipedia.org/wiki/Sensor#Tipos_de_sensores

 A la hora de elegir un sensor, debemos leer detenidamente las características y elegir uno que sea compatible con nuestro sistema (tensión y voltaje) y que sea sencillo de usar o nos facilite una librería sencilla y potente.

 Catálogo de sensores:

 Sensores con comunicación por bus. Un bus (o canal) es un sistema digital que transfiere datos entre los componentes de una dispositivo electrónico o entre varios. Está formado por cables o pistas en un circuito impreso, dispositivos como resistencias y condensadores además de circuitos integrados.

 La tendencia en los últimos años hacia el uso de buses seriales como el USB, Firewire para comunicaciones con periféricos, reemplazando los buses paralelos, incluyendo el caso del microprocesador con el chipset en la placa base, a pesar de que el bus serial posee una lógica compleja (requiriendo mayor poder de cómputo que el bus paralelo) se produce a cambio de velocidades y eficacias mayores.

 

Más información en: http://es.wikipedia.org/wiki/Bus_(inform%C3%A1tica)

Existen muchos tipos de buses de comunicaciones, algunos de ellos los implementa arduino mediante controladores HW integrados en la MCU (I2C) o mediante una librería (one wire) y en otros casos es necesario un hardware adicional para adaptar la señal con un transceiver y manejar el protocolo con un controlador, por ejemplo can bus o modbus.

Los sensores DHT11 o DHT22 que vimos anteriormente,  son unos pequeños dispositivos que nos permiten medir la temperatura y la humedad. A diferencia de otros sensores, éstos los tendremos que conectar a pines digitales, ya que la señal de salida es digital. Llevan un pequeño microcontrolador interno para hacer el tratamiento de señal. Estos sensores han sido calibrados en laboratorios, presentan una gran fiabilidad.

 Ambos sensores funcionan con ciclos de operación de duración determinada. En determinados casos de aplicaciones los tiempos de lectura de los sensores puede ser determinante a la hora de elegirlo. 

Parámetro DHT11 DHT22
Alimentación 3Vdc ≤ Vcc ≤ 5Vdc 3.3Vdc ≤ Vcc ≤ 6Vdc
Señal de Salida Digital Digital
Rango de medida Temperatura De 0 a 50 °C De -40°C a 80 °C
Precisión Temperatura ±2 °C <±0.5 °C
Resolución Temperatura 0.1°C 0.1°C
Rango de medida Humedad De 20% a 90% RH De 0 a 100% RH
Precisión Humedad 4% RH 2% RH
Resolución Humedad 1%RH 0.1%RH
Tiempo de sensado 1s 2s
Tamaño 12 x 15.5 x 5.5mm 14 x 18 x 5.5mm

 Veamos en profundidad la sonda DHT22.

http://www.seeedstudio.com/wiki/Grove_-_Temperature_and_Humidity_Sensor_Pro

 Datasheet:

 Veamos como para un mismo sensor tenemos diferentes librerías y con funciones y uso diferente en cada una de ellas. Cada uno de los distribuidores de estas sondas ha creado su propia librería.

 Otra sonda de temperatura pero que usa un bus de comunicación, lo que nos permite leer muchas sondas con una sola i/o digital es la DS18B20.

 Sonda: http://www.seeedstudio.com/depot/One-Wire-Temperature-Sensor-p-1235.html

 Sensor: http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

 Librería: http://playground.arduino.cc/Learning/OneWire

 Última version de la librería: http://www.pjrc.com/teensy/td_libs_OneWire.html

 one-wire: http://en.wikipedia.org/wiki/1-Wire

 one-wire: http://www.maximintegrated.com/en/app-notes/index.mvp/id/148