-
Notifications
You must be signed in to change notification settings - Fork 0
/
volleycounter_aktuator.ino
96 lines (87 loc) · 2.12 KB
/
volleycounter_aktuator.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// Handles the commands
int lastPointFor = LEFT;
// Start the debounce counter
void start_debounce(int debounceTime){
wakeTime_debounce = currentMillis + debounceTime;
// Serial.print("CurrentMillis: ");
// Serial.print(currentMillis);
// Serial.print(" Debounce at: ");
// Serial.println(wakeTime_debounce);
}
// Checks if there is debounce
boolean check_if_operation_is_allowed(){
if(currentMillis > wakeTime_debounce)
return true; // Allowed
else
return false; // Blocking
}
// Undos the last point
void undoPoint(){
if(lastPointFor == LEFT)
aktuator_minus(LEFT, DEBOUNCE_MEDIUM);
else
aktuator_minus(RIGHT, DEBOUNCE_MEDIUM);
}
void aktuator_reset(int debounceTime){
start_debounce(debounceTime);
counter_left = counter_right = 0;
Serial.println("RESET");
blink_and_sound(BOTH);
play_voice('0');
play_voice('P');
play_voice('0');
}
void aktuator_plus(int LEFTRIGHT, int debounceTime){
start_debounce(debounceTime);
if(LEFTRIGHT == LEFT){
counter_left++;
lastPointFor = LEFT;
Serial.print("Left++ = ");
Serial.println(counter_left);
blink_and_sound(LEFT);
}
else{
counter_right++;
lastPointFor = RIGHT;
Serial.print("Right++ = ");
Serial.println(counter_right);
blink_and_sound(RIGHT);
}
}
void aktuator_minus(int LEFTRIGHT, int debounceTime){
start_debounce(debounceTime);
if(LEFTRIGHT == LEFT){
counter_left--;
Serial.print("Left-- = ");
Serial.println(counter_left);
blink_and_sound(LEFT);
}
else
{
counter_right--;
Serial.print("Right-- = ");
Serial.println(counter_right);
blink_and_sound(RIGHT);
}
}
void blink_and_sound(int left_right){
// Play Sound
play_sound(left_right);
// Set Status LEDs
if(left_right == LEFT){
state_LED_R = LOW;
state_LED_L = HIGH;
current_blink_amount_L = BLINK_AMOUNT;
}
else if(left_right == RIGHT){
state_LED_R = HIGH;
state_LED_L = LOW;
current_blink_amount_R = BLINK_AMOUNT;
}
else { // Both
state_LED_R = HIGH;
state_LED_L = HIGH;
current_blink_amount_R = BLINK_AMOUNT;
current_blink_amount_L = BLINK_AMOUNT;
}
}