Termómetro Arduino con TM1637

El proyecto de termómetro Arduino con el módulo TM1637 y el DS18B20 o el sensor digital de temperatura y humedad DHT22 / DHT11 es un proyecto sencillo para principiantes. Hemos decidido hacer un breve resumen de tres variantes de termómetro en el LED de 4 caracteres TM1637. En esta página hemos colocado los diagramas de montaje del proyecto con los programas para el Arduino Uno y el módulo de pantalla TM1637.

Para esta actividad necesitaremos:

Cómo hacer un termómetro con Arduino y TM1637

Para seleccionar un sensor para su proyecto, preste atención a sus especificaciones. El sensor ds18b20 tiene un rango de medición de temperatura de -55 … +125°C con una precisión máxima de 0,5 grados. El sensor lm35 no puede medir temperaturas negativas y tiene una incertidumbre de medición de 2 grados Celsius. El sensor digital de temperatura DHT22 mide en el rango -40 … +150°C y también es capaz de medir la humedad.

Arduino termómetro con DS18B20 y pantalla TM1637

Arduino termómetro TM1637 y sensor DS18B20
Arduino termómetro con pantalla TM1637 y sensor DS18B20

¿Cómo hacer un termómetro con Arduino y TM1637? La primera versión de este proyecto utiliza un sensor DS18B20 sellado. Ya hemos visto la conexión del sensor DS18B20 al Arduino, que se comunica con el Arduino utilizando la librería DallasTemperature.h. El esquema muestra la conexión del sensor a la placa, recuerda añadir una resistencia de 4,7kΩ entre los pines 5V y Data del sensor al montar el termómetro TM1637.

#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

#include "OneWire.h"
#include "DallasTemperature.h"
OneWire oneWire(15); // puerto de conexión del sensor (A1)
DallasTemperature ds(&oneWire);

const uint8_t C[] = {
  SEG_B | SEG_A | SEG_F | SEG_G,
  SEG_A | SEG_D | SEG_E | SEG_F
};

void setup() {
  ds.begin();
  Serial.begin(9600);
  display.setBrightness(4); // luminosidad de 0 a 7
}

void loop() {
  ds.requestTemperatures();
  int t = ds.getTempCByIndex(0);

  Serial.print("Temperature: ");
  Serial.println(t);

  display.showNumberDecEx(t, (0x80 >> 0), false, 2, 0);
  display.setSegments(C, 2, 2);

  delay(100);
}

Explicación del código para termómetro DS18B20 y TM1637:

  1. la información sobre la temperatura se muestra adicionalmente en el monitor del puerto;
  2. los puertos de conexión de la pantalla y el sensor se especifican en el código.

Arduino termómetro con LM35 y pantalla TM1637

Arduino termómetro TM1637 y sensor LM35
Arduino termómetro con pantalla TM1637 y sensor LM35

Termómetro con sensor LM35. En este ejemplo, utilizamos las lecturas del sensor analógico LM35 para crear un termómetro basado en el módulo TM1637. Este sensor no requiere calibración ni ajustes para garantizar la precisión, la señal del sensor LM35 es proporcional a los grados Celsius. Mostraremos la temperatura en los dos primeros segmentos de la pantalla y los otros dos segmentos mostrarán un icono de grados.

#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO

const uint8_t C[] = {
  SEG_B | SEG_A | SEG_F | SEG_G,
  SEG_A | SEG_D | SEG_E | SEG_F
};

void setup() {
  pinMode(A1, INPUT);
  Serial.begin(9600);
  display.setBrightness(4); // luminosidad de 0 a 7
}

void loop() {
  int t = analogRead(A1);
  int temp = (t / 1023.0) * 5.0 * 1000 / 10;

  Serial.print("Temperature: ");
  Serial.println(temp);

  display.showNumberDecEx(temp, (0x80 >> 0), false, 2, 0);
  display.setSegments(C, 2, 2);

  delay(100);
}

Explicación del código para termómetro LM35 y TM1637:

  1. el brillo de la pantalla cambia de 0 a 7 en el comando display.setBrightness();

Arduino termómetro con DHT22 y pantalla TM1637

Arduino termómetro TM1637 y sensor DHT22
Arduino termómetro con pantalla TM1637 y sensor DHT22

La tercera opción para el dispositivo. El sensor de temperatura DHT11 también se puede utilizar para construir el proyecto, pero el sensor DHT22 proporciona la medición más precisa para crear el termómetro. El esquema no cambiará, y sólo tendrá que cambiar el tipo de sensor utilizado en el programa. Todo lo que tienes que hacer es montar el circuito con el módulo TM1637 y cargar el programa en el microcontrolador Arduino.

#include "TM1637Display.h"
TM1637Display display(3, 2); // CLC, DIO 
 
#include "DHT.h"
DHT dht(8, DHT11);

const uint8_t C[] = {
  SEG_B | SEG_A | SEG_F | SEG_G,
  SEG_A | SEG_D | SEG_E | SEG_F
};

void setup() {
  dht.begin();
  Serial.begin(9600);
  display.setBrightness(4); // luminosidad de 0 a 7
}

void loop() {
  int t = dht.readTemperature();

  Serial.print("Temperature: ");
  Serial.println(t);

  display.showNumberDecEx(t, (0x80 >> 0), false, 2, 0);
  display.setSegments(C, 2, 2);

  delay(100);
}

Explicación del código para termómetro DHT22 y TM1637:

  1. puede utilizar el sensor DHT11 haciendo cambios en el código;
  2. cuando se conectan varias pantallas al microcontrolador, cada módulo debe tener su propio nombre en el software y se deben especificar los pines de conexión.

Conclusión. Además del termómetro Arduino con módulo de pantalla de cuatro dígitos presentado en esta revisión, también puede encontrar el proyecto de termómetro LCD 1602 o la estación meteorológica con módulo bluetooth en nuestro sitio web. Si tienes alguna pregunta sobre cómo construir o programar un termómetro basado en un microcontrolador Arduino, no dudes en dejarla en los comentarios de este post.


Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *