Components and supplies
Jumper wires (generic)
SparkFun 7-Segment Serial Display - Red
Breadboard (generic)
Arduino Mega 2560
USB-A to Mini-USB Cable
Apps and platforms
Arduino IDE
Project description
Code
The code
arduino
Use this code to run your countdown timer
1//7 segement pin number - 7 segement light - arduino pin number 2 3//pin 11 - A = 12 4//pin 7 - B = 10 5//pin 4 - C = 8 6//pin 2 - D = 7 7//pin 1 - E = 6 8//pin 10 - F = 11 9//pin 5 - G = 9 10 11//pin 3 is decimal 12 13/* 1412 11 10 9 8 7 15| | | | | | 16 A 17 --- 18F | | B 19 | G | 20 --- 21E | | C 22 | | 23 --- . dec 24 D 25| | | | | | 261 2 3 4 5 6 27*/ 28 29//pin 12 - first digit = 1 30//pin 9 - second digit = 2 31//pin 8 - third digit = 3 32//pin 6 fourth digit = 4 33 34const int a = 12; 35const int b = 10; 36const int c = 8; 37const int d = 7; 38const int e = 6; 39const int f = 11; 40const int g = 9; 41int p = 0; 42 43int startStopReset = 13; 44 45const int d1 =1; 46const int d2 =2; 47const int d3 =3; 48const int d4 =4; 49 50long n = 60000; //start time -> CAN CHANGE TO WHATEVER TIME YOU WANT 51int x = 100; 52int del = 55; //delay value 53 54void setup() 55{ 56 pinMode(d1, OUTPUT); 57 pinMode(d2, OUTPUT); 58 pinMode(d3, OUTPUT); 59 pinMode(d4, OUTPUT); 60 pinMode(a, OUTPUT); 61 pinMode(b, OUTPUT); 62 pinMode(c, OUTPUT); 63 pinMode(d, OUTPUT); 64 pinMode(e, OUTPUT); 65 pinMode(f, OUTPUT); 66 pinMode(g, OUTPUT); 67 pinMode(p, OUTPUT); 68 pinMode(startStopReset, INPUT); 69 digitalWrite(startStopReset, HIGH); 70} 71 72void loop() 73{ 74 digitalWrite (p, HIGH); 75 76 clearLEDs(); 77 pickDigit(1); 78 pickNumber((n/x/1000)%10); 79 delayMicroseconds(del); 80 81 clearLEDs(); 82 pickDigit(2); 83 pickNumber((n/x/100)%10); 84 delayMicroseconds(del); 85 86 clearLEDs(); 87 pickDigit(3); 88 dispDec(3); 89 pickNumber((n/x/10)%10); 90 delayMicroseconds(del); 91 92 clearLEDs(); 93 pickDigit(4); 94 pickNumber(n/x%10); 95 delayMicroseconds(del); 96 97 n--; //'n++' for stopwatch 98 99 if (digitalRead(13) == LOW) 100 { 101 n = 60000; //re-start time -> CHANGE TO WHATEVER TIME YOU ORIGONALLY SET (start time) 102 } 103} 104 105void pickDigit(int x) //changes digit 106{ 107 digitalWrite(d1, HIGH); 108 digitalWrite(d2, HIGH); 109 digitalWrite(d3, HIGH); 110 digitalWrite(d4, HIGH); 111 112 switch(x) 113 { 114 case 1: 115 digitalWrite(d1, LOW); 116 break; 117 case 2: 118 digitalWrite(d2, LOW); 119 break; 120 case 3: 121 digitalWrite(d3, LOW); 122 digitalWrite(p, HIGH); //new 123 break; 124 default: 125 digitalWrite(d4, LOW); 126 break; 127 } 128} 129 130void pickNumber(int x) //changes value of number 131{ 132 switch(x) 133 { 134 default: 135 zero(); 136 break; 137 case 1: 138 one(); 139 break; 140 case 2: 141 two(); 142 break; 143 case 3: 144 three(); 145 break; 146 case 4: 147 four(); 148 break; 149 case 5: 150 five(); 151 break; 152 case 6: 153 six(); 154 break; 155 case 7: 156 seven(); 157 break; 158 case 8: 159 eight(); 160 break; 161 case 9: 162 nine(); 163 break; 164 } 165} 166 167void dispDec(int x) 168{ 169 digitalWrite(p, LOW); 170} 171 172void clearLEDs() 173{ 174 digitalWrite(a, LOW); 175 digitalWrite(b, LOW); 176 digitalWrite(c, LOW); 177 digitalWrite(d, LOW); 178 digitalWrite(e, LOW); 179 digitalWrite(f, LOW); 180 digitalWrite(g, LOW); 181 digitalWrite(p, LOW); 182} 183 184void zero() 185{ 186 digitalWrite(a, HIGH); 187 digitalWrite(b, HIGH); 188 digitalWrite(c, HIGH); 189 digitalWrite(d, HIGH); 190 digitalWrite(e, HIGH); 191 digitalWrite(f, HIGH); 192 digitalWrite(g, LOW); 193} 194 195void one() 196{ 197 digitalWrite(a, LOW); 198 digitalWrite(b, HIGH); 199 digitalWrite(c, HIGH); 200 digitalWrite(d, LOW); 201 digitalWrite(e, LOW); 202 digitalWrite(f, LOW); 203 digitalWrite(g, LOW); 204} 205 206void two() 207{ 208 digitalWrite(a, HIGH); 209 digitalWrite(b, HIGH); 210 digitalWrite(c, LOW); 211 digitalWrite(d, HIGH); 212 digitalWrite(e, HIGH); 213 digitalWrite(f, LOW); 214 digitalWrite(g, HIGH); 215} 216 217void three() 218{ 219 digitalWrite(a, HIGH); 220 digitalWrite(b, HIGH); 221 digitalWrite(c, HIGH); 222 digitalWrite(d, HIGH); 223 digitalWrite(e, LOW); 224 digitalWrite(f, LOW); 225 digitalWrite(g, HIGH); 226} 227 228void four() 229{ 230 digitalWrite(a, LOW); 231 digitalWrite(b, HIGH); 232 digitalWrite(c, HIGH); 233 digitalWrite(d, LOW); 234 digitalWrite(e, LOW); 235 digitalWrite(f, HIGH); 236 digitalWrite(g, HIGH); 237} 238 239void five() 240{ 241 digitalWrite(a, HIGH); 242 digitalWrite(b, LOW); 243 digitalWrite(c, HIGH); 244 digitalWrite(d, HIGH); 245 digitalWrite(e, LOW); 246 digitalWrite(f, HIGH); 247 digitalWrite(g, HIGH); 248} 249 250void six() 251{ 252 digitalWrite(a, HIGH); 253 digitalWrite(b, LOW); 254 digitalWrite(c, HIGH); 255 digitalWrite(d, HIGH); 256 digitalWrite(e, HIGH); 257 digitalWrite(f, HIGH); 258 digitalWrite(g, HIGH); 259} 260 261void seven() 262{ 263 digitalWrite(a, HIGH); 264 digitalWrite(b, HIGH); 265 digitalWrite(c, HIGH); 266 digitalWrite(d, LOW); 267 digitalWrite(e, LOW); 268 digitalWrite(f, LOW); 269 digitalWrite(g, LOW); 270} 271 272void eight() 273{ 274 digitalWrite(a, HIGH); 275 digitalWrite(b, HIGH); 276 digitalWrite(c, HIGH); 277 digitalWrite(d, HIGH); 278 digitalWrite(e, HIGH); 279 digitalWrite(f, HIGH); 280 digitalWrite(g, HIGH); 281} 282 283void nine() 284{ 285 digitalWrite(a, HIGH); 286 digitalWrite(b, HIGH); 287 digitalWrite(c, HIGH); 288 digitalWrite(d, HIGH); 289 digitalWrite(e, LOW); 290 digitalWrite(f, HIGH); 291 digitalWrite(g, HIGH); 292}
Downloadable files
The schematic
Use this connection diagram to connect your 4 digit display to your arduino
The schematic
The schematic
Use this connection diagram to connect your 4 digit display to your arduino
The schematic
Comments
Only logged in users can leave comments