/*---------------------------------- * * * Feu rouge armigarduino * (c) D obriot janvier 2013 * *http://amigarduino.free.Fr */ //=============================== // inclu les library pour android ADK //=============================== #include #include #include #define COMMAND_LED 0x2 #define TARGET_PIN_VERT 0x2 #define TARGET_PIN_ORANGE 0x3 #define TARGET_PIN_ROUGE 0x4 #define VALUE_ON 0x1 #define VALUE_OFF 0x0 #define ONOFF 10 // pour stocker les messages byte message[4]; byte PINS[4] = {0,TARGET_PIN_VERT,TARGET_PIN_ORANGE,TARGET_PIN_ROUGE}; /*----------------------------------- la chaine init android ------------------------------------*/ AndroidAccessory acc("amigarduino","amigarduinofeuled","amigaduinofeuled","1.0","http://amigarduino.free.fr","Serial"); /*----------------------------------- initialisation ------------------------------------*/ void setup() { Serial.begin(115200); //============================== //demarre accessoire android //============================== pinMode(ONOFF,OUTPUT); digitalWrite(ONOFF,LOW); acc.powerOn(); //Serial.println("Ca demarre"); pinMode(ONOFF,OUTPUT); digitalWrite(ONOFF,LOW); //----------------------------- //on met a zero //------------------------------ for (int i=1; i <= 4; i++){ pinMode ( PINS[i],OUTPUT); analogWrite(PINS[i],LOW);} analogWrite(1,LOW); } /*----------------------------------- la boucle ------------------------------------*/ void loop () { if (acc.isConnected()) { /*--------------------------------- on lit si données recues ---------------------------------*/ digitalWrite(ONOFF,HIGH); int len = acc.read(message,sizeof(message),1); if (len >0 ) { if (message[0]== COMMAND_LED ) { int Cible = message[1] ; //Serial.print(Cible); //Serial.print(" | " ); //Serial.print (PINS[Cible]); //Serial.print(" | " ); //Serial.print(message[2]); if (Cible >0 && Cible < 4 ) { // etat du bouton byte value = message[2]; // agit en fonction if (value == VALUE_ON ) { digitalWrite(PINS[Cible],HIGH); //Serial.println(" ON " ); } else if (value == VALUE_OFF) { digitalWrite(PINS[Cible],LOW); //Serial.println(" OFF " ); } } } } else { digitalWrite(ONOFF,LOW); } } }