1
0
mirror of https://github.com/arduino/Arduino.git synced 2024-12-12 23:08:52 +01:00
Arduino/build/shared/examples/09.USB/Keyboard/KeyboardReprogram/KeyboardReprogram.ino

98 lines
2.2 KiB
Arduino
Raw Normal View History

2012-03-06 04:30:47 +01:00
/*
Arduino Programs Blink
2012-03-06 04:30:47 +01:00
This sketch demonstrates the Keyboard library.
For Leonardo and Due boards only.
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
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).
2012-03-06 04:30:47 +01:00
Circuit:
* Arduino Leonardo, Micro or Due
2012-03-06 15:26:01 +01:00
* wire to connect D2 to ground.
2012-03-06 04:30:47 +01:00
created 5 Mar 2012
modified 29 Mar 2012
2012-03-06 04:30:47 +01:00
by Tom Igoe
2012-03-06 04:30:47 +01:00
This example is in the public domain
2012-03-06 04:30:47 +01:00
http://www.arduino.cc/en/Tutorial/KeyboardReprogram
*/
2012-03-06 15:26:01 +01: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:
// char ctrlKey = KEY_LEFT_CTRL;
2012-03-06 15:26:01 +01:00
2012-03-06 04:30:47 +01:00
void setup() {
// 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);
// 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:
for (int keystrokes = 0; keystrokes < 6; keystrokes++) {
delay(500);
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:
while (true);
2012-03-06 04:30:47 +01:00
}
2012-03-06 15:26:01 +01:00