Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //7 Digit Arduino LED Matrix Binary Counter
- //Counter 1-9999999
- /* I did this project by using 5x7 LED Matrix with its pins 7, 10, 3, 1 for common cathodes to Arduino pins 9, 6, 17(A3) & 19(A5) respectively while anodes matrix pins 12, 11, 2, 9, 4, 5 & 6 to Arduino pins 4, 5, 18(A4), 7, 16, 15 & 14 correspondingly. */
- #define A 9
- #define B 6
- #define C 17
- #define D 19
- // Pins driving common cathodes
- #define CC1 4
- #define CC2 5
- #define CC3 18
- #define CC4 7
- #define CC5 16
- #define CC6 15
- #define CC7 14
- // Pins for A, B, C, D in sequence
- const int segs[4] = {9, 6, 17, 19};
- // Segments that make each number
- const byte numbers[10] = {0b1111, 0b1110, 0b1101, 0b1100, 0b1011, 0b1010, 0b1001, 0b1000, 0b0111, 0b0110};
- void setup() {
- pinMode(9, OUTPUT);
- pinMode(6, OUTPUT);
- pinMode(17, OUTPUT);
- pinMode(19, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- pinMode(18, OUTPUT);
- pinMode(7, OUTPUT);
- pinMode(16, OUTPUT);
- pinMode(15, OUTPUT);
- pinMode(14, OUTPUT);
- }
- void loop() {
- for (int digit1=0; digit1 < 10; digit1++) {
- for (int digit2=0; digit2 < 10; digit2++) {
- for(int digit3=0; digit3 < 10; digit3++) {
- for(int digit4=0; digit4 < 10; digit4++) {
- for(int digit5=0; digit5 < 10; digit5++) {
- for(int digit6=0; digit6 < 10; digit6++) {
- for(int digit7=0; digit7 < 10; digit7++) {
- unsigned long startTime = millis();
- for (unsigned long elapsed=0; elapsed < 200; elapsed = millis() - startTime) {
- lightDigit1(numbers[digit1]);
- delay(5);
- lightDigit2(numbers[digit2]);
- delay(5);
- lightDigit3(numbers[digit3]);
- delay(5);
- lightDigit4(numbers[digit4]);
- delay(5);
- lightDigit5(numbers[digit5]);
- delay(5);
- lightDigit6(numbers[digit6]);
- delay(5);
- lightDigit7(numbers[digit7]);
- delay(5);
- }
- }
- }
- }
- }
- }
- }
- }
- }
- void lightDigit1(byte number) {
- digitalWrite(CC1, LOW);
- digitalWrite(CC2, LOW);
- digitalWrite(CC3, LOW);
- digitalWrite(CC4, LOW);
- digitalWrite(CC5, LOW);
- digitalWrite(CC6, LOW);
- digitalWrite(CC7, HIGH);
- lightSegments(number);
- }
- void lightDigit2(byte number) {
- digitalWrite(CC1, LOW);
- digitalWrite(CC2, LOW);
- digitalWrite(CC3, LOW);
- digitalWrite(CC4, LOW);
- digitalWrite(CC5, LOW);
- digitalWrite(CC6, HIGH);
- digitalWrite(CC7, LOW);
- lightSegments(number);
- }
- void lightDigit3(byte number) {
- digitalWrite(CC1, LOW);
- digitalWrite(CC2, LOW);
- digitalWrite(CC3, LOW);
- digitalWrite(CC4, LOW);
- digitalWrite(CC5, HIGH);
- digitalWrite(CC6, LOW);
- digitalWrite(CC7, LOW);
- lightSegments(number);
- }
- void lightDigit4(byte number) {
- digitalWrite(CC1, LOW);
- digitalWrite(CC2, LOW);
- digitalWrite(CC3, LOW);
- digitalWrite(CC4, HIGH);
- digitalWrite(CC5, LOW);
- digitalWrite(CC6, LOW);
- digitalWrite(CC7, LOW);
- lightSegments(number);
- }
- void lightDigit5(byte number) {
- digitalWrite(CC1, LOW);
- digitalWrite(CC2, LOW);
- digitalWrite(CC3, HIGH);
- digitalWrite(CC4, LOW);
- digitalWrite(CC5, LOW);
- digitalWrite(CC6, LOW);
- digitalWrite(CC7, LOW);
- lightSegments(number);
- }
- void lightDigit6(byte number) {
- digitalWrite(CC1, LOW);
- digitalWrite(CC2, HIGH);
- digitalWrite(CC3, LOW);
- digitalWrite(CC4, LOW);
- digitalWrite(CC5, LOW);
- digitalWrite(CC6, LOW);
- digitalWrite(CC7, LOW);
- lightSegments(number);
- }
- void lightDigit7(byte number) {
- digitalWrite(CC1, HIGH);
- digitalWrite(CC2, LOW);
- digitalWrite(CC3, LOW);
- digitalWrite(CC4, LOW);
- digitalWrite(CC5, LOW);
- digitalWrite(CC6, LOW);
- digitalWrite(CC7, LOW);
- lightSegments(number);
- }
- void lightSegments(byte number) {
- for (int i = 0; i < 4; i++) {
- int bit = bitRead(number, i);
- digitalWrite(segs[i], bit);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement