-
Notifications
You must be signed in to change notification settings - Fork 0
/
binary_keyboard.ino
79 lines (70 loc) · 1.49 KB
/
binary_keyboard.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
/*
Hayden Meloche
5/22/2017
*/
#include "Keyboard.h"
bool MODE1001 = true;
String binary = "";
void setup() {
//Pin modes
pinMode(A1, INPUT_PULLUP);
pinMode(A2, INPUT_PULLUP);
pinMode(A0, INPUT_PULLUP);
// initialize keyboard and serial for testing
Serial.begin(9600);
Keyboard.begin();
if (digitalRead(A2) == LOW) {
MODE1001 = false;
}
}
void binaryConvert(long binary) {
long dec = 0, rem, base = 1;
while (binary > 0)
{
rem = binary % 10;
dec = dec + rem * base;
base = base * 2;
binary = binary / 10;
}
binary = "";
Keyboard.print(char(dec));
}
void loop() {
if (MODE1001) {
if (digitalRead(A1) == LOW) {
delay(200);
//Serial.write('0');
Keyboard.write("0");
}
if (digitalRead(A0) == LOW) {
delay(200);
//Serial.write(97);
Keyboard.write("1");
}
if (digitalRead(A2) == LOW) {
delay(200);
//Serial.write(' ');
Keyboard.write(" ");
}
} else {
if (digitalRead(A1) == LOW) {
delay(200);
//Serial.write('0');
binary += "0";
}
if (digitalRead(A0) == LOW) {
delay(200);
//Serial.write("1");
binary += "1";
}
if (digitalRead(A2) == LOW) {
delay(200);
if (binary.length() == 8) {
binaryConvert(atol(binary.c_str()));
} else {
//Acts as spacebar if not long enough
Keyboard.print(" ");
}
}
}
}