Skip to content

Instantly share code, notes, and snippets.

@MaverickEsq
Created April 10, 2022 11:38
Show Gist options
  • Save MaverickEsq/440bbab2fdbcd1990b9e3539c6c73e21 to your computer and use it in GitHub Desktop.
Save MaverickEsq/440bbab2fdbcd1990b9e3539c6c73e21 to your computer and use it in GitHub Desktop.
function to print upside down on a 7 segment display
// Function to display rotated characters
// on a 7 segment display to go with TM1637Display
//
// Usage:
// dispArr(int[0,4]);
//
// eg:
// dispArr(104);
// Create an array to send to the display
// from flipped characters
void dispArr(int n) {
// Make a blank display
uint8_t Disp[] = {0x00,0x00,0x00,0x00};
char input [4];
// Pad with 0s
sprintf(input, "%04d", n);
for (int i = 3; i >= 0; i--) {
// Make an upside down pattern for each number
Disp[i] = char2segments(input[3-i]);
}
tm1637.setSegments(Disp);
}
// Map of segment patterns to characters
// This one has been rotated 180.
uint8_t char2segments(char c) {
switch (c) {
case ' ' : return 0x00;
case '-' : return 0x40;
case '0' : return 0x3F;
case '1' : return 0x30;
case '2' : return 0x5B;
case '3' : return 0x79;
case '4' : return 0x74;
case '5' : return 0x6D;
case '6' : return 0x6F;
case '7' : return 0x38;
case '8' : return 0x7F;
case '9' : return 0x7D;
case 'A' : return 0x7E;
case 'B' : return 0x7F;
case 'C' : return 0x0F;
case 'D' : return 0x3F;
case 'E' : return 0x4F;
case 'F' : return 0x4E;
case 'G' : return 0x6F;
case 'H' : return 0x76;
case 'I' : return 0x30;
case 'J' : return 0x3B;
case 'K' : return 0x76;
case 'L' : return 0x07;
case 'O' : return 0x3F;
case 'P' : return 0x5E;
case 'S' : return 0x6D;
case 'U' : return 0x37;
case 'V' : return 0x37;
case 'Y' : return 0x74;
case 'Z' : return 0x5B;
case '_' : return 0x01;
case 'b' : return 0x67;
case 'c' : return 0x43;
case 'd' : return 0x73;
case 'h' : return 0x66;
case 'l' : return 0x30;
case 'n' : return 0x62;
case 'o' : return 0x63;
case 'r' : return 0x42;
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment