¿Como mostrar en un LCD 16×2 temperatura utilizando un Digispark Pro con sensor DS18B20?

¿Como mostrar en un LCD 16×2 temperatura utilizando un Digispark Pro con sensor DS18B20?

Si necesitas controlar la temperatura a travez de un sistema confiable y muy diminuto te tengo la siguiente guia muy interesante, tratare de explicarte lo mas sencillo posible como mostrar la temperatura en un lcd 16×2 con sistema I2C controlado todo a travez un Digispark Pro con Attiny 167.

Te recomiendo que sigas los pasos en el orden indicado, asi podras lograr el proyecto al 100% sin retrasos ni problemas.

 

Materiales Necesarios:

  • Protoboard:wb2
  • Digispark Pro Attiny 167:
  • Sensor de temperatura DS18B20:
  • Jumpers:jumpers m-h
  • Fuente de alimentacion 5V:cargador 5V 3A

 

Pasos a Seguir: (No te saltes NINGUNO)

  1. Primero debes saber como cargar los codigos a nuestro Digispark, para ello hemos creado la siguiente guia donde te enseñamos desde como configurar tu Arduino IDE y luego como cargar los codigos, Ver Guia.
  2. Procedemos a realizar toda la conexion electronica, para ello te dejamos el siguiente esquema desarrollado en Fritzing y si deseas descargar el siguiente codigo tienes que dar click a la imagen, recuerda estar registrado en nuestra pagina WEB.(si  no puedes observar correctamente el esquema da click sobre la imagen y descarga el esquema).
  3. En el esquema anterior utilizamos un digispark Attiny 85 por facilidad en la creacion del esquema pero nosotros tenemos un Digispark Pro Attiny 167 la razon es que el attiny85 tiene solo 6kb de memoria flash lo cual para nuestro proyecto es demaciado pequeño, por ello utilizamos el attiny167 con 16kb de memoria flash, algo que es suficiente, a continuacion tienes el esquema de conexion, conextaras el pin central del sensor de temperatura al pin 5 del Digispark Pro que corresponde al Analogico 5.
  4. Antes de iniciar a cargar el codigo es necesario que descargues algunas librerias necesarias como lo son:
    TinyWireM
    LiquidCrystal_attiny
    OneWire
    DallasTemperature
  5. A continuacion encontraras el codigo que debes cargar al digispark como indicamos en el punto numero 1 de esta guia:
    #include <TinyWireM.h> //llamamos la libreria
    #include <LiquidCrystal_attiny.h> //llamamos la libreria
    
    #include <OneWire.h> //llamamos la libreria onewire
    #include <DallasTemperature.h> //llamamos la libreria Dallas temperature
    #define ONE_WIRE_BUS 5 //indicamos que el pin de salida del sensor esta conectado
                           //al pin 5 de nuestro Digispark Pro Attiny167
    
    // Configure una instancia de OneWire para comunicarse con cualquier dispositivo OneWire 
    //(no solo IC de temperatura Maxim / Dallas)
    OneWire oneWire(ONE_WIRE_BUS);
    // Pase nuestra referencia oneWire a Dallas Temperature.
    DallasTemperature sensors(&oneWire);
    
    //Definimos nuestra pantalla x27, en caso de no funcionar probar con x20 o 3f
    #define GPIO_ADDR 0x27
    // indicamos una pantalla 16 x 2
    LiquidCrystal_I2C lcd(GPIO_ADDR,16,2);
    
    void setup() {
      lcd.init(); //iniciamos el lcd
      lcd.backlight(); //encendemos la retro iluminacion de pantalla
      sensors.begin(); //Habilitamos la libreria
      }
    void loop() {
      // call sensors.requestTemperatures() to issue a global temperature 
      // request to all devices on the bus
      sensors.requestTemperatures();
      // posicionamos en el punto 0,0 del lcd
      lcd.setCursor(0, 0);
      // escribimos en el lcd
      lcd.print("Temp Horno:");
      // posicionamos en el punto 0,1 del lcd
      lcd.setCursor(0, 1);
      // Envía el comando para obtener temperaturas y lo escribimos en la pantalla lcd
      lcd.print(sensors.getTempCByIndex(0));
      // posicionamos en el punto 6,1 del lcd
      lcd.setCursor(6, 1);
      // escribimos en la pantalla lcd
      lcd.print("*Celsius");
      
     }

     

Si seguiste todos los pasos al pie de la letra no tendras ningun problema y ya tendras tu lcd midiendo temperatura de una forma sencilla, economica y utilizando el menor espacio posible en tu proyecto!