Todas las entradas por Regata

Soy I.T.I. especialidad electrónica y estudiante de Grado en ingeniería Electrónica industrial y Automática. Tengo 33 años. Soy aficionado a la electrónica, la impresión 3D, las películas, las series... Aprendiendo Arduino!!

OSHWDEM en coruña: 17 de noviembre


Este 17 de Noviembre se celebra en La Coruña un evento con filosofía BarCamp sobre electrónica y Open Source Hardware. Donde habrá talleres sobre:

* Arduino: un taller ideal para la gente que comienza en este mundo, con ejemplos de aplicaciones interesantes. Este espacio será gracias a la colaboración de Jose Rodriguez (@josejarj), integrante de Inestable y culpable de la primera Barcamp gallega sobre Arduino.

* Impresoras 3D: taller sobre impresoras 3D, donde encontrarás varias impresoras Reprap funcionando, y además donde podrás aprender a montarte tu propia impresora y como diseñar e imprimir tus propios objetos 3D. Se contará con la presencia de personajes ilustres como Juan González Gómez (@Obijuan_cube) y Juan Manuel Amuedo (@colepower) del proyecto CloneWars.

* RaspberryPi: Podrás encontrar ejemplos de aplicación de la famosa placa de la mano de Julio Galarón (@jgalaron). Además de contar con Simón Pena (@spenap) que enseñará sus proyectos para móviles Nokia.

* Robótica: Con la presencia de varios robots, entre ellos Orugas de Alejandro Taracido (@TCRobotics), Robbit creado por Fidel Fraga (@guafi), Mini Skybot serie de robots creados por Juan González (@Obijuan_cube), Humanoides Robonova-I robots humanoides comerciales programados por Álex Alfaya (@alexalfaya) y Alejandro Valiñas (@sdaf2) y además de poder presentar tu propio robot.

* Música OSHW: espacio destinado a demostrar las capacidades de Arduino para generar sonido e incluso música. Con la colaboración de Xulio Coira (@xulioc), que también presentará el proyecto OpenPipe.

* Montaje de circuitos: se demostrarán las diferentes técnicas necesarias para construir un circuito electrónico desde cero, desde el esquemático, pasando por el diseño de la placa, la construcción de la placa y el montaje final de los componentes. Con la colaboración de Alfredo Prado (@radikalbytes), uno de los culpables de la Castelao Barcamp organizada en Vigo en Septiembre.

Además se sortearán varios premios entre los asistentes a la OSHWDEM de Coruña!!

Podéis encontrar más información en su blog: http://oshwdem.wordpress.com/ y en su twitter: @OSHWDEM

Nos vemos allí, no faltéis!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Sensor de nivel de liquido y arduino o pinguino pic


Como estoy metido en un proyecto sobre el control de unos depósitos de agua para la furgoneta vivienda de un amigo mio, me parece interesante hablar aquí de los sensores de nivel de liquido.

Los sensores de nivel de liquido de los que vamos a hablar son de este tipo:

La verdad es que son muy fáciles de usar, ya que cuando están activados puentean los dos cables que traen, así que funcionan como un interruptor. Os dejo las características de los mismos:

El ejemplo que hice para probarlo es muy básico y es el mismo tanto para arduino como para pinguino pic, lo único que cambia son los pines a donde he conectado tanto el sensor como el led de alarma (los podéis ver en el código de pinguino pic), os dejo una imagen del esquema de conexionado:

Aquí podéis ver un vídeo del funcionamiento del sensor (en un improvisado depósito de agua realizado con una botella de refresco):

El código para arduino:

/*Prueba sensor de nivel de liquido*/

int sensor=12;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=11;      //Indicamos el pin al que tenemos conectado el led que indica alarma

void setup()
{                
	//Configuramos los pines correspondientes como entradas o salidas
  pinMode(sensor,INPUT);   //sensor de nivel de liquido
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
  if(digitalRead(sensor)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}

El código para pinguino pic:

/*Prueba sensor de nivel de liquido*/

int sensor=0;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=1;      //Indicamos el pin al que tenemos conectado el led que indica alarma

void setup()
{                
	//Configuramos los pines correspondientes como entradas o salidas
  pinMode(sensor,INPUT);   //sensor de nivel de liquido
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
  if(digitalRead(sensor)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}

Espero que os sirva de ayuda!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Nueva placa Arduino de 32 bits: Arduino Due


La placa Arduino Due es la nueva propuesta de la familia Arduino para microcontroladores de 32 bits. De hecho es el primer microcontrolador de 32 bits dentro de la familia Arduino (en concreto emplea el microcontrolador Atmel SAM3X8E ARM Cortex-M3 MCU), permitiendo mejorar todas las antiguas funcionalidades de las placas Arduino y además agrega muchas características nuevas.

Esta placa nos ofrece 54 pines de entradas/salidas digitales (de los cuales 16 los podemos utilizar como pines de salida PWM, con resolución seleccionable), 12 entradas analógicas de 12 bits de resolución, 4 UARTs (puertos serie), 2 salidas DAC (convertidores digital a analógico), un cristal oscilador de 84 MHz, 2 conexiones USB, un conector de alimentación tipo Powerjack, un conector para ICSP, un conector para JTAG y un pulsador de reset.

La placa Arduino Due presenta dos conectores micro USB: una de ellas esta destinada para fines de depuración y la otra es capaz de actuar como un host USB, permitiendo conectar periféricos USB externos, tales como: ratones, teclados, smartphones, etc…

Os dejo una imagen con las características principales de la Arduino Due.

Podéis conseguir más información en la página http://arduino.cc/ArduinoDUE

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Módulo de Relés


Como en un anterior tutorial hemos visto como usar y montar un circuito de relés para tu arduino/pinguino pic, aquí os dejo un sencillo tutorial para poder conectar módulos de relés que ya se compran montados a nuestros proyectos.

El módulo que voy a emplear es uno muy típico que podéis encontrar por ebay a un precio realmente muy atractivo, se trata de este:

Como podéis ver, en este módulo (que es el que he empleado para el tutorial) trae dos entradas para poder activar dos relés, pero podemos encontrar módulos con más relés e incluso de un solo relé, lo que necesitemos para nuestros proyectos.

Os dejo el esquema de conexión y paso a explicar un poco la conexión para que funcione todo correctamente:

Como podéis ver en la foto del módulo observamos que tenemos dos tiras de pines, una que es en la que esta el jumper, que tiene tres pines y podemos seleccionar alimentar todo el módulo de forma conjunta (es decir seleccionar con el jumper jd-vcc y vcc), o bien alimentar de forma independiente tanto optoacopladores como relés (quitando el jumper), yo he usado la forma de alimentar todo de manera conjunta, ya que me parece la forma más sencillo de hacerlo, así que he dejado el jumper uniendo jd-vcc y vcc. Y la otra tira de pines que es donde nos aparece en el siguiente orden: GND IN1 IN2 VCC, aquí es donde unimos la alimentación con nuestro arduino, es decir, GND del módulo con GND del arduino/pinguino pic, VCC del módulo con 5V del arduino/pinguino pic y las entradas IN1 e IN2 (se activan las bobinas de los relés cuando ponemos a GND dichas entradas) conectados a los pines que deseemos de nuestro arduino/pinguino pic, serán los encargados de activar las bobinas de los relés correspondientes. Como veis es una manera muy sencilla de poder emplear relés en nuestros proyectos sin necesidad de construirnos una pcb para realizar dicha tarea.

Por otro lado tenemos los conectores a los que conectaremos los aparatos eléctricos que queramos activar o desactivar mediante nuestro módulos de relés, como podéis observar en la imagen de arriba, tienen tres conectores cada relé, empezando por abajo observamos en este orden: Conector normalmente cerrado del relé 1 (está activo hasta que se activa la bobina del relé mediante la entrada IN1 poniéndola a LOW), el conector común del relé 1 y el conector normalmente abierto del relé 1 (está desactivado hasta que se activa la bobina del relé mediante la entrada IN1 y permanece activado hasta que se ponga a HIGH dicha entrada).

Os dejo un vídeo de funcionamiento utilizando el módulo con un arduino uno y una bombilla a 220V, donde se apaga/enciende con un intervalo de 5 segundos, empleando el ejemplo blink.

Código:

/*
Ejemplo de encendido/apagado de una bombilla de 220V con un módulo de relés
 */

void setup() 
{                
  // Indicamos el pin que va a activar o desactivar la bobina del relé
  pinMode(13, OUTPUT);     
}

void loop() 
{
  //Ojo las bobinas de los relés se activan cuando a las entradas del módulo tienen GND
  digitalWrite(13, HIGH);   // Desactivamos la bobina del relé
  delay(5000);              // Esperamos 5 segundos
  digitalWrite(13, LOW);    // Activamos la bobina del relé
  delay(5000);              // Esperamos 5 segundos
}

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Relés y Arduino: Encendiendo una bombilla desde tu arduino.


En este nuevo post vamos a hablar de como hacer funcionar un relé con Arduino, en primer lugar necesitamos saber que un relé es un dispositivo que funciona como un interruptor, permitiendo la activación o des-activación de un circuito eléctrico independiente, es decir, podemos activar aparatos electrónicos de mayor voltaje y gran consumo a través de nuestros microcontroladores (como por ejemplo encender una bombilla que funciona a 220V a través de nuestro microcontrolador).

Yo para este tutorial he empleado unos relés de la casa HUI KE que funcionan a 5V y comprados por ebay a un precio muy reducido, en concreto HUI KE HK4100F-DC5V-SHG, os pongo unas imagenes y las conexiones interiores:

Como podéis ver estos relés son de muy reducido tamaño y perfectos para trabajar con nuestro microcontroladores, ya que funcionan a 5V, sin necesidad de disponer de fuentes externas para activar su bobina. Os dejo el esquema de conexión realizado en Fritzing y un esquemático realizado en Eagle:

Como podéis ver los componentes que necesitamos para realizar el circuito de control son muy pocos:

* Relé de 5V (En este caso de la casa HUI KE, vale cualquier otro).
* Transistor BC547.
* Resistencia de 10k.
* Diodo 1N4001.

Como siempre os dejo una foto del montaje del mismo y un vídeo del funcionamiento del circuito, en esta caso la bombilla se enciendo durante un segundo y permanece apagada durante diez segundos:

Y por último os dejo el código (aunque es muy sencillo):

/*Programa realizado por Javier Couto Rego "Regata" para
www.tallerarduino.wordpress.com

Encendiendo una bombilla a 220V con un Arduino y un relé
a 5V*/

int rele=8;

void setup()
{
  pinMode(rele,OUTPUT);
}

void loop()
{
  //Nota tenemos el relé conectado como Normalmente Abierto
  //así solo se activará la carga cuando activemos la bobina
  //del relé, para que funcione al revés cambiaremos el cable
  //a la posición Normalmente Cerrado
  digitalWrite(rele,HIGH);  //Activamos la bobina del relé y encendemos la bombilla
  delay(1000);              //durante 1 segundo
  digitalWrite(rele,LOW);   //Desactivamos la bobina del relé y apagamos la bombilla
  delay(10000);             //durante 10 segundos
}

Espero que os guste y que os sirva de ayuda!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

nuevo pinguino IDE x.3


Los chicos de www.pinguino.cc han sacado una nueva versión del IDE para la programación de vuestros pinguinos, con opción de seleccionar entre distintas placas y con muchos más ejemplos y librerías que las versiones anteriores, os dejo una imagen de como es este nuevo IDE:

La nueva versión (Mac, Linux y Windows) la podéis descargar desde este enlace: http://code.google.com/p/pinguino32/downloads/list

Una vez instalada la aplicación es recomendable actualizar el IDE a la última revisión disponible, para ello abrimos la aplicación y pincháis como indica la imagen, primero buscáis si hay nuevas revisiones y posteriormente en upgadre:

Con esto ya dispondréis del software pinguino actualizado a la última versión. Pronto nuevos tutoriales pinguino!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Arduino y sensores de temperatura DS18B20


Os traigo un ejemplo de como usar los sensores de temperatura DS18B20 con nuestro Arduino. La ventaja principal que presentan estos sensores es que se pueden conectar hasta 100 dispositivos a un único pin y a una distancia máxima de nuestro Arduino de 200 metros. Dichos sensores emplean el protocolo de comunicación en serie 1-wire diseñado por Dallas Semiconductor.

Pero, ¿en que se basa este protocolo de comunicación? pues básicamente y para no entrar en muchos tecnicismos, es un bus donde disponemos de un maestro y varios esclavos en una sola línea de datos (pin de nuestro Arduino) en la que se alimentan. Por supuesto, necesita igualmente una referencia a tierra común a todos los dispositivos. También debemos conocer que la línea de datos/alimentación debe de disponer de una resistencia de pull-up conectada a alimentación para cuando no se produzca la transmisión de datos cuando tengamos 5 voltios en dicha línea.

En este tipo de sensores podemos encontrar dos tipos de alimentación:

* El primero de ellos alimenta a los dispositivos en modo parásito, esto quiere decir que solo suministra alimentación mientras se realizan las operaciones de conversión de temperatura, se deben puentear las patillas GND y VDD del DS18B20 a GND del Arduino.

* El segundo es alimentación de los sensores mediante una fuente de alimentación externa conectada a la patilla VDD del DS18B20, y la patilla GND al pin GND de Arduino.

Ahora vamos al lío, aquí tenéis el esquema de conexionado de los tres sensores y dos led indicadores de temperatura:

NOTA: Las conexiones a GND de los sensores 2 y 3 están mal en el esquema de Fritzing, tienen que ir donde GND del Arduino.

Como podéis ver uso la alimentación tipo parasito y en el programa que he realizado básicamente indicamos el pin por el que vamos a comunicar nuestros sensores con el Arduino, añadiendo para ello dos librerías, las cuales son OneWire.h y DallasTemperature.h. Leemos la temperatura de los 3 sensores DS18B20 y mostramos mediante el monitor serie dichas temperaturas, además mostramos una temperatura media de las tres, y guardamos la temperatura mínima y máxima para mostrar también. Los diodos led se encienden dependiendo de la temperatura media que tengamos, el led verde se enciende para una temperatura de menos de 22ºC y el led rojo indica una temperatura mayor de 22ºC.

Aquí podéis ver un vídeo del funcionamiento del programa:

Aquí dejo el código:

/*Programa realizado por Regata para tallerarduino.wordpress.com*/
/*Medición de temperatura mediante varios sensores 1-wire DS18B20+*/

#include <OneWire.h>
#include <DallasTemperature.h>

// DQ esta conectado al pin 10 de Arduino
#define ONE_WIRE_BUS 10

// Configuramos para comunicar con otros dispositivos 1-Wire
OneWire oneWire(ONE_WIRE_BUS);

// Indicamos el pin asignado al sensor 1-Wire a DallasTemperature 
DallasTemperature sensores(&oneWire);

int ledverde=11;  //indicamos que le led verde esta conectado en el pin 11 de Arduino
int ledrojo=12;  //indicamos que el led rojo esta conectado en el pin 12 del Arduino
float val=0; // variable donde guardaremos la temperatura leida del sensor
int i;  //variable que contiene el numero de sensores empleados en el caso de ser mas de 1
float tempmin=100;  //Variable donde guardamos la temperatura minima registrada
                    //Le pongo 100 por que en donde lo he probado no llega a esa temperatura
                    //y así puede coger el menor valor de temperatura que aparezca
float tempmax=0;    //Varibale donde guardamos la temperatura maxima registrada

void setup(void)
{
  //Indicamos ledverde y ledrojo como salidas  
  pinMode(ledverde,OUTPUT);
  pinMode(ledrojo,OUTPUT);
  // Iniciamos el puerto serie a 9600 baudios
  Serial.begin(9600);
  // Inicializamos la libreria
  sensores.begin();
  //Ponemos a 0 las salidas ledverde y ledrojo
  digitalWrite(ledverde,LOW);
  digitalWrite(ledrojo,LOW);
}

void loop(void)
{ 
  // call sensors.requestTemperatures() to issue a global temperature 
  // request to all devices on the bus
  float media=0;
  for(i=0;i<=2;i++)
  {
    sensores.requestTemperatures(); //Enviamos el comando para obtener la temperatura  
    Serial.print("Temperatura Sensor ");
    Serial.print(i);
    Serial.print(": ");
    float val =  sensores.getTempCByIndex(i); // Almacenamos la temperatura en la variable val
    media=media+val;  //Vamos sumando para poder calcular la media de las temperaturas
    Serial.println(val);  //Mostramos por puerto serie el valor de la temperatura leida
    if (val<tempmin)
      tempmin=val;
    if (val>tempmax)
      tempmax=val;
  }
    media=media/i;  //Calculamos la media de las temperaturas
    Serial.print("La temperatura media es: ");  //Mostramos la temperatura media de todas las temperaturas
    Serial.println(media);
    Serial.print("La temperatura minima registrada es: ");  //Mostramos la temperatura minima registrada
    Serial.println(tempmin);
    Serial.print("La temperatura maxima registrada es: ");  //Mostramos la temperatura maxima registrada
    Serial.println(tempmax);
    //Si la temperatura media es mayor o igual a 22ºC encendemos el led rojo y apagamos el led verde
    if(media>=22)
     {
      digitalWrite(ledverde,LOW);
      digitalWrite(ledrojo,HIGH);
     }
     //Si es menor a 22ºC encendemos el led verde y apagamos y el led rojo
     else
     {
        digitalWrite(ledrojo,LOW);
        digitalWrite(ledverde,HIGH);
     }
    Serial.println();
    delay(1500);  //Esperamos 1500ms
}

Os dejo también los documentos necesarios para realizar el montaje:

http://www.mediafire.com/?x5h64n3k82c6pkg

Ante las preguntas de varios visitantes del blog, he estado mirando la forma de leer los sensores a través de su dirección de dispositivo, ya que bien podemos tener distintos sensores colocados en varios sitios y queremos leer independientemente cada uno de ellos. Un ejemplo de dirección de dispositivo de estos sensores puede ser {0x28, 0xC7, 0xE8, 0x06, 0x05, 0x00, 0x00, 0xDC}. Arriba hemos visto la forma de leer los sensores por Index, que para varios sensores la verdad no es muy recomendado ya que la propia librería se encarga de asignar la posición de los sensores para ser leídos, por eso vamos a trabajar con la dirección específica para cada sensor y así tener el control sobre ellos.

Lo primero que vamos a tener que hacer es detectar cual es la dirección del dispositivo, para ello conectamos el sensor a nuestro Arduino (en este caso he realizado la prueba con un Arduino Mega 2560, pero vale con cualquier otro Arduino, lo único que tenéis que cambiar es el pin donde conectamos el sensor):

DS18B20 Address

El código para obtener la dirección del sensor es el siguiente:

/*Programa realizado por Javier Couto Rego (Regata) para www.tallerarduino.wordpress.com

Programa de lectura de sensores de temperatura DS18B20 de Dallas Semiconductor a través de
su direccion de dispositivo en lugar de lectura indexada.*/

//Incluimos las librerias para controlar los sensores de temperatura
#include <OneWire.h>
#include <DallasTemperature.h>

//Estoy trabajando con un Arduino Mega, indico que los sensores estan conectados al pin 33
#define ONE_WIRE_BUS 33
OneWire oneWire(ONE_WIRE_BUS);  // Configuramos para comunicar con otros dispositivos 1-Wire
DallasTemperature sensores(&oneWire); // Indicamos el pin asignado al sensor 1-Wire a DallasTemperature 
DeviceAddress Sensor;  // Array donde almacenamos la direccion del sensor DS18B20

void setup(void)
{
  Serial.begin(9600);  //Iniciamos la comunicacion serie a 9600 baudios
  Serial.println("Comprobación Direccion Sensores DS18B20:");
  sensores.begin();  //Iniciamos la libreria para la lectura de los sensores
  //Obtenemos la direccion del sensor de temperatura
  if (!sensores.getAddress(Sensor, 0)) 
    Serial.println("Imposible encontrar direccion del sensor.");
}

//Funcion que muestra la direccion del sensor de dicha direccion
void Mostrar_Direccion(DeviceAddress direccion)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (direccion[i] < 16) Serial.print("0");
    Serial.print(direccion[i], HEX);
  }
}

