Arduino(8): 4-digit 7-segment LED display showing current temperature

The main character of this implementation is a 4-digit 7-segment LED display, which is divided into a common anode and a common cathode, just like a single 7-segment display. If it is a common anode, the pin of the common anode is connected to the voltage terminal (5V). If it is a common cathode, the pin of the common cathode is connected to GND. The four common or common yang of the four-digit display is used to control which number to be displayed. The display mode is that only one number can be displayed at the same time. Just like watching a movie, the principle of visual persistence is used to make each number extremely In a short time, the illusion will make the eyes look brighter by 4 numbers.


The pins of the 4-digit 7-segment display are as follows:

   

[Material]

• Arduino UNO R3 x 1 
• 4-digit 7-segment LED display x 1 
• DHT-11 temperature and humidity sensor x 1 
• Breadboard x 1 
• Connection line xn



[Wiring diagram]

Pin assignment of Arduino Pin to 4-digit 7-segment display: 
Pin 2 -> A 
Pin 3 -> B 
Pin 4 -> C 
Pin 5 -> D 
Pin 6 -> 1 
Pin 7 -> F 
Pin 8 -> G 
Pin 9 -> 4 
Pin 10 -> 3 
Pin 11 -> 2 
Pin 12 -> E




[Code]

The following is a common anode display program. If it is a common cathode, change the potential HIGH to LOW and LOW to HIGH.

#include <Adafruit_Sensor.h>
#include <DHT.h>

#define DHT11_PIN A0    // 連接DHT11 的Pin
#define DHTTYPE DHT11   // DHT 11
DHT dht(DHT11_PIN, DHTTYPE);
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 12;
int f = 7;
int g = 8;
int GND1 = 6;
int GND2 = 11;
int GND3 = 10;
int GND4 = 9;
int dig1 = 0;
int dig2 = 0;
int dig3 = 0;
int dig4 = 0;
int Temp;
int Humi;
int i;
int j;
void setup()
{
  dht.begin();
  
  for(int x = 2; x < 13; x++) {
    pinMode(x,OUTPUT);
  }
}
void loop()
{
  // show temperature
  Temp = dht.readTemperature();
  for (int i = 1; i <= 500; i++)
  {
    dig1 = Temp / 10;
    dig2 = Temp - (dig1 * 10);
    dig3 = 10;
    dig4 = 11;
  
    digitalWrite( GND4, HIGH);    // 4
    DisplayNumber(dig4);
    delay(4);
    digitalWrite( GND4, LOW);

    digitalWrite( GND3, HIGH);    // 3
    DisplayNumber(dig3);
    delay(4);
    digitalWrite( GND3, LOW);

    digitalWrite( GND2, HIGH);   // 2
    DisplayNumber(dig2);
    delay(4);
    digitalWrite( GND2, LOW);
    digitalWrite( GND1, HIGH);   // 1
    DisplayNumber(dig1);
    delay(4);
    digitalWrite( GND1, LOW);

 }   
  // show humidity
  Humi = dht.readHumidity();
  for (int j = 1; j <= 500; j++)
  {
    dig1 = Humi / 10;
    dig2 = Humi - (dig1 * 10);
    dig3 =  12;
    dig4 = 12;
   
    digitalWrite( GND4, HIGH);    // 4
    DisplayNumber(dig4);
    delay(4);
    digitalWrite( GND4, LOW);

    digitalWrite( GND3, HIGH);    // 3
    DisplayNumber(dig3);
    delay(4);
    digitalWrite( GND3, LOW);

    digitalWrite( GND2, HIGH);   // 2
    DisplayNumber(dig2);
    delay(4);
    digitalWrite( GND2, LOW);

    digitalWrite( GND1, HIGH);   // 1
    DisplayNumber(dig1);
    delay(4);
    digitalWrite( GND1, LOW);
}
}
void DisplayNumber(int x) {
  switch (x) {
    case 0: zero(); break;
    case 1: one(); break;
    case 2: two(); break;
    case 3: three(); break;
    case 4: four(); break;
    case 5: five(); break;
    case 6: six(); break;
    case 7: seven(); break;
    case 8: eight(); break;
    case 9: nine(); break;
    case 10: o(); break;
    case 11: C(); break;
    case 12: oo(); break;
  }
}

void zero()
{
  digitalWrite( a, LOW);
  digitalWrite( b, LOW);
  digitalWrite( c, LOW);
  digitalWrite( d, LOW);
  digitalWrite( e, LOW);
  digitalWrite( f, LOW);
  digitalWrite( g, HIGH);
}

void one()
{
  digitalWrite( a, HIGH);
  digitalWrite( b, LOW);
  digitalWrite( c, LOW);
  digitalWrite( d, HIGH);
  digitalWrite( e, HIGH);
  digitalWrite( f, HIGH);
  digitalWrite( g, HIGH);
}

void two()
{
  digitalWrite( a, LOW);
  digitalWrite( b, LOW);
  digitalWrite( c, HIGH);
  digitalWrite( d, LOW);
  digitalWrite( e, LOW);
  digitalWrite( f, HIGH);
  digitalWrite( g, LOW);
}

void three()
{
  digitalWrite( a, LOW);
  digitalWrite( b, LOW);
  digitalWrite( c, LOW);
  digitalWrite( d, LOW);
  digitalWrite( e, HIGH);
  digitalWrite( f, HIGH);
  digitalWrite( g, LOW);
}

void four()
{
  digitalWrite( a, HIGH);
  digitalWrite( b, LOW);
  digitalWrite( c, LOW);
  digitalWrite( d, HIGH);
  digitalWrite( e, HIGH);
  digitalWrite( f, LOW);
  digitalWrite( g, LOW);
}

void five()
{
  digitalWrite( a, LOW);
  digitalWrite( b, HIGH);
  digitalWrite( c, LOW);
  digitalWrite( d, LOW);
  digitalWrite( e, HIGH);
  digitalWrite( f, LOW);
  digitalWrite( g, LOW);
}

void six()
{
  digitalWrite( a, LOW);
  digitalWrite( b, HIGH);
  digitalWrite( c, LOW);
  digitalWrite( d, LOW);
  digitalWrite( e, LOW);
  digitalWrite( f, LOW);
  digitalWrite( g, LOW);
}

void seven()
{
  digitalWrite( a, LOW);
  digitalWrite( b, LOW);
  digitalWrite( c, LOW);
  digitalWrite( d, HIGH);
  digitalWrite( e, HIGH);
  digitalWrite( f, HIGH);
  digitalWrite( g, HIGH);
}

void eight()
{
  digitalWrite( a, LOW);
  digitalWrite( b, LOW);
  digitalWrite( c, LOW);
  digitalWrite( d, LOW);
  digitalWrite( e, LOW);
  digitalWrite( f, LOW);
  digitalWrite( g, LOW);
}

void nine()
{
  digitalWrite( a, LOW);
  digitalWrite( b, LOW);
  digitalWrite( c, LOW);
  digitalWrite( d, LOW);
  digitalWrite( e, HIGH);
  digitalWrite( f, LOW);
  digitalWrite( g, LOW);
}
void o()
{
  digitalWrite( a, LOW);
  digitalWrite( b, LOW);
  digitalWrite( c, HIGH);
  digitalWrite( d, HIGH);
  digitalWrite( e, HIGH);
  digitalWrite( f, LOW);
  digitalWrite( g, LOW);
}

void C()
{
  digitalWrite( a, LOW);
  digitalWrite( b, HIGH);
  digitalWrite( c, HIGH);
  digitalWrite( d, LOW);
  digitalWrite( e, LOW);
  digitalWrite( f, LOW);
  digitalWrite( g, HIGH);
}
void oo()
{
  digitalWrite( a, HIGH);
  digitalWrite( b, HIGH);
  digitalWrite( c, LOW);
  digitalWrite( d, LOW);
  digitalWrite( e, LOW);
  digitalWrite( f, HIGH);
  digitalWrite( g, LOW);
}


[Results]

The top photo shows the temperature and the bottom image shows the humidity.


[Reference]

Great Projects: Temperature and Humidity Displayed on 4 Digit 7 segment

Post a Comment

Previous Post Next Post