En el mundo de la electrónica DIY, Arduino sigue siendo una de las herramientas más populares y versátiles. En este artículo, te mostraremos cómo puedes utilizar un display de 7 segmentos de 4 dígitos con ánodo común para visualizar la temperatura a través de tu placa Arduino. ¡Sigue leyendo para descubrir cómo llevar a cabo este interesante proyecto!
En este proyecto estoy mostrando la temperatura en una pantalla de 4 dígitos y 7 segmentos (ánodo común).
El sensor es el más barato que arduino-sensor-ultrasonico-con-led-y-zumbador-2/» title=»Arduino – sensor ultrasónico con LED y zumbador»>puedes encontrar, por lo que la temperatura cambia con bastante facilidad, por lo que la pantalla siempre muestra diferentes temperaturas. Pero la idea es aplicar este código a otros proyectos con displays de 7 segmentos que podría hacer más adelante. Para obtener más información sobre pantallas de 7 segmentos, consulte esta publicación.
Este proyecto es excelente para aprender sobre:
- Leer sensores (en este caso temperatura)
- Pantallas de 7 segmentos (pantallas de 7 segmentos de 4 dígitos)
- Registro de desplazamiento de 8 bits (74HC595)
- Practica el cableado
Piezas requeridas
- Arduino UNO – leer Los mejores kits de inicio de Arduino
- 1x sensor de temperatura (yo uso el LM335Z)
- 1x display de 7 segmentos y 4 dígitos (ánodo común)
- 1x registro de desplazamiento 74HC595 de 8 bits
- 8 resistencias de 220 ohmios
- 1x resistencia de 4700 ohmios
- 1x placa de pruebas (o dos)
- Cables de puente
Puedes utilizar los enlaces anteriores o ir directamente MakerAdvisor.com/tools ¡Para encontrar todas las piezas para tus proyectos al mejor precio!
Esquema
Esto también puede ayudarte con el cableado, ya que los esquemas que creé usando Fritizing eran un poco confusos. Este es el diagrama del circuito interno de la pantalla de 7 segmentos.
Básicamente, el pin 11 está conectado al QA, el pin 7 al QB y así sucesivamente…
Sube el código a continuación
/*
* Temperature Sensor Displayed on 4 Digit 7 segment common anode
* Created by Rui Santos, https://randomnerdtutorials.com
*/
const int digitPins[4] = {
4,5,6,7}; //4 common anode pins of the display
const int clockPin = 11; //74HC595 Pin 11
const int latchPin = 12; //74HC595 Pin 12
const int dataPin = 13; //74HC595 Pin 14
const int tempPin = A0; //temperature sensor pin
const byte digit[10] = //seven segment digits in bits
{
B00111111, //0
B00000110, //1
B01011011, //2
B01001111, //3
B01100110, //4
B01101101, //5
B01111101, //6
B00000111, //7
B01111111, //8
B01101111 //9
};
int digitBuffer[4] = {
0};
int digitScan = 0, flag=0, soft_scaler = 0;
;
float tempK, tempC, tempF, temp;
void setup(){
for(int i=0;i<4;i++)
{
pinMode(digitPins[i],OUTPUT);
}
pinMode(tempPin, INPUT);
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(tempPin, INPUT);
}
//writes the temperature on display
void updateDisp(){
for(byte j=0; j<4; j++)
digitalWrite(digitPins[j], LOW);
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, B11111111);
digitalWrite(latchPin, HIGH);
delayMicroseconds(100);
digitalWrite(digitPins[digitScan], HIGH);
digitalWrite(latchPin, LOW);
if(digitScan==2)
shiftOut(dataPin, clockPin, MSBFIRST, ~(digit[digitBuffer[digitScan]] | B10000000)); //print the decimal point on the 3rd digit
else
shiftOut(dataPin, clockPin, MSBFIRST, ~digit[digitBuffer[digitScan]]);
digitalWrite(latchPin, HIGH);
digitScan++;
if(digitScan>3) digitScan=0;
}
void loop(){
tempK = (((analogRead(tempPin)/ 1023.0) * 5.0) * 100.0);
//Converts Kelvin to Celsius minus 2.5 degrees error
tempC = tempK - 273.0;
tempF = ((tempK - 2.5) * 9 / 5) - 459.67;
//Celsius temperature display
tempC = int(tempC*100);
digitBuffer[3] = int(tempC)/1000;
digitBuffer[2] = (int(tempC)%1000)/100;
digitBuffer[1] = (int(tempC)%100)/10;
digitBuffer[0] = (int(tempC)%100)%10;
updateDisp();
delay(2);
/*
//Fahrenheit temperature display
tempF = int(tempF*100);
digitBuffer[3] = int(tempF)/1000;
digitBuffer[2] = (int(tempF)%1000)/100;
digitBuffer[1] = (int(tempF)%100)/10;
digitBuffer[0] = (int(tempF)%100)%10;
updateDisp();
delay(2);
*/
}
Mira el vídeo de demostración
Gracias por leer. Puedes contactar conmigo dejando un comentario. Si te gusta esta publicación, probablemente también te gustarán las siguientes, así que apóyame suscribiéndote a mi blog y a mi blog. Sitio de Facebook.
Proyecto de Arduino: visualización de temperatura en display de 7 segmentos de 4 dígitos (ánodo común)
En este proyecto, mostraré la temperatura en un display de 7 segmentos de 4 dígitos (ánodo común).
El sensor utilizado es uno de los más económicos que se pueden encontrar, lo que hace que la temperatura cambie fácilmente y el display siempre muestre temperaturas diferentes. Sin embargo, la idea es aplicar este código a otros proyectos con displays de 7 segmentos que pueda hacer más adelante.
Este proyecto es excelente para aprender más sobre:
- Lectura de sensores (en este caso temperatura)
- Displays de 7 segmentos (displays de 7 segmentos de 4 dígitos)
- Registros de desplazamiento de 8 bits (74HC595)
- Práctica en conexión de circuitos
Partes requeridas
Para este proyecto, necesitarás los siguientes componentes:
- Arduino UNO
- Sensor de Temperatura (LM335Z)
- Display de 7 segmentos de 4 dígitos (ánodo común)
- Registro de desplazamiento de 8 bits 74HC595
- 8 Resistencias de 220 Ohm
- 1 Resistencia de 4700 Ohm
- 1 o 2 Protoboard
- Cables de conexión
Puedes encontrar todos estos componentes en MakerAdvisor a los mejores precios.
Esquemático
Este esquemático te ayudará en la conexión del circuito. Aquí tienes el diagrama interno del display de 7 segmentos:
Código
A continuación, tienes el código necesario para este proyecto:
código aquí
Video demostrativo
Mira este video para ver una demostración práctica de cómo funciona el proyecto:
¡Gracias por leer! Puedes contactarme dejando un comentario. Si te ha gustado este post, seguramente te gustarán los próximos, así que por favor, suscríbete a mi blog y a mi página de Facebook.