7 Segment Display (6,9 Inch)

The display is 6,9 inch big (150x90 mm) and it's designed to be hung on the wall.
17
101
1
1323
updated August 6, 2023

Description

PDF

The display is 6,9 inch big (150x90 mm) and it's designed to hang it on the wall.
If you print four big and one small piece as I did you can use it as an watch.

If you want to put two displays together you have to glue them together.

 

ELECTRONICS:

1x Arduino NANO

1x Real Time Clock RTC DS3231 

1x Active Buzzer

86x 5mm LED's (color of your choice)

 

Installation:

  1. You have to print out your variation of displays.
  2. Push the LED's in the holes of the case
  3. Put the cover on the case
  4. Wire the LED's ground from each segment to a different digital output of the Arduino
  5. Wire all the same pieces of the number to the same digital output (e.g. the top LED's of the first segment to the top LED's of the second segment and so on…)
  6. Upload the code to the Arduino and you'r good to go :)

 

You can download the code in “Files” or copy it down below:

#include "SevSeg.h"
#include "RTClib.h"

SevSeg sevseg; //Instantiate a seven segment controller object
RTC_DS1307 rtc;

bool pnkt = false;
unsigned long secprev = 0;
unsigned long minprev = 0;
unsigned int pausen[12] = {475,525,580,635,700,755,805,855,905,965,1015,1065};
bool count = true;
int count2 = 100;
int bispause;
int BPS = 150;

void setup() {
  Serial.begin(57600);
  while (!Serial);
  if (! rtc.begin()) {
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (1) delay(10);
  }
  byte numDigits = 4;
  byte digitPins[] = {5, 4, 3, 2};
  byte segmentPins[] = {6, 7, 8, 9, 10, 11, 12};
  bool resistorsOnSegments = true; // 'false' means resistors are on digit pins
  byte hardwareConfig = N_TRANSISTORS; // See README.md for options
  bool updateWithDelays = false; // Default 'false' is Recommended
  bool leadingZeros = false; // Use 'true' if you'd like to keep the leading zeros
  bool disableDecPoint = true; // Use 'true' if your decimal point doesn't exist or isn't connected
  pinMode(13, OUTPUT);

  //rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));     //RTC time adjust (Y, M, D, H, M, S)
  
  sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments,
  updateWithDelays, leadingZeros, disableDecPoint);
  sevseg.setBrightness(100);
  amogus();
  amogus(); 
  amogus(); 
}

void loop() {
  DateTime time = rtc.now();
  
  if(time.second() != secprev) {   //every second
    count2++;
    secprev = time.second();
    
    if(count2 >= 20 && count2 < 30 && bispause < 100){
      digitalWrite(13, LOW);
      sevseg.setNumber(bispause);
    }
    else{
      pnkt = !pnkt;
      if(pnkt){
        digitalWrite(13, HIGH);
      }
      else{
        digitalWrite(13, LOW);
      }
      sevseg.setNumber(time.hour()*100+time.minute());
    }
  }

  if(time.minute() != minprev){
    minprev = time.minute();
    bispause = 100;
    for(int i = 0; i < sizeof(pausen); i++){
        if(pausen[i] - time.hour()*60 - time.minute() > 0 && pausen[i] - time.hour()*60 - time.minute() < bispause){  
          bispause = pausen[i] - time.hour()*60 - time.minute();
        }
        if(pausen[i] == time.hour()*60 + time.minute()){
          amogus();  
        }
      }
    count2 = 0;  
  }

  sevseg.refreshDisplay(); // Must run repeatedly
}

void amogus(){
  for(int i=6; i<=12; i++){
    digitalWrite(i, HIGH);
  } 
  digitalWrite(9, LOW);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  tone(13, 523);     //C5
  digitalWrite(2, HIGH);
  delay(BPS);
  noTone(13);
  delay(BPS);
  tone(13, 622);     //Eb5
  digitalWrite(3, HIGH);
  digitalWrite(2, LOW);
  delay(BPS);
  noTone(13);
  delay(BPS);
  tone(13, 698);     //F5
  digitalWrite(4, HIGH);
  digitalWrite(3, LOW);
  delay(BPS);
  noTone(13);
  delay(BPS);
  tone(13, 740);     //Gb5
  digitalWrite(5, HIGH);
  digitalWrite(4, LOW);
  delay(BPS);
  noTone(13);
  delay(BPS);
  tone(13, 698);     //F5
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  delay(BPS);
  noTone(13);
  delay(BPS);
  tone(13, 622);     //Eb5
  digitalWrite(3, HIGH);
  digitalWrite(4, LOW);
  delay(BPS);
  noTone(13);
  delay(BPS);
  tone(13, 523);     //C5
  digitalWrite(2, HIGH);
  digitalWrite(3, LOW);
  delay(3*BPS);
  noTone(13);
  delay(3*BPS);
  tone(13, 466);     //B4
  digitalWrite(3, HIGH);
  digitalWrite(2, LOW);
  delay(BPS/2);
  noTone(13);
  delay(BPS/2);
  tone(13, 587);     //D5
  digitalWrite(4, HIGH);
  digitalWrite(3, LOW);
  delay(BPS/2);
  noTone(13);
  delay(BPS/2);
  tone(13, 523);     //C5
  digitalWrite(5, HIGH);
  digitalWrite(4, LOW);
  delay(3*BPS);
  noTone(13);
  delay(2*BPS);
  noTone(13);
  tone(13, 98);      //G3
  digitalWrite(4, HIGH);
  digitalWrite(5, LOW);
  delay(BPS);
  noTone(13);
  delay(BPS);
  tone(13, 131);     //C3
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);  
  delay(2*BPS);
  noTone(13);
  delay(500); 
}

 

 

Tags



Model origin

The author marked this model as their own original creation.

License


Highlighted models from creator

View more