Components and supplies
Resistor 10k ohm
General Purpose Transistor NPN
Breadboard (generic)
Arduino UNO
7 segment Display (common cathode )
Buzzer
Resistor 221 ohm
Pushbutton switch 12mm
Project description
Code
Countdown
arduino
1/*Countdown with buzzer*/ 2 3#define button 10 //button Pin 4#define buz 11 //buzzer Pin 5#define pin_tens 13 //tens Pin, this pin control the tens 6#define pin_unit 12 //unit Pin, this pin control the unit 7#define start 9 //start Pin 8#define reset A0 //reset Pin 9 10//Variables 11int timee = 0; 12int unit = 0, tens = 0; 13unsigned long time_countdown = 0; 14 15//display segment 16int a = 2; //pin 7 of the display 17int b = 3; //pin 6 18int c = 4; //pin 4 19int d = 5; //pin 2 20int e = 6; //pin 1 21int f = 7; //pin 9 22int g = 8; //pin 10 23 24void setup() { 25 pinMode(button, INPUT); 26 pinMode(reset, INPUT); 27 pinMode(start, INPUT); 28 pinMode(buz, OUTPUT); 29 pinMode(a, OUTPUT); 30 pinMode(b, OUTPUT); 31 pinMode(c, OUTPUT); 32 pinMode(d, OUTPUT); 33 pinMode(e, OUTPUT); 34 pinMode(f, OUTPUT); 35 pinMode(g, OUTPUT); 36} 37 38//This function display the number with a combination of segments for each number 39void print_number(int n) { 40 switch (n) { 41 case 0: //number zero 42 digitalWrite(a, HIGH); 43 digitalWrite(b, HIGH); 44 digitalWrite(c, HIGH); 45 digitalWrite(d, HIGH); 46 digitalWrite(e, HIGH); 47 digitalWrite(f, HIGH); 48 digitalWrite(g, LOW); 49 break; 50 case 1: //number one 51 digitalWrite(a, LOW); 52 digitalWrite(b, HIGH); 53 digitalWrite(c, HIGH); 54 digitalWrite(d, LOW); 55 digitalWrite(e, LOW); 56 digitalWrite(f, LOW); 57 digitalWrite(g, LOW); 58 break; 59 case 2: //number two 60 digitalWrite(a, HIGH); 61 digitalWrite(b, HIGH); 62 digitalWrite(c, LOW); 63 digitalWrite(d, HIGH); 64 digitalWrite(e, HIGH); 65 digitalWrite(f, LOW); 66 digitalWrite(g, HIGH); 67 break; 68 case 3: //number three 69 digitalWrite(a, HIGH); 70 digitalWrite(b, HIGH); 71 digitalWrite(c, HIGH); 72 digitalWrite(d, HIGH); 73 digitalWrite(e, LOW); 74 digitalWrite(f, LOW); 75 digitalWrite(g, HIGH); 76 break; 77 case 4: //number four 78 digitalWrite(a, LOW); 79 digitalWrite(b, HIGH); 80 digitalWrite(c, HIGH); 81 digitalWrite(d, LOW); 82 digitalWrite(e, LOW); 83 digitalWrite(f, HIGH); 84 digitalWrite(g, HIGH); 85 break; 86 case 5: //number five 87 digitalWrite(a, HIGH); 88 digitalWrite(b, LOW); 89 digitalWrite(c, HIGH); 90 digitalWrite(d, HIGH); 91 digitalWrite(e, LOW); 92 digitalWrite(f, HIGH); 93 digitalWrite(g, HIGH); 94 break; 95 case 6: //number six 96 digitalWrite(a, HIGH); 97 digitalWrite(b, LOW); 98 digitalWrite(c, HIGH); 99 digitalWrite(d, HIGH); 100 digitalWrite(e, HIGH); 101 digitalWrite(f, HIGH); 102 digitalWrite(g, HIGH); 103 break; 104 case 7: //number seven 105 digitalWrite(a, HIGH); 106 digitalWrite(b, HIGH); 107 digitalWrite(c, HIGH); 108 digitalWrite(d, LOW); 109 digitalWrite(e, LOW); 110 digitalWrite(f, LOW); 111 digitalWrite(g, LOW); 112 break; 113 case 8: //number eight 114 digitalWrite(a, HIGH); 115 digitalWrite(b, HIGH); 116 digitalWrite(c, HIGH); 117 digitalWrite(d, HIGH); 118 digitalWrite(e, HIGH); 119 digitalWrite(f, HIGH); 120 digitalWrite(g, HIGH); 121 break; 122 case 9: //number nine 123 digitalWrite(a, HIGH); 124 digitalWrite(b, HIGH); 125 digitalWrite(c, HIGH); 126 digitalWrite(d, LOW); 127 digitalWrite(e, LOW); 128 digitalWrite(f, HIGH); 129 digitalWrite(g, HIGH); 130 break; 131 } 132} 133 134void loop() { 135 if(digitalRead(reset) == LOW){ //If you push the zero button, you reset the time 136 delay(10); 137 timee = 0; 138 } 139 if (digitalRead(button) == LOW) { //If you push the first botton the time rises up 140 timee = timee + 1; 141 if (timee == 100) timee = 0; //time max = 99, if time == 100 -> time becomes 0 142 delay(150); 143 } 144 //separation between unit and tens 145 tens = timee / 10; 146 unit = timee - (tens * 10); 147 148 digitalWrite(pin_tens, HIGH); //active the tens display 149 digitalWrite(pin_unit, LOW); //disable the unit display 150 if (tens != 0) { //If tenses are == zero the tenses'display stay off 151 print_number(tens); //Display the tens 152 } 153 else digitalWrite(pin_tens, LOW); 154 delay(1); 155 digitalWrite(pin_tens, LOW); 156 digitalWrite(pin_unit, LOW); 157 delay(2); 158 digitalWrite(pin_tens, LOW); 159 digitalWrite(pin_unit, HIGH); 160 print_number(unit); //Display the unit 161 delay(1); 162 digitalWrite(pin_tens, LOW); 163 digitalWrite(pin_unit, LOW); 164 delay(2); 165 166 if (digitalRead(start) == LOW) { //If the start button is pressed the time go down 167 time_countdown = millis(); 168 while (timee > 0) { 169 tens = timee / 10; 170 unit = timee - (tens * 10); 171 digitalWrite(pin_tens, HIGH); 172 digitalWrite(pin_unit, LOW); 173 if (tens != 0) { 174 print_number(tens); //Display the tens 175 } 176 else digitalWrite(pin_tens, LOW); 177 delay(1); 178 digitalWrite(pin_tens, LOW); 179 digitalWrite(pin_unit, LOW); 180 delay(2); 181 digitalWrite(pin_tens, LOW); 182 digitalWrite(pin_unit, HIGH); 183 print_number(unit); //Display the unit 184 delay(1); 185 digitalWrite(pin_tens, LOW); 186 digitalWrite(pin_unit, LOW); 187 delay(2); 188 if (millis() - time_countdown >= 998) { //The while loop ends when 'timee' become zero 189 timee = timee - 1; 190 time_countdown = millis(); 191 } 192 if (timee == 0) { //if time arrive to zero the buzzer play and display zero 193 int i; 194 digitalWrite(a, HIGH); 195 digitalWrite(b, HIGH); 196 digitalWrite(c, HIGH); 197 digitalWrite(d, HIGH); 198 digitalWrite(e, HIGH); 199 digitalWrite(f, HIGH); 200 digitalWrite(g, LOW); 201 digitalWrite(pin_unit, HIGH); 202 for (i = 0; i < 10; i++) { 203 analogWrite(buz, 240); 204 delay(100); 205 digitalWrite(buz, LOW); 206 delay(100); 207 } 208 digitalWrite(a, LOW); 209 digitalWrite(b, LOW); 210 digitalWrite(c, LOW); 211 digitalWrite(d, LOW); 212 digitalWrite(e, LOW); 213 digitalWrite(f, LOW); 214 digitalWrite(g, LOW); 215 } 216 } 217 218 } 219} 220
Downloadable files
layout.jpg
layout.jpg
connection diagram
connection diagram
layout.jpg
layout.jpg
Documentation
Countdown
Countdown
Countdown
Countdown
Countdown
Countdown
Comments
Only logged in users can leave comments
Marcazzan_M
0 Followers
•0 Projects
Table of contents
Intro
21
0