From fc0a62038cda36d070fe440143d2bdd044a9d99e Mon Sep 17 00:00:00 2001 From: Kristian Lauszus Date: Sun, 25 Mar 2012 16:28:50 +0200 Subject: [PATCH] Added ArduinoBlinkLED ADK Example The code for the Android application is heavily based on this guide: http://allaboutee.com/2011/12/31/arduino-adk-board-blink-an-led-with-you r-phone-code-and-explanation/ by Miguel --- .../adk/ArduinoBlinkLED/ArduinoBlinkLED.ino | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 examples/adk/ArduinoBlinkLED/ArduinoBlinkLED.ino diff --git a/examples/adk/ArduinoBlinkLED/ArduinoBlinkLED.ino b/examples/adk/ArduinoBlinkLED/ArduinoBlinkLED.ino new file mode 100644 index 00000000..303335af --- /dev/null +++ b/examples/adk/ArduinoBlinkLED/ArduinoBlinkLED.ino @@ -0,0 +1,46 @@ +// The source for the Android application can be found at the following link: http://www.tkjelectronics.dk/uploads/ArduinoBlinkLED.zip +// The code for the Android application is heavily based on this guide: http://allaboutee.com/2011/12/31/arduino-adk-board-blink-an-led-with-your-phone-code-and-explanation/ by Miguel + +#include +#include + +USB Usb; +ADK adk(&Usb,"TKJElectronics", // Manufacturer Name + "ArduinoBlinkLED", // Model Name + "Example sketch for the USB Host Shield", // Description (user-visible string) + "1.0", // Version + "http://www.tkjelectronics.dk/uploads/ArduinoBlinkLED.apk", // URL (web page to visit if no installed apps support the accessory) + "123456789"); // Serial Number (optional) + +#define LED_RED 13 // Pin 13 is occupied by the SCK pin on a normal Arduino (Uno, Duemilanove etc.), so use a different pin + +void setup() +{ + Serial.begin(115200); + Serial.print("\r\nADK demo start"); + if (Usb.Init() == -1) { + Serial.print("\r\nOSCOKIRQ failed to assert"); + while(1); //halt + } + pinMode(LED_RED, OUTPUT); +} + +void loop() +{ + Usb.Task(); + if(adk.isReady()) { + uint8_t msg[1]; + uint16_t len = sizeof(msg); + uint8_t rcode = adk.RcvData(&len, msg); + if(rcode && rcode != hrNAK) + USBTRACE2("Data rcv. :", rcode); + if(len > 0) { + Serial.print(F("\r\nData Packet: ")); + Serial.print(msg[0]); + digitalWrite(LED_RED,msg[0] ? HIGH : LOW); + } + } + else + digitalWrite(LED_RED, LOW); + delay(10); +}