Created
September 9, 2015 21:06
-
-
Save SriharshaShesham/651012c513a1b8852a81 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The source for the Android application can be found at the following link: https://github.com/Lauszus/ArduinoBlinkLED | |
// 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 <adk.h> | |
// | |
// CAUTION! WARNING! ATTENTION! VORSICHT! ADVARSEL! ¡CUIDADO! ВНИМАНИЕ! | |
// | |
// Pin 13 is occupied by the SCK pin on various Arduino boards, | |
// including Uno, Duemilanove, etc., so use a different pin for those boards. | |
// | |
// CAUTION! WARNING! ATTENTION! VORSICHT! ADVARSEL! ¡CUIDADO! ВНИМАНИЕ! | |
// | |
#if defined(LED_BUILTIN) | |
#define LED LED_BUILTIN // Use built in LED | |
#else | |
#define LED 9 // Set to something here that makes sense for your board. | |
#endif | |
// Satisfy IDE, which only needs to see the include statment in the ino. | |
#ifdef dobogusinclude | |
#include <spi4teensy3.h> | |
#include <SPI.h> | |
#endif | |
USB Usb; | |
ADK adk(&Usb, "Srichakram", // Manufacturer Name | |
"ArduinoADK", // Model Name | |
"Simple Led blink 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) | |
uint32_t timer; | |
bool connected; | |
void setup() { | |
Serial.begin(115200); | |
#if !defined(__MIPSEL__) | |
while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection | |
#endif | |
if (Usb.Init() == -1) { | |
Serial.print("\r\nOSCOKIRQ failed to assert"); | |
while (1); // halt | |
} | |
pinMode(LED, OUTPUT); | |
Serial.print("\r\nArduino Blink LED Started"); | |
} | |
void loop() { | |
Usb.Task(); | |
if (adk.isReady()) { | |
if (!connected) { | |
connected = true; | |
Serial.print(F("\r\nConnected to accessory")); | |
} | |
uint8_t msg[1]; | |
uint16_t len = sizeof(msg); | |
uint8_t rcode = adk.RcvData(&len, msg); | |
if (rcode && rcode != hrNAK) { | |
Serial.print(F("\r\nData rcv: ")); | |
Serial.print(rcode, HEX); | |
} else if (len > 0) { | |
Serial.print(F("\r\nData Packet: ")); | |
Serial.print(msg[0]); | |
digitalWrite(LED, msg[0] ? HIGH : LOW); | |
} | |
if (millis() - timer >= 1000) { // Send data every 1s | |
timer = millis(); | |
rcode = adk.SndData(sizeof(timer), (uint8_t*)&timer); | |
if (rcode && rcode != hrNAK) { | |
Serial.print(F("\r\nData send: ")); | |
Serial.print(rcode, HEX); | |
} else if (rcode != hrNAK) { | |
Serial.print(F("\r\nTimer: ")); | |
Serial.print(timer); | |
} | |
} | |
} else { | |
if (connected) { | |
connected = false; | |
Serial.print(F("\r\nDisconnected from accessory")); | |
digitalWrite(LED, LOW); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment