Components and supplies
Rotary potentiometer (generic)
LED Dot Matrix Display, Red
Male/Male Jumper Wires
USB-A to B Cable
Arduino UNO
Project description
Code
Arduino Code
arduino
1//This project was made by Mikołaj Trybulski 2//CONNECTING 3//MATRIX PIN: ARDUINO PIN: 4 // 1 13 5 // 2 12 6 // 3 11 7 // 4 10 8 // 5 A2 9 // 6 A3 10 // 7 A4 11 // 8 A5 12 // 9 2 13 // 10 3 14 // 11 4 15 // 12 5 16 // 13 6 17 // 14 7 18 // 15 8 19 // 16 9 20void setup() { 21 // put your setup code here, to run once: 22pinMode(2, OUTPUT); 23pinMode(3, OUTPUT); 24pinMode(4, OUTPUT); 25pinMode(5, OUTPUT); 26pinMode(6, OUTPUT); 27pinMode(7, OUTPUT); 28pinMode(8, OUTPUT); 29pinMode(9, OUTPUT); 30pinMode(10, OUTPUT); 31pinMode(11, OUTPUT); 32pinMode(12, OUTPUT); 33pinMode(13, OUTPUT); 34pinMode(A2, OUTPUT); 35pinMode(A3, OUTPUT); 36pinMode(A4, OUTPUT); 37pinMode(A5, OUTPUT); 38 39} 40 41void loop() { 42 // put your main code here, to run repeatedly: 43int Svb = analogRead(A0); 44int Sv = analogRead(A1); 45 46//1 47 48digitalWrite(12, HIGH); 49digitalWrite(A2, HIGH); 50digitalWrite(A3, HIGH); 51digitalWrite(A4, HIGH); 52digitalWrite(A5, HIGH); 53digitalWrite(A3, HIGH); 54digitalWrite(11, LOW); 55digitalWrite(10, HIGH); 56digitalWrite(13, HIGH); 57digitalWrite(9, LOW); 58digitalWrite(8, LOW); 59digitalWrite(7, LOW); 60digitalWrite(6, HIGH); 61digitalWrite(5, HIGH); 62digitalWrite(4, LOW); 63digitalWrite(3, LOW); 64digitalWrite(2, HIGH); 65 66if(Sv < 400){ 67 delay(100); 68} 69else 70delay(1); 71 72 73//2 74 75 76digitalWrite(12, HIGH); 77digitalWrite(A2, HIGH); 78digitalWrite(A3, HIGH); 79digitalWrite(A4, HIGH); 80digitalWrite(A5, LOW); 81digitalWrite(A3, HIGH); 82digitalWrite(11, LOW); 83digitalWrite(10, HIGH); 84digitalWrite(13, HIGH); 85digitalWrite(9, LOW); 86digitalWrite(8, LOW); 87digitalWrite(7, HIGH); 88digitalWrite(6, HIGH); 89digitalWrite(5, HIGH); 90digitalWrite(4, LOW); 91digitalWrite(3, LOW); 92digitalWrite(2, HIGH); 93 94if(Sv < 400){ 95 delay(100); 96} 97else 98delay(1); 99 100//3 101 102digitalWrite(12, HIGH); 103digitalWrite(A2, HIGH); 104digitalWrite(A3, HIGH); 105digitalWrite(A4, HIGH); 106digitalWrite(A5, HIGH); 107digitalWrite(A3, HIGH); 108digitalWrite(11, HIGH); 109digitalWrite(10, HIGH); 110digitalWrite(13, HIGH); 111digitalWrite(9, LOW); 112digitalWrite(8, LOW); 113digitalWrite(7, HIGH); 114digitalWrite(6, HIGH); 115digitalWrite(5, LOW); 116digitalWrite(4, LOW); 117digitalWrite(3, LOW); 118digitalWrite(2, HIGH); 119 120 121if(Sv < 400){ 122 delay(100); 123} 124else 125delay(1); 126 127//4 128 129digitalWrite(12, HIGH); 130digitalWrite(A2, HIGH); 131digitalWrite(A3, HIGH); 132digitalWrite(A4, HIGH); 133digitalWrite(A5, HIGH); 134digitalWrite(A3, HIGH); 135digitalWrite(11, LOW); 136digitalWrite(10, HIGH); 137digitalWrite(13, LOW); 138digitalWrite(9, LOW); 139digitalWrite(8, LOW); 140digitalWrite(7, HIGH); 141digitalWrite(6, HIGH); 142digitalWrite(5, HIGH); 143digitalWrite(4, LOW); 144digitalWrite(3, LOW); 145digitalWrite(2, HIGH); 146 147 148if(Sv < 400){ 149 delay(100); 150} 151else 152delay(1); 153 154//5 155 156digitalWrite(12, HIGH); 157digitalWrite(A2, HIGH); 158digitalWrite(A3, HIGH); 159digitalWrite(A4, LOW); 160digitalWrite(A5, HIGH); 161digitalWrite(A3, HIGH); 162digitalWrite(11, LOW); 163digitalWrite(10, HIGH); 164digitalWrite(13, HIGH); 165digitalWrite(9, LOW); 166digitalWrite(8, LOW); 167digitalWrite(7, HIGH); 168digitalWrite(6, HIGH); 169digitalWrite(5, HIGH); 170digitalWrite(4, LOW); 171digitalWrite(3, LOW); 172digitalWrite(2, HIGH); 173 174 175if(Sv < 400){ 176 delay(100); 177} 178else 179delay(1); 180 181 182}
Arduino Code
arduino
1//This project was made by Mikołaj Trybulski 2//CONNECTING 3//MATRIX 4 PIN: ARDUINO PIN: 5 // 1 13 6 // 2 12 7 8 // 3 11 9 // 4 10 10 // 5 A2 11 12 // 6 A3 13 // 7 A4 14 // 8 A5 15 16 // 9 2 17 // 10 3 18 // 11 4 19 20 // 12 5 21 // 13 6 22 // 14 7 23 24 // 15 8 25 // 16 9 26void setup() { 27 // put 28 your setup code here, to run once: 29pinMode(2, OUTPUT); 30pinMode(3, OUTPUT); 31pinMode(4, 32 OUTPUT); 33pinMode(5, OUTPUT); 34pinMode(6, OUTPUT); 35pinMode(7, OUTPUT); 36pinMode(8, 37 OUTPUT); 38pinMode(9, OUTPUT); 39pinMode(10, OUTPUT); 40pinMode(11, OUTPUT); 41pinMode(12, 42 OUTPUT); 43pinMode(13, OUTPUT); 44pinMode(A2, OUTPUT); 45pinMode(A3, OUTPUT); 46pinMode(A4, 47 OUTPUT); 48pinMode(A5, OUTPUT); 49 50} 51 52void loop() { 53 // put your 54 main code here, to run repeatedly: 55int Svb = analogRead(A0); 56int Sv = analogRead(A1); 57 58//1 59 60digitalWrite(12, 61 HIGH); 62digitalWrite(A2, HIGH); 63digitalWrite(A3, HIGH); 64digitalWrite(A4, 65 HIGH); 66digitalWrite(A5, HIGH); 67digitalWrite(A3, HIGH); 68digitalWrite(11, 69 LOW); 70digitalWrite(10, HIGH); 71digitalWrite(13, HIGH); 72digitalWrite(9, LOW); 73digitalWrite(8, 74 LOW); 75digitalWrite(7, LOW); 76digitalWrite(6, HIGH); 77digitalWrite(5, HIGH); 78digitalWrite(4, 79 LOW); 80digitalWrite(3, LOW); 81digitalWrite(2, HIGH); 82 83if(Sv < 400){ 84 85 delay(100); 86} 87else 88delay(1); 89 90 91//2 92 93 94digitalWrite(12, 95 HIGH); 96digitalWrite(A2, HIGH); 97digitalWrite(A3, HIGH); 98digitalWrite(A4, 99 HIGH); 100digitalWrite(A5, LOW); 101digitalWrite(A3, HIGH); 102digitalWrite(11, 103 LOW); 104digitalWrite(10, HIGH); 105digitalWrite(13, HIGH); 106digitalWrite(9, LOW); 107digitalWrite(8, 108 LOW); 109digitalWrite(7, HIGH); 110digitalWrite(6, HIGH); 111digitalWrite(5, HIGH); 112digitalWrite(4, 113 LOW); 114digitalWrite(3, LOW); 115digitalWrite(2, HIGH); 116 117if(Sv < 400){ 118 119 delay(100); 120} 121else 122delay(1); 123 124//3 125 126digitalWrite(12, HIGH); 127digitalWrite(A2, 128 HIGH); 129digitalWrite(A3, HIGH); 130digitalWrite(A4, HIGH); 131digitalWrite(A5, 132 HIGH); 133digitalWrite(A3, HIGH); 134digitalWrite(11, HIGH); 135digitalWrite(10, 136 HIGH); 137digitalWrite(13, HIGH); 138digitalWrite(9, LOW); 139digitalWrite(8, LOW); 140digitalWrite(7, 141 HIGH); 142digitalWrite(6, HIGH); 143digitalWrite(5, LOW); 144digitalWrite(4, LOW); 145digitalWrite(3, 146 LOW); 147digitalWrite(2, HIGH); 148 149 150if(Sv < 400){ 151 delay(100); 152} 153else 154 155delay(1); 156 157//4 158 159digitalWrite(12, HIGH); 160digitalWrite(A2, HIGH); 161digitalWrite(A3, 162 HIGH); 163digitalWrite(A4, HIGH); 164digitalWrite(A5, HIGH); 165digitalWrite(A3, 166 HIGH); 167digitalWrite(11, LOW); 168digitalWrite(10, HIGH); 169digitalWrite(13, 170 LOW); 171digitalWrite(9, LOW); 172digitalWrite(8, LOW); 173digitalWrite(7, HIGH); 174digitalWrite(6, 175 HIGH); 176digitalWrite(5, HIGH); 177digitalWrite(4, LOW); 178digitalWrite(3, LOW); 179digitalWrite(2, 180 HIGH); 181 182 183if(Sv < 400){ 184 delay(100); 185} 186else 187delay(1); 188 189//5 190 191digitalWrite(12, 192 HIGH); 193digitalWrite(A2, HIGH); 194digitalWrite(A3, HIGH); 195digitalWrite(A4, 196 LOW); 197digitalWrite(A5, HIGH); 198digitalWrite(A3, HIGH); 199digitalWrite(11, 200 LOW); 201digitalWrite(10, HIGH); 202digitalWrite(13, HIGH); 203digitalWrite(9, LOW); 204digitalWrite(8, 205 LOW); 206digitalWrite(7, HIGH); 207digitalWrite(6, HIGH); 208digitalWrite(5, HIGH); 209digitalWrite(4, 210 LOW); 211digitalWrite(3, LOW); 212digitalWrite(2, HIGH); 213 214 215if(Sv < 400){ 216 217 delay(100); 218} 219else 220delay(1); 221 222 223}
Downloadable files
schematic
schematic
picture
picture
schematic
schematic
Comments
Only logged in users can leave comments
Mikiklopsiki
1 Followers
•5 Projects
1
Anonymous user
5 years ago
If I read that circuit and code correctly, you are driving the Arduino pins way to hard. For starters, there are no currently limiting resistors, so an LED (or set of LEDs) that are turned on will drive the Arduino pins to their maximum available current. The LEDs will not actually go to 5 volts that the Arduino attempts to set, so the voltage on the Arduino pins will be pull down (and up from ground) to the provide the maximum current the microcontroller pins are capable of. Second, the LED maxtrix has 8 LEDs (everything in one column) tied together to a common row line. Which means that the power (or sink) for everything turned on at once in a single column has be provided by the Arduino pin connected to that row. So if the whole column is turned on at once, 8 LEDS worth of power is flowing through a single pin. Even with current limiting resistors, that would be too much. This needs some form of row driver, as well as current limiting resistors on each column.