Easy Arduino Digital Dice
This project allows you to create a really simple digital dice using a one-digit seven segment display and a photoresistor.
Components and supplies
1
7 Segment LED Display, Red
1
Photo resistor
8
Resistor 220 ohm
1
Breadboard (generic)
1
Jumper wires (generic)
1
Resistor 10k ohm
1
Arduino UNO
Apps and platforms
1
Arduino IDE
Project description
Code
Code
arduino
You can either copy+paste this code into an Arduino Sketch, or download it.
1int a = 7; 2int b = 6; 3int c = 5; 4int d = 11; 5int e = 10; 6int f = 8; 7int g = 9; 8int dp = 4; 9int a = 7; 10int b = 6; 11int c = 5; 12int d = 11; 13int e = 10; 14int f = 8; 15int g = 9; 16int start = 400; 17 18void setup() { 19 Serial.begin(9600); 20 digitalWrite(a, OUTPUT); 21 digitalWrite(b, OUTPUT); 22 digitalWrite(c, OUTPUT); 23 digitalWrite(d, OUTPUT); 24 digitalWrite(e, OUTPUT); 25 digitalWrite(f, OUTPUT); 26 digitalWrite(g, OUTPUT); 27 digitalWrite(a, LOW); 28 digitalWrite(b, LOW); 29 digitalWrite(c, LOW); 30 digitalWrite(d, LOW); 31 digitalWrite(e, LOW); 32 digitalWrite(f, LOW); 33 digitalWrite(g, LOW); 34} 35 36 37void loop() { 38 int ran = random(1, 6); 39 Serial.print(ran); 40 int value = analogRead(A0); 41 if (start < start && ran == 1) 42 { 43 digitalWrite(c, HIGH); 44 digitalWrite(b, HIGH); 45 delay(9000); 46 digitalWrite(c, LOW); 47 digitalWrite(b, LOW); 48 } 49 else if (value < start && ran == 2) 50 { 51 digitalWrite(a, HIGH); 52 digitalWrite(b, HIGH); 53 digitalWrite(g, HIGH); 54 digitalWrite(e, HIGH); 55 digitalWrite(d, HIGH); 56 delay(9000); 57 digitalWrite(a, LOW); 58 digitalWrite(b, LOW); 59 digitalWrite(g, LOW); 60 digitalWrite(e, LOW); 61 digitalWrite(d, LOW); 62 } 63 else if (value < start && ran == 3) 64 { 65 digitalWrite(a, HIGH); 66 digitalWrite(b, HIGH); 67 digitalWrite(d, HIGH); 68 digitalWrite(g, HIGH); 69 digitalWrite(c, HIGH); 70 delay(9000); 71 digitalWrite(a, LOW); 72 digitalWrite(b, LOW); 73 digitalWrite(c, LOW); 74 digitalWrite(d, LOW); 75 digitalWrite(g, LOW); 76 } 77 else if (value < start && ran == 4) 78 { 79 digitalWrite(f, HIGH); 80 digitalWrite(g, HIGH); 81 digitalWrite(b, HIGH); 82 digitalWrite(c, HIGH); 83 delay(9000); 84 digitalWrite(f, LOW); 85 digitalWrite(g, LOW); 86 digitalWrite(b, LOW); 87 digitalWrite(c, LOW); 88 } 89 else if (value < start && ran == 5) 90 { 91 digitalWrite(a, HIGH); 92 digitalWrite(f, HIGH); 93 digitalWrite(g, HIGH); 94 digitalWrite(c, HIGH); 95 digitalWrite(d, HIGH); 96 delay(9000); 97 digitalWrite(a, LOW); 98 digitalWrite(f, LOW); 99 digitalWrite(g, LOW); 100 digitalWrite(c, LOW); 101 digitalWrite(d, LOW); 102 } 103 else if (value < start && ran == 6) 104 { 105 digitalWrite(a, HIGH); 106 digitalWrite(f, HIGH); 107 digitalWrite(g, HIGH); 108 digitalWrite(c, HIGH); 109 digitalWrite(d, HIGH); 110 digitalWrite(e, HIGH); 111 delay(9000); 112 digitalWrite(a, LOW); 113 digitalWrite(f, LOW); 114 digitalWrite(g, LOW); 115 digitalWrite(c, LOW); 116 digitalWrite(d, LOW); 117 digitalWrite(e, LOW); 118 } 119 delay(500); 120}
Code
arduino
You can either copy+paste this code into an Arduino Sketch, or download it.
1int a = 7; 2int b = 6; 3int c = 5; 4int d = 11; 5int e = 10; 6int 7 f = 8; 8int g = 9; 9int dp = 4; 10int a = 7; 11int b = 6; 12int c = 5; 13int 14 d = 11; 15int e = 10; 16int f = 8; 17int g = 9; 18int start = 400; 19 20void 21 setup() { 22 Serial.begin(9600); 23 digitalWrite(a, OUTPUT); 24 digitalWrite(b, 25 OUTPUT); 26 digitalWrite(c, OUTPUT); 27 digitalWrite(d, OUTPUT); 28 digitalWrite(e, 29 OUTPUT); 30 digitalWrite(f, OUTPUT); 31 digitalWrite(g, OUTPUT); 32 digitalWrite(a, 33 LOW); 34 digitalWrite(b, LOW); 35 digitalWrite(c, LOW); 36 digitalWrite(d, 37 LOW); 38 digitalWrite(e, LOW); 39 digitalWrite(f, LOW); 40 digitalWrite(g, 41 LOW); 42} 43 44 45void loop() { 46 int ran = random(1, 6); 47 Serial.print(ran); 48 49 int value = analogRead(A0); 50 if (start < start && ran == 1) 51 { 52 digitalWrite(c, 53 HIGH); 54 digitalWrite(b, HIGH); 55 delay(9000); 56 digitalWrite(c, 57 LOW); 58 digitalWrite(b, LOW); 59 } 60 else if (value < start && ran == 61 2) 62 { 63 digitalWrite(a, HIGH); 64 digitalWrite(b, HIGH); 65 digitalWrite(g, 66 HIGH); 67 digitalWrite(e, HIGH); 68 digitalWrite(d, HIGH); 69 delay(9000); 70 71 digitalWrite(a, LOW); 72 digitalWrite(b, LOW); 73 digitalWrite(g, LOW); 74 75 digitalWrite(e, LOW); 76 digitalWrite(d, LOW); 77 } 78 else if (value 79 < start && ran == 3) 80 { 81 digitalWrite(a, HIGH); 82 digitalWrite(b, 83 HIGH); 84 digitalWrite(d, HIGH); 85 digitalWrite(g, HIGH); 86 digitalWrite(c, 87 HIGH); 88 delay(9000); 89 digitalWrite(a, LOW); 90 digitalWrite(b, LOW); 91 92 digitalWrite(c, LOW); 93 digitalWrite(d, LOW); 94 digitalWrite(g, LOW); 95 96 } 97 else if (value < start && ran == 4) 98 { 99 digitalWrite(f, HIGH); 100 101 digitalWrite(g, HIGH); 102 digitalWrite(b, HIGH); 103 digitalWrite(c, 104 HIGH); 105 delay(9000); 106 digitalWrite(f, LOW); 107 digitalWrite(g, LOW); 108 109 digitalWrite(b, LOW); 110 digitalWrite(c, LOW); 111 } 112 else if (value 113 < start && ran == 5) 114 { 115 digitalWrite(a, HIGH); 116 digitalWrite(f, 117 HIGH); 118 digitalWrite(g, HIGH); 119 digitalWrite(c, HIGH); 120 digitalWrite(d, 121 HIGH); 122 delay(9000); 123 digitalWrite(a, LOW); 124 digitalWrite(f, LOW); 125 126 digitalWrite(g, LOW); 127 digitalWrite(c, LOW); 128 digitalWrite(d, 129 LOW); 130 } 131 else if (value < start && ran == 6) 132 { 133 digitalWrite(a, 134 HIGH); 135 digitalWrite(f, HIGH); 136 digitalWrite(g, HIGH); 137 digitalWrite(c, 138 HIGH); 139 digitalWrite(d, HIGH); 140 digitalWrite(e, HIGH); 141 delay(9000); 142 143 digitalWrite(a, LOW); 144 digitalWrite(f, LOW); 145 digitalWrite(g, LOW); 146 147 digitalWrite(c, LOW); 148 digitalWrite(d, LOW); 149 digitalWrite(e, LOW); 150 151 } 152 delay(500); 153}
Downloadable files
Schematic
Schematic

Comments
Only logged in users can leave comments