2012-03-06 04:30:47 +01:00
|
|
|
/*
|
|
|
|
Arduino Programs Blink
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2012-03-06 04:30:47 +01:00
|
|
|
This sketch demonstrates the Keyboard library.
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2012-10-21 18:36:54 +02:00
|
|
|
For Leonardo and Due boards only.
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2012-03-06 15:26:01 +01:00
|
|
|
When you connect pin 2 to ground, it creates a new
|
2012-03-06 04:30:47 +01:00
|
|
|
window with a key combination (CTRL-N),
|
|
|
|
then types in the Blink sketch, then auto-formats the text
|
2013-10-21 09:58:40 +02:00
|
|
|
using another key combination (CTRL-T), then
|
|
|
|
uploads the sketch to the currently selected Arduino using
|
2012-03-06 04:30:47 +01:00
|
|
|
a final key combination (CTRL-U).
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2012-03-06 04:30:47 +01:00
|
|
|
Circuit:
|
2012-11-04 22:49:14 +01:00
|
|
|
* Arduino Leonardo, Micro or Due
|
2012-03-06 15:26:01 +01:00
|
|
|
* wire to connect D2 to ground.
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2012-03-06 04:30:47 +01:00
|
|
|
created 5 Mar 2012
|
2012-03-29 13:25:22 +02:00
|
|
|
modified 29 Mar 2012
|
2012-03-06 04:30:47 +01:00
|
|
|
by Tom Igoe
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2012-03-06 04:30:47 +01:00
|
|
|
This example is in the public domain
|
2013-10-21 09:58:40 +02:00
|
|
|
|
2012-03-06 04:30:47 +01:00
|
|
|
http://www.arduino.cc/en/Tutorial/KeyboardReprogram
|
|
|
|
*/
|
2012-03-06 15:26:01 +01:00
|
|
|
|
2013-10-21 09:58:40 +02:00
|
|
|
// use this option for OSX.
|
2012-03-29 18:04:22 +02:00
|
|
|
// Comment it out if using Windows or Linux:
|
2012-03-06 15:26:01 +01:00
|
|
|
char ctrlKey = KEY_LEFT_GUI;
|
2012-03-29 18:04:22 +02:00
|
|
|
// use this option for Windows and Linux.
|
|
|
|
// leave commented out if using OSX:
|
2013-10-21 09:58:40 +02:00
|
|
|
// char ctrlKey = KEY_LEFT_CTRL;
|
2012-03-06 15:26:01 +01:00
|
|
|
|
|
|
|
|
2012-03-06 04:30:47 +01:00
|
|
|
void setup() {
|
2013-10-21 09:58:40 +02:00
|
|
|
// make pin 2 an input and turn on the
|
2012-03-06 04:30:47 +01:00
|
|
|
// pullup resistor so it goes high unless
|
|
|
|
// connected to ground:
|
2012-03-06 15:26:01 +01:00
|
|
|
pinMode(2, INPUT_PULLUP);
|
2012-03-27 21:00:24 +02:00
|
|
|
// initialize control over the keyboard:
|
|
|
|
Keyboard.begin();
|
2012-03-06 04:30:47 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
void loop() {
|
2012-03-06 15:26:01 +01:00
|
|
|
while (digitalRead(2) == HIGH) {
|
|
|
|
// do nothing until pin 2 goes low
|
2012-03-06 04:30:47 +01:00
|
|
|
delay(500);
|
|
|
|
}
|
2012-03-06 15:26:01 +01:00
|
|
|
delay(1000);
|
2012-03-06 04:30:47 +01:00
|
|
|
// new document:
|
2012-03-06 15:26:01 +01:00
|
|
|
Keyboard.press(ctrlKey);
|
|
|
|
Keyboard.press('n');
|
|
|
|
delay(100);
|
2012-03-06 04:30:47 +01:00
|
|
|
Keyboard.releaseAll();
|
|
|
|
// wait for new window to open:
|
|
|
|
delay(1000);
|
2012-03-06 15:26:01 +01:00
|
|
|
|
2012-03-06 04:30:47 +01:00
|
|
|
// Type out "blink":
|
|
|
|
Keyboard.println("void setup() {");
|
|
|
|
Keyboard.println("pinMode(13, OUTPUT);");
|
|
|
|
Keyboard.println("}");
|
|
|
|
Keyboard.println();
|
|
|
|
Keyboard.println("void loop() {");
|
|
|
|
Keyboard.println("digitalWrite(13, HIGH);");
|
|
|
|
Keyboard.print("delay(3000);");
|
|
|
|
// 3000 ms is too long. Delete it:
|
2013-10-21 09:58:40 +02:00
|
|
|
for (int keystrokes = 0; keystrokes < 6; keystrokes++) {
|
2012-03-28 18:24:17 +02:00
|
|
|
delay(500);
|
2013-10-21 09:58:40 +02:00
|
|
|
Keyboard.write(KEY_BACKSPACE);
|
2012-03-06 04:30:47 +01:00
|
|
|
}
|
|
|
|
// make it 1000 instead:
|
|
|
|
Keyboard.println("1000);");
|
|
|
|
Keyboard.println("digitalWrite(13, LOW);");
|
|
|
|
Keyboard.println("delay(1000);");
|
2012-03-06 15:26:01 +01:00
|
|
|
Keyboard.println("}");
|
2012-03-06 04:30:47 +01:00
|
|
|
// tidy up:
|
2012-03-06 15:26:01 +01:00
|
|
|
Keyboard.press(ctrlKey);
|
|
|
|
Keyboard.press('t');
|
|
|
|
delay(100);
|
2012-03-06 04:30:47 +01:00
|
|
|
Keyboard.releaseAll();
|
|
|
|
delay(3000);
|
|
|
|
// upload code:
|
2012-03-06 15:26:01 +01:00
|
|
|
Keyboard.press(ctrlKey);
|
|
|
|
Keyboard.press('u');
|
|
|
|
delay(100);
|
2012-03-06 04:30:47 +01:00
|
|
|
Keyboard.releaseAll();
|
|
|
|
|
|
|
|
// wait for the sweet oblivion of reprogramming:
|
2013-10-21 09:58:40 +02:00
|
|
|
while (true);
|
2012-03-06 04:30:47 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2012-03-06 15:26:01 +01:00
|
|
|
|
|
|
|
|
|
|
|
|