Skip to content

Instantly share code, notes, and snippets.

@tristanwietsma
Last active September 21, 2022 19:42
Show Gist options
  • Save tristanwietsma/5541510 to your computer and use it in GitHub Desktop.
Save tristanwietsma/5541510 to your computer and use it in GitHub Desktop.
Three digit LED control for Arduino Arduino sketch to control a 3 digit LED display (TOT-5361BE-D).
Connect the Arduino UNO pins "(x)" to the LED leads "-" as follows:
_________
| |
(1)-| ***** |-(11)
| * * * |
(2)-| ***** |-(10)
| |
(3)-| ***** |-(9)
| * * * |
(4)-| ***** |-(8)
| |
(5)-| ***** |-(7)
| * * * |
| ***** |-(6)
|_______|
View picture of working example at https://www.dropbox.com/sc/8b7aebeq2je8s09/i--Iy9BwY4
int segA = 10;
int segB = 6;
int segC = 4;
int segD = 2;
int segE = 1;
int segF = 9;
int segG = 5;
int pnt = 3;
int dig1 = 7;
int dig2 = 8;
int dig3 = 11;
void setup() {
for(int i=1; i<12; i++){
pinMode(i,OUTPUT);
}
}
void loop() {
DisplayNumber(123);
}
void DisplayNumber(int num) {
for(int digit = 3; digit > 0; digit--) {
SetDigit(digit);
DisplayDigit(num % 10);
num /= 10;
delayMicroseconds(500);
DisplayDigit(10);
SetDigit(0);
delayMicroseconds(20);
}
}
void SetDigit(int d) {
switch(d) {
case 0:
digitalWrite(dig1,LOW);
digitalWrite(dig2,LOW);
digitalWrite(dig3,LOW);
break;
case 1:
digitalWrite(dig1,LOW);
digitalWrite(dig2,LOW);
digitalWrite(dig3,HIGH);
break;
case 2:
digitalWrite(dig1,LOW);
digitalWrite(dig2,HIGH);
digitalWrite(dig3,LOW);
break;
case 3:
digitalWrite(dig1,HIGH);
digitalWrite(dig2,LOW);
digitalWrite(dig3,LOW);
break;
}
}
void DisplayDigit(int n) {
switch(n) {
case 1:
digitalWrite(segA,HIGH);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,HIGH);
break;
case 2:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,HIGH);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,HIGH);
digitalWrite(segG,LOW);
break;
case 3:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,LOW);
break;
case 4:
digitalWrite(segA,HIGH);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
break;
case 5:
digitalWrite(segA,LOW);
digitalWrite(segB,HIGH);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
break;
case 6:
digitalWrite(segA,LOW);
digitalWrite(segB,HIGH);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
break;
case 7:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,HIGH);
break;
case 8:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
break;
case 9:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,HIGH);
digitalWrite(segF,LOW);
digitalWrite(segG,LOW);
break;
case 0:
digitalWrite(segA,LOW);
digitalWrite(segB,LOW);
digitalWrite(segC,LOW);
digitalWrite(segD,LOW);
digitalWrite(segE,LOW);
digitalWrite(segF,LOW);
digitalWrite(segG,HIGH);
break;
case 10:
digitalWrite(segA,HIGH);
digitalWrite(segB,HIGH);
digitalWrite(segC,HIGH);
digitalWrite(segD,HIGH);
digitalWrite(segE,HIGH);
digitalWrite(segF,HIGH);
digitalWrite(segG,HIGH);
break;
}
digitalWrite(pnt,HIGH);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment