Skee Ball Scoring System

I have built a skee ball game for my church youth group and I need some help on the scoring electronics. I have read several posts and I still do not have a scoring system that works. I am using the classic 7 hole scoring system. Two holes are 100 points, one hole is 50 points, one hole is 40 points, one hole is 30 points, one hole is 20 points and one hole is 10 points. I have installed the original type micro switches at the hole exits. I am going with a single player setup with a score reset after game completion. I am using an Arduino 2560 micro controller, 20x4 LCD and three Max 7219 matrices in series (display) for the scoring system. I have attached the schematic in a pdf format and the Arduino code in a Word format. I also included a photo of the game. The schematic only displays one Max 7219. When using the game, I get the last Max 7219 to display a zero and when any ball switch is actuated, the zero gets a momentary line down the center. Any help is appreciated.

Understand my code and schematic did not upload.

The following is my code:

/////////////////////////////////////////////
// This Sketch is for //
// Skee //
// Ball //
// Game //
/////////////////////////////////////////////
//include all libraries
#include <LiquidCrystal.h>
#include <MaxMatrix.h>
#include <avr/pgmspace.h>
//assigned microcontrolller pins to 7 Micro Switches
int Micro_Switch1= 22; // for 10 score switch
int Micro_Switch2= 24; // for 20 score switch
int Micro_Switch3= 26; // for 30 score switch
int Micro_Switch4= 28; // for 40 score switch
int Micro_Switch5= 30; // for 50 score switch
int Micro_Switch6= 32; // for 100 score switch
int Micro_Switch7= 34; // for 100 score switch
int Reset_Button = 6; // reset Button
// defined MAX7219 module pins
int DIN = 48; // DIN pin of MAX7219 module
int CS = 50; // CS pin of MAX7219 module
int CLK = 52; // CLK pin of MAX7219 module
int maxInUse = 3; // define No. of modules
MaxMatrix m(DIN, CS, CLK, maxInUse);
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
int Score_Count =0; // Variable to store score values

void setup() {
// put your setup code here, to run once:
m.init(); // module initialize
m.setIntensity(10); // dot matix intensity 0-15
m.clear(); // Clears the display
Serial.begin(9600);
lcd.begin(20,4); // set up the LCD’s number of columns and rows:
pinMode(Micro_Switch1,INPUT);
pinMode(Micro_Switch2,INPUT);
pinMode(Micro_Switch3,INPUT);
pinMode(Micro_Switch4,INPUT);
pinMode(Micro_Switch5,INPUT);
pinMode(Micro_Switch6,INPUT);
pinMode(Micro_Switch7,INPUT);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(“Skee Ball Game”);
lcd.setCursor(0,1);
lcd.print(“Player Score”);
lcd.setCursor(0,2);

}

void loop() {
// put your main code here, to run repeatedly:
const byte NUM_0={ // 0
4, 8,
B00111110,
B01000001,
B01000001,
B00111110,
B00000000,
};

const byte NUM_1={ // 1
4, 8,
B01000010,
B01111111,
B01000000,
B00000000,
B00000000,
};

const byte NUM_2={ // 2
4, 8,
B01100010,
B01010001,
B01001001,
B01000110,
B00000000,
};

const byte NUM_3={ // 3
4, 8,
B00100010,
B01000001,
B01001001,
B00110110,
B00000000,
};

const byte NUM_4={ // 4
4, 8,
B00011000,
B00010100,
B00010010,
B01111111,
B00000000,
};

const byte NUM_5={ //5
4, 8,
B00100111,
B01000101,
B01000101,
B00111001,
B00000000,
};
const byte NUM_6={ // 6
4, 8,
B00111110,
B01001001,
B01001001,
B00110000,
B00000000,
};

const byte NUM_7={ // 7
4, 8,
B01100001,
B00010001,
B00001001,
B00000111,
B00000000,
};
const byte NUM_8={ // 8
4, 8,
B00110110,
B01001001,
B01001001,
B00110110,
B00000000,
};

const byte NUM_9={ // 9
4, 8,
B00000110,
B01001001,
B01001001,
B00111110,
B00000000,
};

if(digitalRead(Reset_Button) == HIGH)
{
Score_Count = 0;
lcd.print(Score_Count);
m.clear(); // Clears the display
m.writeSprite(2, 0, NUM_0);
}
if(digitalRead(Micro_Switch1) == LOW)
{
Score_Count = 10+Score_Count;
lcd.print(Score_Count);
m.writeSprite(2, 0, NUM_1);
m.writeSprite(2, 0, NUM_0);
}
if(digitalRead(Micro_Switch2) == LOW)
{
Score_Count = 20+Score_Count;
lcd.print(Score_Count);
m.writeSprite(2, 0, NUM_2);
m.writeSprite(2, 0, NUM_0);
}
if(digitalRead(Micro_Switch3) == LOW)
{
Score_Count = 30+Score_Count;
lcd.print(Score_Count);
m.writeSprite(2, 0, NUM_3);
m.writeSprite(2, 0, NUM_0);
}
if(digitalRead(Micro_Switch4) == LOW)
{
Score_Count = 40+Score_Count;
lcd.print(Score_Count);
m.writeSprite(2, 0, NUM_4);
m.writeSprite(2, 0, NUM_0);
}
if(digitalRead(Micro_Switch5) == LOW)
{
Score_Count = 50+Score_Count;
lcd.print(Score_Count);
m.writeSprite(2, 0, NUM_5);
m.writeSprite(2, 0, NUM_0);

}
if(digitalRead(Micro_Switch6) == LOW)
{
Score_Count = 100+Score_Count;
lcd.print(Score_Count);
m.writeSprite(2, 0, NUM_1);
m.writeSprite(2, 0, NUM_0);
m.writeSprite(2, 0, NUM_0);

}
if(digitalRead(Micro_Switch7) == LOW)
{
Score_Count = 100+Score_Count;
lcd.print(Score_Count);
m.writeSprite(2, 0, NUM_1);
m.writeSprite(2, 0, NUM_0);
m.writeSprite(2, 0, NUM_0);

}
}

I was unable to paste in my schematic. I uploaded it again in pdf and Word format.

Schematic with 20 x 4 LCD.doc (70 KB)

wsand90:
I have attached the schematic in a pdf format and the Arduino code in a Word format. I also included a photo of the game. The schematic only displays one Max 7219.

None of this documentation came through.

If the schematic is a Fritzing drawing it will be looked down on as it’s not a true schematic. Even a hand-drawn schematic is perfectly acceptable.

wsand90:
…and the Arduino code in a Word format.

Put your code within code tags </>. The IDE will do this for you with IDE/edit/copy for forum; then just paste into your post. Or: