Simple implementation of goal counter for table football using laser diode and phototransistor.
Dependencies: GoalCounter WS2812 PixelArray
Revision 5:95cb2348af01, committed 2019-01-13
- Comitter:
- nxf46245
- Date:
- Sun Jan 13 14:51:45 2019 +0000
- Parent:
- 4:5a11a84fac69
- Child:
- 6:a93ee22232f2
- Commit message:
- Added second instance of a GoalCounter class
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Sun Jan 13 14:23:30 2019 +0000
+++ b/main.cpp Sun Jan 13 14:51:45 2019 +0000
@@ -11,24 +11,21 @@
//Initialize instances of Timers
Timer timer1;
-//Timer t2;
+Timer timer2;
// Initialize instace of a pixel array for LED strip 1 ar 2
PixelArray px1(WS2812_BUF);
-//PixelArray px2(WS2812_BUF);
+PixelArray px2(WS2812_BUF);
// The given numbers are calculated for the K64F MCU
WS2812 ws1(D4, WS2812_BUF, 0, 5, 5, 0);
-//WS2812 ws2(D5, WS2812_BUF, 0, 5, 5, 0);
+WS2812 ws2(D5, WS2812_BUF, 0, 5, 5, 0);
// For debug use
Serial pc(USBTX, USBRX);
GoalCounter gc(D2, &timer1);
-
-// Initialize instances of Ticker classes for handling goal counters
-//Ticker bank1;
-//Ticker bank2;
+GoalCounter gc2(D3, &timer2);
float balltime1 = 0;
float speed1 = 0;
@@ -67,22 +64,22 @@
{
ws1.useII(WS2812::GLOBAL); // use global intensity scaling
-// ws2.useII(WS2812::GLOBAL); // use global intensity scaling
+ ws2.useII(WS2812::GLOBAL); // use global intensity scaling
pc.printf("Initialization... \n\r");
while(1) {
if (gc.is_goal == 1) {
get_info(&score1, &balltime1, &speed1, &gc);
set_score(score1, &px1, &ws1);
-// score1 = gc.get_score();
-// balltime1 = gc.get_balltime();
-// speed1 = gc.get_ballspeed();
-// pc.printf("Score : %d \n\r", score1);
-// pc.printf("Time of ball pass : %f seconds\n\r", balltime1);
-// pc.printf("Speed of ball (34 mm diameter) : %f kph\n\r", speed1);
print_score(score1, balltime1, speed1);
gc.is_goal = 0;
}
+ else if (gc2.is_goal == 1) {
+ get_info(&score2, &balltime2, &speed2, &gc2);
+ set_score(score2, &px2, &ws2);
+ print_score(score2, balltime2, speed2);
+ gc2.is_goal = 0;
+ }
if (score1 >= 10) {
pc.printf("Game over \n\r");
for (int i=1; i<= 10; i++) {