Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int pins1[8] = {2,3,4,5,6,7,8}; // array of led pins for digit #1
- int pins2[8] = {9,10,11,12,13,A0,A1,A5}; // array of led pins for digit #2
- // Below is a 2D array of appropriate LEDs for each digit.
- // You should set these to correspond to each segment of the display
- // In this example the digits are set like this (where "#" is a segment):
- // 2
- // #
- // 7# #3
- // #<------8
- // 6# #4
- // #
- // 5
- // THE CORRESPONDING PINS MIGHT BE DIFFERENT IN YOUR CASE, either rewire them to match
- // this or change the code to match your layout.
- //
- // In Arduino language 1 == HIGH, 0 == LOW
- //
- // Corresponds to: 2,3,4,5,6,7,8 for pins1 (9,10,11,12,13,A0,A1,A5 for pins2)
- byte digits[10][7] = { { 1,1,1,1,1,1,0 }, // = 0
- { 0,1,1,0,0,0,0 }, // = 1
- { 1,1,0,1,1,0,1 }, // = 2
- { 1,1,1,1,0,0,1 }, // = 3
- { 0,1,1,0,0,1,1 }, // = 4
- { 1,0,1,1,0,1,1 }, // = 5
- { 1,0,1,1,1,1,1 }, // = 6
- { 1,1,1,0,0,0,0 }, // = 7
- { 1,1,1,1,1,1,1 }, // = 8
- { 1,1,1,0,0,1,1 } // = 9
- };
- void setup() {
- //OTHER CODE HERE
- // Set LED pins as output
- for (int i=0; i<7; i++){
- pinMode(pins1[i], OUTPUT);
- pinMode(pins2[i], OUTPUT);
- }
- }
- void loop() {
- //OTHER CODE HERE
- displayDigit(23); // as an example call display function to show "23"
- }
- displayDigit(int num){
- int dig1 = num / 10; // Figure out 1st digit
- // i.e.: 23 / 10 = 2.3 = int 2
- 3 / 10 = 0.3 = int 0
- int dig2 = num % 10; // Figure out 2nd digit. "%" is called "mod", returns the
- // remainder of a division operation
- // i.e.: 23 % 10 = 3
- // 3 % 10 = 3
- // Increment through both arrays of LEDs and set the appropriate segments
- // 1(HIGH) or 0(LOW)
- for(int i=0; i<7; i++) {
- digitalWrite(pins1[i], digits[dig1][i]);
- digitalWrite(pins2[i], digits[dig2][i]);
- }
- }
- // This way there is no need for ledLOW() function, no need for all the individual function to // display each digit, consequently there is less things that can go wrong.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement