Initial commit
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
Keyboard Clicker
|
||||
*/
|
||||
|
||||
int outPinsSize = 2;
|
||||
int outPins[] = { 13, 12 };
|
||||
|
||||
int outShift = 0;
|
||||
int lastCount = 0;
|
||||
|
||||
int outBell = 11;
|
||||
|
||||
#define RELAY_OFF HIGH
|
||||
#define RELAY_ON LOW
|
||||
|
||||
void setup() {
|
||||
pinMode(LED_BUILTIN, OUTPUT);
|
||||
|
||||
for (int i = 0; i < outPinsSize; i++) {
|
||||
pinMode(outPins[i], OUTPUT);
|
||||
digitalWrite(outPins[i], RELAY_OFF);
|
||||
}
|
||||
|
||||
pinMode(outBell, OUTPUT);
|
||||
digitalWrite(outBell, RELAY_OFF);
|
||||
|
||||
// initialize serial:
|
||||
Serial.begin(115200);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
}
|
||||
|
||||
/*
|
||||
SerialEvent occurs whenever a new data comes in the hardware serial RX. This
|
||||
routine is run between each time loop() runs, so using delay inside loop can
|
||||
delay response.
|
||||
*/
|
||||
void serialEvent() {
|
||||
while (Serial.available()) {
|
||||
// get the new byte:
|
||||
char inChar = (char)Serial.read();
|
||||
//Serial.println(inChar);
|
||||
if (inChar >= '0' && inChar <= '9') {
|
||||
int count = inChar - '0';
|
||||
if (count >= lastCount) {
|
||||
outShift = (outShift + 1) % outPinsSize;
|
||||
}
|
||||
lastCount = count;
|
||||
for (int i = 0; i < outPinsSize; i++) {
|
||||
digitalWrite(outPins[(i + outShift) % outPinsSize], ((count > i) ? RELAY_ON : RELAY_OFF));
|
||||
}
|
||||
} else {
|
||||
if (inChar == '(') {
|
||||
digitalWrite(outBell, RELAY_ON);
|
||||
delay(20);
|
||||
digitalWrite(outBell, RELAY_OFF);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user