lunes, 30 de diciembre de 2013

Arduino mostrar temperatura con un DS1820 en un LCD 16x2 I2C

Tras varios días de desesperación ya he conseguiguido echar a andar el DS1820 conectado a un display, este es el codigo que he utilizado:



Código:
/*
Autor: Aitor Martin
Fecha: 28-12-2013
Titulo: Sensor de temperatura DS1820
Placa: Arduino uno
Post: http://aitormartin-apuntes.blogspot.com.es/2013/12/arduino-mostrar-temperatura-con-un.html

Código de dominio publico. Se puede distribuir y modificar  libremente, 
siempre y cuando se mencione al autor y se proporcione un enlace a su web.
*/

#include <OneWire.h> //Configurar bus onewhire de Dallas
#include <DallasTemperature.h>//El ternometro de Dallas DS1820
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // 0x27 es la direccion del LCD 16x2

//Pata por la que van a entrar los datos al Arduino
#define ONE_WIRE_BUS 2
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

void setup() 
  {
  lcd.init();
  lcd.backlight(); //enciende la iluminacion
  sensors.begin(); //Iniciamos la libreria del DS1820
  }

void loop() 
{

  sensors.requestTemperatures(); //leemmos la temperatura del sensor.
  lcd.setCursor(0, 0);
  lcd.print(sensors.getTempCByIndex(0)); 
  lcd.print(" *C");
  delay(3000);
  }



Nota:
A mi a la hora de compilar, las librerias del DS1820 me dierón problemas. Si este es tu caso mira este enlace:

http://aitormartin-apuntes.blogspot.com.es/2013/12/arduino-sensores-ds-1820-y-el-error.html

2 comentarios:

  1. Perdón, pero a la hora de subir el programa al arduino me da este error:
    Arduino:1.6.1 (Windows 7), Placa:"Arduino Uno"

    sketch_may20a.ino:16:32: error: invalid conversion from 'int' to 't_backlighPol' [-fpermissive]

    In file included from sketch_may20a.ino:15:0:

    C:\Users\Maco\Documents\Arduino\libraries\LiquidCrystal/LiquidCrystal_I2C.h:53:4: error: initializing argument 3 of 'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, t_backlighPol)' [-fpermissive]

    LiquidCrystal_I2C (uint8_t lcd_Addr, uint8_t backlighPin, t_backlighPol pol);

    ^

    C:\Users\Maco\Documents\Arduino\libraries\LiquidCrystal/LiquidCrystal_I2C.h: In function 'void setup()':

    C:\Users\Maco\Documents\Arduino\libraries\LiquidCrystal/LiquidCrystal_I2C.h:154:9: error: 'int LiquidCrystal_I2C::init()' is private

    int init();

    ^

    sketch_may20a.ino:28:12: error: within this context

    Error de compilación

    This report would have more information with
    "Show verbose output during compilation"
    activala desde Archivo > Preferencias


    Me podrías ayudar.

    ResponderEliminar
  2. Perdon por la demora en contestar, por motivos personales he estado un poco ofline...

    Lamentablemente en estos momentos no tengo tiempo de analizar el codigo, ami en su día el que publique por aqui me funciono.

    Intenta pedir ayuda en el foro de arduino en la seccion en español.

    Perdon por no poder ayudarte.

    ResponderEliminar