Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Showing number 0-9 on a Common Anode 7-segment LED display
- Displays the numbers 0-9 on the display, with one second inbetween.
- A
- ---
- F | | B
- | G |
- ---
- E | | C
- | |
- ---
- D
- This example code is in the public domain.
- */
- int i=0;
- // LED DISPLAY SET UP
- // Pin 2-8 is connected to the 7 segments of the display.
- // Array of what pins are connected to what UNO pinouts (See diagram and pull hair for details).
- int pinAssign[7] = {2,3,4,5,6,7,8}; //{A,B,C,D,E,F,G}
- // Display segment pinout Left to right (This Model D1 & D4 do not work)
- //Re enabled this block and disabled my while init statement below because it wasn't working
- int pinA=2;
- int pinB=3;
- int pinC=4;
- int pinD=5;
- int pinE=6;
- int pinF=7;
- int pinG=8;
- //Display pins
- int D1;
- int D2 = 10;
- int D3 = 11;
- int D4;
- int disp = D2;
- //Flood Set Up
- int floodInterval = 0;
- //BUTTON SET-UP
- int buttonLeft = 16;
- int buttonRight = 17;
- int buttonLstate = 0;
- int buttonRstate = 0;
- //Number Assignments Matrix. They follow the same clockwise pattern left to right as the top diagram
- int numMatrix[10][7] =
- {
- {0,0,0,0,0,0,1}, //Zero
- {1,0,0,1,1,1,1}, //One
- {0,0,1,0,0,1,0}, //Two
- {0,0,0,0,1,1,0}, //Three
- {1,0,0,1,1,0,0}, //Four
- {0,1,0,0,1,0,0}, //Five
- {0,1,0,0,0,0,0}, //Six
- {0,0,0,1,1,1,1}, //Seven
- {0,0,0,0,0,0,0}, //Eight
- {0,0,0,1,1,0,0}, //Nine
- };
- //int numZero[7] = {0,0,0,0,0,0,1};
- //int numOne[7] = {1,0,0,1,1,1,1};
- //int numTwo[7] = {0,0,1,0,0,1,0};
- //int numThree[7] = {0,0,0,0,1,1,0};
- //int numFour[7] = {1,0,0,1,1,0,0};
- //int numFive[7] = {0,1,0,0,1,0,0};
- //int numSix[7] = {0,1,0,0,0,0,0};
- //int numSeven[7] = {0,0,0,1,1,1,1};
- //int numEight[7] = {0,0,0,0,0,0,0};
- //int numNine[7] = {0,0,0,1,1,0,0};
- // the setup routine runs once when you press reset:
- void setup() {
- // initialize the digital pins as outputs. (not working? Or bad hardware)
- //while (i <= sizeof(pinAssign))
- //{
- // pinMode(pinAssign[i], OUTPUT);
- // i++;
- //}
- //i=0;
- //Un needed if above stmt is working
- pinMode(pinA, OUTPUT);
- pinMode(pinB, OUTPUT);
- pinMode(pinC, OUTPUT);
- pinMode(pinD, OUTPUT);
- pinMode(pinE, OUTPUT);
- pinMode(pinF, OUTPUT);
- pinMode(pinG, OUTPUT);
- pinMode(D1, OUTPUT);
- pinMode(D2, OUTPUT);
- pinMode(D3, OUTPUT);
- pinMode(D4, OUTPUT);
- Serial.begin(19200);
- delay(5000); //Safety init
- }
- //Assign the numbers to the pins
- void numdisplay(int disp, int num){
- while (i < 7){
- //Serial.println(numMatrix[num][i]);
- digitalWrite(disp, HIGH);
- digitalWrite(pinAssign[i], numMatrix[num][i]);
- delay(5);
- i++;
- }
- delay(200);
- i =0;
- }
- //unhashed button function. Not reliable
- int buttonPress(int button)
- {
- if (digitalRead(button) == HIGH)
- {
- delay(500);
- return 1;
- }
- return 0;
- }
- // the loop routine runs over and over again forever:
- void loop() {
- //Problem with this is- need to cycle between low and high to use two digits.
- numdisplay(D2,9);
- numdisplay(D2,8);
- numdisplay(D2,7);
- numdisplay(D2,6);
- numdisplay(D2,5);
- numdisplay(D2,4);
- numdisplay(D2,3);
- numdisplay(D2,2);
- numdisplay(D2,1);
- numdisplay(D2,0);
- numdisplay(D3,9);
- numdisplay(D3,8);
- numdisplay(D3,7);
- numdisplay(D3,6);
- numdisplay(D3,5);
- numdisplay(D3,4);
- numdisplay(D3,3);
- numdisplay(D3,2);
- numdisplay(D3,1);
- numdisplay(D3,0);
- //BEGINNING OF ACTUAL FLOOD TABLE LOGIC FML
- //if (buttonPress(buttonLeft) == 1) {
- // floodInterval++;
- //}
- // if (0 <= floodInterval <= 9)
- // {
- // numdisplay(D3,floodInterval);
- //
- //
- // }
- // if (10 <= floodInterval <= 19) {
- // numdisplay(D2,1);
- // numdisplay(D3,(floodInterval - 10));
- //
- //
- // }
- // if (20 <= floodInterval <= 29) {
- // numdisplay(D2,2);
- // numdisplay(D3,(floodInterval - 10));
- //
- // }
- //
- //
- //
- //
- //
- //
- //
- //
- //if (buttonPress(buttonRight) == 1) {
- // numdisplay(D3,9);
- // delay(3000);
- // digitalWrite(D3, LOW);
- //}
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement