Interfacing a 4-Digit 7-Segment Display
How to use a 4x7-segment LED display with an Arduino Uno.
Components and supplies
1
Arduino UNO
Apps and platforms
1
Arduino IDE
Project description
Code
Untitled file
arduino
1#include <SevSeg.h> 2 3int pinA = 2;int pinB = 3;int pinC = 4;int pinD = 5; 4int pinE = 11;int pinF = 12;int pinG = 13; 5int pinDP = 6;int D1 = 7;int D2 = 8;int D3 = 9; int D4 = 10; 6 7void setup() {//set all segments & digits as outputs 8pinMode(pinA, OUTPUT); 9pinMode(pinB, OUTPUT); 10pinMode(pinC, OUTPUT); 11pinMode(pinD, OUTPUT); 12pinMode(pinE, OUTPUT); 13pinMode(pinF, OUTPUT); 14pinMode(pinG, OUTPUT); 15pinMode(D1, OUTPUT); 16pinMode(D2, OUTPUT); 17pinMode(D3, OUTPUT); 18pinMode(D4, OUTPUT); 19} 20 21void loop() { 22 23 digit1();zero();delay(500); 24 digit2();one();delay(500); 25 digit3();two();delay(500); 26 digit4();three();delay(500); 27 digit3();four();delay(500); 28 digit2();five();delay(500); 29 digit1();six();delay(500); 30 digit2();seven();delay(500); 31 digit3();eight();delay(500); 32 digit4();nine();delay(500); 33 34 all4Digits(); 35 allNumbers(); 36 37} 38 39 40//functions representing numbers 0-9 41void zero(){ 42digitalWrite(pinA, LOW); 43digitalWrite(pinB, LOW); 44digitalWrite(pinC, LOW); 45digitalWrite(pinD, LOW); 46digitalWrite(pinE, LOW); 47digitalWrite(pinF, LOW); 48digitalWrite(pinG, HIGH); 49 } 50 51 void one(){ 52digitalWrite(pinA, HIGH); 53digitalWrite(pinB, LOW); 54digitalWrite(pinC, LOW); 55digitalWrite(pinD, HIGH); 56digitalWrite(pinE, HIGH); 57digitalWrite(pinF, HIGH); 58digitalWrite(pinG, HIGH); 59} 60 61void two(){ 62 digitalWrite(pinA, LOW); 63digitalWrite(pinB, LOW); 64digitalWrite(pinC, HIGH); 65digitalWrite(pinD, LOW); 66digitalWrite(pinE, LOW); 67digitalWrite(pinF, HIGH); 68digitalWrite(pinG, LOW); 69 } 70 71 void three(){ 72 digitalWrite(pinA, LOW); 73digitalWrite(pinB, LOW); 74digitalWrite(pinC, LOW); 75digitalWrite(pinD, LOW); 76digitalWrite(pinE, HIGH); 77digitalWrite(pinF, HIGH); 78digitalWrite(pinG, LOW); 79 } 80 81 void four(){ 82 digitalWrite(pinA, HIGH); 83digitalWrite(pinB, LOW); 84digitalWrite(pinC, LOW); 85digitalWrite(pinD, HIGH); 86digitalWrite(pinE, HIGH); 87digitalWrite(pinF, LOW); 88digitalWrite(pinG, LOW); 89 } 90 91 void five(){ 92 digitalWrite(pinA, LOW); 93digitalWrite(pinB, HIGH); 94digitalWrite(pinC, LOW); 95digitalWrite(pinD, LOW); 96digitalWrite(pinE, HIGH); 97digitalWrite(pinF, LOW); 98digitalWrite(pinG, LOW); 99 } 100 101 void six(){ 102 digitalWrite(pinA, LOW); 103digitalWrite(pinB, HIGH); 104digitalWrite(pinC, LOW); 105digitalWrite(pinD, LOW); 106digitalWrite(pinE, LOW); 107digitalWrite(pinF, LOW); 108digitalWrite(pinG, LOW); 109 } 110 111 void seven(){ 112 digitalWrite(pinA, LOW); 113digitalWrite(pinB, LOW); 114digitalWrite(pinC, LOW); 115digitalWrite(pinD, HIGH); 116digitalWrite(pinE, HIGH); 117digitalWrite(pinF, HIGH); 118digitalWrite(pinG, HIGH); 119 } 120 121 void eight(){ 122 digitalWrite(pinA, LOW); 123digitalWrite(pinB, LOW); 124digitalWrite(pinC, LOW); 125digitalWrite(pinD, LOW); 126digitalWrite(pinE, LOW); 127digitalWrite(pinF, LOW); 128digitalWrite(pinG, LOW); 129 } 130 131 void nine(){ 132 digitalWrite(pinA, LOW); 133digitalWrite(pinB, LOW); 134digitalWrite(pinC, LOW); 135digitalWrite(pinD, HIGH); 136digitalWrite(pinE, HIGH); 137digitalWrite(pinF, LOW); 138digitalWrite(pinG, LOW); 139 } 140 141 void allNumbers(){ 142 one();delay(500); 143two();delay(500); 144three();delay(500); 145four();delay(500); 146five();delay(500); 147six();delay(500); 148seven();delay(500); 149eight();delay(500); 150nine();delay(500); 151 } 152 153 void turnOffAllSegments(){ 154 digitalWrite(pinA, LOW); 155digitalWrite(pinB, LOW); 156digitalWrite(pinC, LOW); 157digitalWrite(pinD, LOW); 158digitalWrite(pinE, LOW); 159digitalWrite(pinF, LOW); 160digitalWrite(pinG, LOW); 161 } 162 163 164 //functions to select individual digits on the display 165 void digit1(){ 166 digitalWrite(D1, HIGH); 167digitalWrite(D2, LOW); 168digitalWrite(D3, LOW); 169digitalWrite(D4, LOW); 170 } 171 172 void digit2(){ 173 digitalWrite(D1, LOW); 174digitalWrite(D2, HIGH); 175digitalWrite(D3, LOW); 176digitalWrite(D4, LOW); 177 } 178 179 void digit3(){ 180 digitalWrite(D1, LOW); 181digitalWrite(D2, LOW); 182digitalWrite(D3, HIGH); 183digitalWrite(D4, LOW); 184 } 185 186 void digit4(){ 187 digitalWrite(D1, LOW); 188digitalWrite(D2, LOW); 189digitalWrite(D3, LOW); 190digitalWrite(D4, HIGH); 191 } 192 193 void all4Digits(){ 194 digitalWrite(D1, HIGH); 195digitalWrite(D2, HIGH); 196digitalWrite(D3, HIGH); 197digitalWrite(D4, HIGH); 198 } 199 200
Downloadable files
Schematics for 4x7 segment display
Schematics for 4x7 segment display
Schematics for 4x7 segment display
Schematics for 4x7 segment display
Comments
Only logged in users can leave comments