Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int PUSH_BUTTON_1 = 41;
- int PUSH_BUTTON_2 = 49;
- int PUSH_BUTTON_3 = 47;
- int PUSH_BUTTON_4 = 43;
- int PUSH_BUTTON_5 = 51;
- int PUSH_BUTTON_6 = 45;
- int PUSH_BUTTON_7 = 53;
- int DIRECTION_SWITCH = 9;
- int clockPins[4] = { 22,25,28,31 }; // pin 11
- int latchPins[4] = { 23,26,29,32 }; // pin 12
- int dataPins[4] = { 24,27,30,33 }; // pin 14
- int output[4];
- int room[4];
- int temp;
- int button1, button2, button3, button4, button5, button6, button7, directionSwitch;
- void setup() {
- Serial.begin(9600);
- Serial.print("setup");
- int room[4] = {0,0,0,0};
- int output[4] = {111,111,111,111};
- pinMode(PUSH_BUTTON_1, INPUT);
- pinMode(PUSH_BUTTON_2, INPUT);
- pinMode(PUSH_BUTTON_3, INPUT);
- pinMode(PUSH_BUTTON_4, INPUT);
- pinMode(PUSH_BUTTON_5, INPUT);
- pinMode(PUSH_BUTTON_6, INPUT);
- pinMode(PUSH_BUTTON_7, INPUT);
- pinMode(DIRECTION_SWITCH, INPUT);
- digitalWrite(PUSH_BUTTON_1, HIGH);
- digitalWrite(PUSH_BUTTON_2, HIGH);
- digitalWrite(PUSH_BUTTON_3, HIGH);
- digitalWrite(PUSH_BUTTON_4, HIGH);
- digitalWrite(PUSH_BUTTON_5, HIGH);
- digitalWrite(PUSH_BUTTON_6, HIGH);
- digitalWrite(PUSH_BUTTON_7, HIGH);
- digitalWrite(DIRECTION_SWITCH, HIGH);
- for (int i = 0; i < 4; i++) {
- pinMode(clockPins[i], OUTPUT);
- pinMode(latchPins[i], OUTPUT);
- pinMode(dataPins[i], OUTPUT);
- }
- writeAllRegisters();
- }
- void writeAllRegisters() {
- for (int i = 0; i < 4; i++) {
- writeRegister(i);
- }
- }
- void writeRegister(int regNum) {
- digitalWrite(latchPins[regNum],LOW);
- temp = output[regNum];
- if(temp != 111){
- temp += 128;
- }
- shiftOut(dataPins[regNum], clockPins[regNum], MSBFIRST, temp);
- digitalWrite(latchPins[regNum],HIGH);
- }
- void setOne(int regNum) {
- output[regNum] = 9;
- }
- void setTwo(int regNum) {
- output[regNum] = 87;
- }
- void setThree(int regNum) {
- output[regNum] = 93;
- }
- void setFour(int regNum) {
- output[regNum] = 57;
- }
- void setFive(int regNum) {
- output[regNum] = 124;
- }
- void setSix(int regNum) {
- output[regNum] = 126;
- }
- void setSeven(int regNum) {
- output[regNum] = 73;
- }
- void setEight(int regNum) {
- output[regNum] = 127;
- }
- void setNine(int regNum) {
- output[regNum] = 125;
- }
- void setZero(int regNum) {
- output[regNum] = 111;
- }
- void setH(int regNum){
- output[regNum] = 59;
- }
- void setHex(int regNum, int number){
- if(number > 9){
- setH(regNum);
- }
- if(number == 0){
- setZero(regNum);
- }
- if(number == 1){
- setOne(regNum);
- }
- if(number == 2){
- setTwo(regNum);
- }
- if(number == 3){
- setThree(regNum);
- }
- if(number == 4){
- setFour(regNum);
- }
- if(number == 5){
- setFive(regNum);
- }
- if(number == 6){
- setSix(regNum);
- }
- if(number == 7){
- setSeven(regNum);
- }
- if(number == 8){
- setEight(regNum);
- }
- if(number == 9){
- setNine(regNum);
- }
- }
- void setAllHex(){
- for(int i=0;i<4;i++){
- setHex(i,room[i]);
- }
- }
- void loop() {
- Serial.print("ROOMS: ");
- Serial.print(room[0]);
- Serial.print(room[1]);
- Serial.print(room[2]);
- Serial.print(room[3]);
- Serial.println();
- button1 = digitalRead(PUSH_BUTTON_1);
- button2 = digitalRead(PUSH_BUTTON_2);
- button3 = digitalRead(PUSH_BUTTON_3);
- button4 = digitalRead(PUSH_BUTTON_4);
- button5 = digitalRead(PUSH_BUTTON_5);
- button6 = digitalRead(PUSH_BUTTON_6);
- button7 = digitalRead(PUSH_BUTTON_7);
- directionSwitch = digitalRead(DIRECTION_SWITCH);
- if (button1 == LOW) {
- Serial.println("BUTTON1");
- if (directionSwitch == LOW) {
- room[0]++;
- }
- else {
- if (room[0] > 0) {
- room[0]--;
- }
- }
- }
- if (button2 == LOW) {
- Serial.println("BUTTON2");
- if (directionSwitch == LOW) {
- if (room[0] > 0) {
- room[0]--;
- room[1]++;
- }
- }
- else {
- if (room[1] > 0) {
- room[0]++;
- room[1]--;
- }
- }
- }
- if (button3 == LOW) {
- Serial.println("BUTTON3");
- if (directionSwitch == LOW) {
- if (room[0] > 0) {
- room[0]--;
- room[2]++;
- }
- }
- else {
- if (room[2] > 0) {
- room[2]--;
- room[0]++;
- }
- }
- }
- if (button4 == LOW) {
- Serial.println("BUTTON4");
- if (directionSwitch == LOW) {
- if (room[1] > 0) {
- room[1]--;
- room[2]++;
- }
- }
- else {
- if (room[2] > 0) {
- room[2]--;
- room[1]++;
- }
- }
- }
- if (button5 == LOW) {
- Serial.println("BUTTON5");
- if (directionSwitch == LOW) {
- if (room[1] > 0) {
- room[1]--;
- room[3]++;
- }
- }
- else {
- if (room[3] > 0) {
- room[3]--;
- room[1]++;
- }
- }
- }
- if (button6 == LOW) {
- Serial.println("BUTTON6");
- if (directionSwitch == LOW) {
- if (room[2] > 0) {
- room[2]--;
- room[3]++;
- }
- }
- else {
- if (room[3] > 0) {
- room[3]--;
- room[2]++;
- }
- }
- }
- if (button7 == LOW) {
- Serial.println("BUTTON7");
- if (directionSwitch == LOW) {
- if (room[3] > 0) {
- room[3]--;
- }
- }
- else {
- room[3]++;
- }
- }
- delay(250);
- setAllHex();
- writeAllRegisters();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement