-
Notifications
You must be signed in to change notification settings - Fork 0
/
jeopardy.ino
66 lines (56 loc) · 1.68 KB
/
jeopardy.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
#define on_board_LED 13
#define LED_COUNT 4 //number of LEDs below (in the array)
#define bluePin1 21
#define greenPin1 22
#define redPin1 23
#define bluePin2 3
#define BUTTON_COUNT 4 //number of buttons
#define button1Pin 14
#define button2Pin 15
#define button3Pin 16
#define button4Pin 17
const int leds[] = {bluePin1,greenPin1,redPin1,bluePin2}; //should contain only LED_COUNT elements
const int buttons[] = {button1Pin,button2Pin,button3Pin,button4Pin}; //should contain only BUTTON_COUNT elements
const char letters[] = "abcd";
boolean buttonWasPressed[] = {false,false,false,false}; //should contain only BUTTON_COUNT elements
int i;
void setup() {
pinMode(on_board_LED, OUTPUT);
for(i=0; i<LED_COUNT;i++) {
pinMode(leds[i], OUTPUT);
}
for(i=0;i<BUTTON_COUNT;i++) {
pinMode(buttons[i], INPUT_PULLUP);
}
digitalWrite(bluePin1, 1);
digitalWrite(bluePin2, 1);
delay(1000);
digitalWrite(greenPin1, 1);
delay(1000);
digitalWrite(redPin1, 1);
delay(1000);
digitalWrite(on_board_LED, 1);
}
void loop() {
for(i=0;i<BUTTON_COUNT;i++) {
if(digitalRead(buttons[i]) == HIGH) { //button NOT pressed
if(buttonWasPressed[i] == true) { //released
digitalWrite(leds[i], !digitalRead(leds[i]));
delay(12); //blocking debounce
}
else { //still NOT pressed
}
buttonWasPressed[i] = false;
}
else { //button IS pressed
if(buttonWasPressed[i] == false) { //pressed
Keyboard.print(letters[i]); //send respective character
digitalWrite(leds[i], !digitalRead(leds[i]));
delay(12); //blocking debounce
}
else { //button kept pressed
}
buttonWasPressed[i] = true;
}
}
}