En un Arduino, es posible conectar una multitud de sensores para obtener información sobre el entorno en el que se encuentra el Arduino. Por lo tanto, el propósito de este artículo es conectar un sensor de temperatura y otro sensor de luminancia a un Arduino para obtener la información del entorno e imprimirla en una pantalla LCD conectada al microcontrolador.
Con este proyecto, será posible desarrollar el conocimiento de los sensores, pantallas y programación de Arduino. La pantalla LCD utilizada se puede utilizar de la misma manera en una multitud de otros proyectos para presentar información sobre ellos.
Los termómetros son dispositivos que existen desde el siglo XVI y se utilizan para medir la temperatura. La invención de este dispositivo se atribuye a Galileo Galilei, que fabricó un termómetro que era un tubo con aire y agua, y el aumento de la temperatura dilató el aire y, en consecuencia, cambió el nivel del agua, mostrando así la temperatura.
Por lo tanto, los termómetros más comunes y más utilizados se basan en la expansión de mercurio o una cuchilla bimetálica, como se muestra a continuación:
o
LDR
Este componente funciona de la misma manera que una resistencia, pero con una propiedad ligeramente diferente: el valor de su resistencia depende de la luz que cae sobre él.
Esta es la imagen de un LDR, puede encontrarla en diferentes tamaños en el mercado.
Usando un multímetro en la escala de resistencia, encontrará los valores medidos por él. Cuando hay mucha luz, la resistencia será menor, mientras que en lugares oscuros, la resistencia será mucho mayor.
Simbología LDR
Sensor de temperatura y luz con Arduino
Por lo tanto, construiremos un proyecto muy simple con el sensor de temperatura y brillo.
Vamos a trabajar con un sensor de luz y un sensor de temperatura que envían los valores leídos a un Arduino, y una pantalla LCD que muestra los valores medidos. También tenemos dos potenciómetros para ajustar el brillo de la pantalla LCD. Vea la lista de materiales a continuación:
- Un arduino;
- Un protoboard de al menos 840 pines;
- Pantalla LCD de 16 × 2;
- 2 potenciómetros;
- LM-35;
- Fotorresistencia LDR;
- Una resistencia de 10k ohmios;
- Varios puentes.
Comprender cómo funciona la pantalla LCD
La pantalla LCD que utilizamos tiene 16 pines. Cada pin tiene una función, que verá en la tabla a continuación.
Por lo que busqué en Internet, estos pines siguen un patrón, por lo que en todas las pantallas LCD de 16 × 2 puede seguir la tabla. En caso de duda, ¡mire siempre la hoja de datos de su modelo LCD para estar seguro!
Haciendo conexiones con el Arduino
Ahora es el momento de conectar todos los componentes. Entonces, vea el diagrama a continuación sobre cómo debería verse todo:
Para hacer este esquema, se utilizó el programa Fritizing. Vale la pena probarlo, ya que crear diagramas de circuitos con Arduino en el protoboard funciona muy bien.
Los dos potenciómetros que utilizamos son opcionales. Entonces, si observa la tabla de pines LCD, verá que uno de ellos sirve para controlar el brillo y el otro el contraste. Sin embargo, si solo se usa el potenciómetro para ajustar el brillo, conectado al penúltimo pin de la pantalla, todo debería funcionar correctamente.
Para la programación, use el siguiente código:
//Arduino com Sensor de Luz e Temperatura
#include "LiquidCrystal.h"
#include "Limits.h"
const int sensorLuz = 0; //pino que conectamos o fotoresistor
const int sensorTemp = 1; //pino que conectamos o lm35
int valorSensorLuz = 0; //para ler o valor do fotoresistor
int valorSensorTemp = 0; //para ler o valor do lm35
int menorValorTemp = INT_MAX; //menor valor da temperatura
LiquidCrystal lcd(9, 8, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2); //estamos usando um LCD de 16x2
}
void loop() {
//Leitura do valor de luz
valorSensorLuz = analogRead(sensorLuz);
//de 8 leituras, usaremos o menor valor
menorValorTemp = INT_MAX;
for (int i = 1; i <= 8; i++) {
//Lendo o valor do sensor de temperatura.
valorSensorTemp = analogRead(sensorTemp);
//convertendo o valor
valorSensorTemp *= 0.028;
if (valorSensorTemp < menorValorTemp) {
menorValorTemp = valorSensorTemp;
}
delay(150);
}
lcd.clear(); //limpa o display do LCD.
lcd.print("Temp: "); //imprime a string no display do LCD.
lcd.print(menorValorTemp);
lcd.write(B11011111); //Simbolo de graus celsius
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Luz: "); //imprime a string no display do LCD.
lcd.print(valorSensorLuz);
delay(2000); //aguarda 2 segundos
}
Suba el código al Arduino, debería mostrar la temperatura y el brillo en la pantalla. Por lo tanto, el valor de brillo va de 0 a 1020, y la temperatura se dará en grados centígrados.
¿Quieres aprender más sobre electrónica?