Difference between revisions of "Big Dome Box"
Jump to navigation
Jump to search
Line 37: | Line 37: | ||
if (flag && digitalRead(domeButton) == LOW) { |
if (flag && digitalRead(domeButton) == LOW) { |
||
digitalWrite(domeLed, LOW); |
digitalWrite(domeLed, LOW); |
||
+ | delay(100); |
||
+ | Keyboard.releaseAll(); |
||
+ | flag=false; |
||
+ | } |
||
+ | } |
||
+ | </source> |
||
+ | |||
+ | ===for [[Reveal.js]]=== |
||
+ | <source lang="cpp"> |
||
+ | |||
+ | const int domeButton = 12; |
||
+ | const int domeLed = 13; |
||
+ | boolean flag=false; |
||
+ | unsigned long time; |
||
+ | |||
+ | void setup() { |
||
+ | pinMode(domeLed, OUTPUT); |
||
+ | pinMode(domeButton, INPUT_PULLUP); |
||
+ | Keyboard.begin(); |
||
+ | } |
||
+ | |||
+ | void loop() { |
||
+ | |||
+ | if (!flag && digitalRead(domeButton) == HIGH) { |
||
+ | digitalWrite(domeLed, HIGH); |
||
+ | time = millis(); |
||
+ | delay(100); |
||
+ | Keyboard.releaseAll(); |
||
+ | flag=true; |
||
+ | } |
||
+ | if (flag && digitalRead(domeButton) == LOW) { |
||
+ | digitalWrite(domeLed, LOW); |
||
+ | unsigned long demta = millis()-time; |
||
+ | if(delta<500) { |
||
+ | Keyboard.press(0x20); // SPACE |
||
+ | } else if(delta<1500) { |
||
+ | Keyboard.press(KEY_LEFT_ARROW); // or KEY_BACKSPACE |
||
+ | } else { |
||
+ | Keyboard.press(KEY_ESC); // for bird view with Reveal.js |
||
+ | } |
||
delay(100); |
delay(100); |
||
Keyboard.releaseAll(); |
Keyboard.releaseAll(); |
Revision as of 05:05, 8 October 2014
Matériel
- Big Dome Push Button
- MDF 5 mm / Contreplaqué 5 mm
- Arduino Leonardo
Design
Logiciel
Emergency Logout
http://www.arduino.cc/en/Tutorial/KeyboardLogout
Spacebar for presentation, movie pause&resume, ...
const int domeButton = 12;
const int domeLed = 13;
boolean flag=false;
void setup() {
pinMode(domeLed, OUTPUT);
pinMode(domeButton, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
if (!flag && digitalRead(domeButton) == HIGH) {
digitalWrite(domeLed, HIGH);
Keyboard.print(" ");
delay(100);
Keyboard.releaseAll();
flag=true;
}
if (flag && digitalRead(domeButton) == LOW) {
digitalWrite(domeLed, LOW);
delay(100);
Keyboard.releaseAll();
flag=false;
}
}
for Reveal.js
const int domeButton = 12;
const int domeLed = 13;
boolean flag=false;
unsigned long time;
void setup() {
pinMode(domeLed, OUTPUT);
pinMode(domeButton, INPUT_PULLUP);
Keyboard.begin();
}
void loop() {
if (!flag && digitalRead(domeButton) == HIGH) {
digitalWrite(domeLed, HIGH);
time = millis();
delay(100);
Keyboard.releaseAll();
flag=true;
}
if (flag && digitalRead(domeButton) == LOW) {
digitalWrite(domeLed, LOW);
unsigned long demta = millis()-time;
if(delta<500) {
Keyboard.press(0x20); // SPACE
} else if(delta<1500) {
Keyboard.press(KEY_LEFT_ARROW); // or KEY_BACKSPACE
} else {
Keyboard.press(KEY_ESC); // for bird view with Reveal.js
}
delay(100);
Keyboard.releaseAll();
flag=false;
}
}