void loop(void)
{ 
  //Mostramos la direccion del sensor
  Serial.print("Direccion del sensor: ");
  Mostrar_Direccion(Sensor);
  Serial.println();
  delay(1000);
}

Un ejemplo de uso de estos comando con la librería DallasTemperature y 5 sensores DS18B20:

Ejemplo DS18B20 5 Sensores

El código es:

/*Programa realizado por Javier Couto Rego (Regata) para www.tallerarduino.wordpress.com

Programa de lectura de sensores de temperatura DS18B20 de Dallas Semiconductor a través de
su direccion de dispositivo en lugar de lectura indexada.*/

//Incluimos las librerias para controlar los sensores de temperatura
#include <OneWire.h>
#include <DallasTemperature.h>

//Estoy trabajando con un Arduino Mega, indico que los sensores estan conectados al pin 33
#define ONE_WIRE_BUS 33
                              
OneWire oneWire(ONE_WIRE_BUS);  // Configuramos para comunicar con otros dispositivos 1-Wire
DallasTemperature sensores(&oneWire); // Indicamos el pin asignado al sensor 1-Wire a DallasTemperature 

//Indicamos las direcciones de los distintos sensores
DeviceAddress S1 = {0x28, 0xC7, 0xE8, 0x06, 0x05, 0x00, 0x00, 0xDC};  //Sensor 1
DeviceAddress S2 = {0x28, 0xD7, 0xF2, 0x07, 0x05, 0x00, 0x00, 0xC9};  //Sensor 2
DeviceAddress S3 = {0x28, 0xC4, 0xF0, 0x07, 0x05, 0x00, 0x00, 0x48};  //Sensor 3
DeviceAddress S4 = {0x28, 0xC9, 0xB6, 0x07, 0x05, 0x00, 0x00, 0x77};  //Sensor 4
DeviceAddress S5 = {0x28, 0x8D, 0xE9, 0x06, 0x05, 0x00, 0x00, 0xAB};  //Sensor 5

void setup(void)
{
  Serial.begin(9600);  //Iniciamos la comunicacion serie a 9600 baudios
  sensores.begin();  //Iniciamos la libreria para la lectura de los sensores
}

//Funcion que muestra la direccion del dispositivo de dicha direccion
void Mostrar_Direccion(DeviceAddress direccion)
{
  for (uint8_t i = 0; i < 8; i++)
  {
    if (direccion[i] < 16) 
      Serial.print("0");
    Serial.print(direccion[i], HEX);
  }
}

//Funcion que muestra la temperatura en grados centigrados del sensor de dicha direccion
void Mostrar_Temperatura(DeviceAddress direccion)
{
  float tempC = sensores.getTempC(direccion);
  Serial.print("Temperatura: ");
  Serial.print(tempC);
}

//Funcion que muestra la resolucion del sensor de dicha direccion
void Mostrar_Resolucion(DeviceAddress direccion)
{
  Serial.print("Resolucion: ");
  Serial.print(sensores.getResolution(direccion));
  Serial.println();    
}

//Funcion que muestra los datos del sensor de dicha direccion
void Mostrar_Datos(DeviceAddress direccion)
{
  Serial.print("Direccion del dispositivo: ");
  Mostrar_Direccion(direccion);
  Serial.print(" ");
  Mostrar_Temperatura(direccion);
  Serial.println();
}

void loop(void)
{ 
  Serial.println("Comprobación Direccion Sensores DS18B20:");
  //Podemos ver el numero de dispositivos que estan conectados al bus 1-Wire
  Serial.print("El numero de dispositivos es: ");
  Serial.println(sensores.getDeviceCount(), DEC);
  //Podemos comprobar si el sensor esta alimentado en modo Parasito
  Serial.print("Alimentacion en modo Parasito: "); 
  if (sensores.isParasitePowerMode()) 
    Serial.println("ON");
  else 
    Serial.println("OFF");
  Serial.print("Direccion Sensor 1: ");
  Mostrar_Direccion(S1);
  Serial.println();
  Serial.print("Direccion Sensor 2: ");
  Mostrar_Direccion(S2);
  Serial.println();
  Serial.print("Direccion Sensor 3: ");
  Mostrar_Direccion(S3);
  Serial.println();
  Serial.print("Direccion Sensor 4: ");
  Mostrar_Direccion(S4);
  Serial.println();
  Serial.print("Direccion Sensor 5: ");
  Mostrar_Direccion(S5);
  Serial.println();
  //Establecemos la resolucion para cada sensor, PRECISION es a 9 bits
  sensores.setResolution(S1, 9);  //Resolucion a 9 bits 0.50 ºC
  sensores.setResolution(S2, 9);  //Resolucion a 9 bits 0.50 ºC
  sensores.setResolution(S3, 10); //Resolucion a 10 bits 0.25 ºC
  sensores.setResolution(S4, 11); //Resolucion a 11 bits 0.125 ºC
  sensores.setResolution(S5, 12); //Resolucion a 12 bits 0.0625 ºC
  //Si queremos mostrar la resolucion que tiene cada sensor:
  Serial.print("Resolucion Sensor 1: ");
  Serial.print(sensores.getResolution(S1), DEC); 
  Serial.println();
  Serial.print("Resolucion Sensor 2: ");
  Serial.print(sensores.getResolution(S2), DEC); 
  Serial.println();
  Serial.print("Resolucion Sensor 3: ");
  Serial.print(sensores.getResolution(S3), DEC); 
  Serial.println();
  Serial.print("Resolucion Sensor 4: ");
  Serial.print(sensores.getResolution(S4), DEC); 
  Serial.println();
  Serial.print("Resolucion Sensor 5: ");
  Serial.print(sensores.getResolution(S5), DEC); 
  Serial.println();
  sensores.requestTemperatures();  //Enviamos el comando para obtener los datos de los sensores
  //Mostramos los datos de todos los sensores
  //Llamamos a la funcion Mostrar_Datos indicando la direccion del sensor que queremos leer
  Serial.print("Sensor 1 --> ");
  Mostrar_Datos(S1);
  Serial.print("Sensor 2 --> ");  
  Mostrar_Datos(S2);
  Serial.print("Sensor 3 --> ");
  Mostrar_Datos(S3);
  Serial.print("Sensor 4 --> ");
  Mostrar_Datos(S4);
  Serial.print("Sensor 5 --> ");
  Mostrar_Datos(S5);
  delay(2000);  //Retardo de 2 segundo
}

Espero que os guste!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal