Étape 2: Comment mettre en place les diverses données
/ * Modifié par Chris Targett
* Maintenant comprend plusieurs protocoles
* Novembre 2011
* IRremote : IRrecvDump - vidage détails de codes IR IRrecv
* Un détecteur IR/démodulateur doit être connecté à l’entrée RECV_PIN.
* Version 0.1 juillet 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*
* Modifié par Chris Targett pour accélérer le processus de collecte
* Codes IR (HEX et DEC) une télécommande (à mettre dans et fichier .h)
*
*/
#include < IRremote.h >
int RECV_PIN = 11 ;
IRrecv irrecv(RECV_PIN) ;
résultats de la decode_results ;
void setup()
{
Serial.Begin(9600) ;
irrecv.enableIRIn() ; Démarrer le récepteur
}
Décharges de la structure decode_results.
Appelons cela après IRrecv::decode()
void * à problème de compilateur
void dump(void *v) {}
decode_results * résultats = (decode_results *) v
void dump(decode_results *results) {}
int count = résultats -> rawlen ;
Si (résultats -> decode_type == inconnu) {}
Serial.Print ("codage inconnu:") ;
}
ElseIf (résultats -> decode_type == NEC) {}
Serial.Print ("décodé NEC:") ;
}
ElseIf (résultats -> decode_type == SONY) {}
Serial.Print ("décodé SONY:") ;
}
ElseIf (résultats -> decode_type == RC5) {}
Serial.Print ("décodé RC5:") ;
}
ElseIf (résultats -> decode_type == RC6) {}
Serial.Print ("décodé RC6:") ;
}
ElseIf (résultats -> decode_type == SAMSUNG) {}
Serial.Print ("décodé SAMSUNG:") ;
}
ElseIf (résultats -> decode_type == JVC) {}
Serial.Print ("décodé JVC:") ;
}
ElseIf (résultats -> decode_type == PANASONIC) {}
Serial.Print ("décodé Panasonic:") ;
}
Serial.Print (résultats -> value, HEX) ;
Serial.Print("(") ;
Serial.Print (résultats -> mèches, DEC) ;
Serial.println "(bits)") ;
Serial.Print ("#define Something_DEC") ;
Serial.println (résultats -> value, DEC) ;
Serial.Print ("#define Something_HEX") ;
Serial.println (résultats -> value, HEX) ;
Serial.Print ("Raw (") ;
Serial.Print (comptage, DEC) ;
Serial.Print("):") ;
pour (int i = 0; i < count; i ++) {}
Si ((i % 2) == 1) {}
Serial.Print (résultats -> rawbuf [i] * USECPERTICK, DEC) ;
}
else {}
Serial.Print (-résultats (int) -> rawbuf [i] * USECPERTICK, DEC) ;
}
Serial.Print("") ;
}
Serial.println("") ;
}
void loop() {}
Si (irrecv.decode (et résultats)) {}
benne basculante (et résultats) ;
irrecv.Resume() ; Recevoir la valeur suivante
}
}
Vous pouvez voir sur la photo comment lier Arduino avec l’appareil.
Après le chargement du code sur l’Arduino, nous devrions Appuyez sur les touches de la télécommande et la copie quelque part les résultats indiqués par le numéro de série.
Dans mon cas, j’ai obtenu la séquence suivante d’encodages :
Accensione 20C ° Caldo
RAW (150):-5320 3000-3000 3000-4400 550 600-1600-550 550 550-1650-550 550-550 550-1650 550-550 550-1650 500-550 550 550-1650-550 550-500 600-500 600-550 550-550 550-1650 500-550 550-600 500-1700 500-550 550-550 550-550 550-600 500-550 550-550 550-550 550-550 550-1650 550-1650 550-1650 500-1650 550-1650 550-550 550-550 550-550 550-550 550 - 1650 550 550-1650-500 550-550 550-1700 500-1650 550-550 550-500 600-550 550-550 550-550 550-550 550-550 550-1650 500-1700 500-550 550-550 550-550 550-550 550-550 550-600 500-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-500 550-1700 500-550 550-550 550-550 550-1650 550
Spegnimento
RAW (150):-3276 3100-2900 2950-4400 700 700-1500-400 700 700-1500-400 650-450 550-1650 550-550 650 600-1500-500 600 600-1600-500 600-500 600-450 650-450 600-550 550-550 550-550 550-600 500 600-1600-500 600-500 600-550 550-500 600-500 600-550 550-550 550 600-1600-500 600-500 600-500 550-1650 550 600-1600-500 600-500 600-550 550-550 550 - 1600 600 550-1600-550 550-550 550-1650 550 600-1600-550 550-500 600-500 600-550 550-550 550-500 600-500 600 600-1600 550-1600-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-550 550-550 550-500 600-500 600-500 600 600-1600-500 600 550-1600-550 550 600-1600-550 550-550 550
Accensione 23C ° Freddo 2 FAN
RAW (150):-16044 3050-3000 3000-4400 550 600-1600-550 550 550-1650-550 550-550 550-1650 550-500 600 550-1600-550 550-1650 550-1650 550 550-1650-550 550-550 550-500 600 550-1600-550 550-550 550 550-1650-550 550-550 550-550 550-550 550-550 550-550 550-500 600-1650 500-550 550-600 500-1700 500-550 550-550 550-550 550-550 550-550 550-550 550 - 1650 550 550-1650-550 550-500 550-1650 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-550 550-550 550-550 550-550 550-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550 600-1600-550 550
Accensione 20C ° Caldo e Swing
RAW (150): 18566 3000-3000 3000-4400 550-1650 550-500 600 600-1600-500 600-500 600 550-1600-550 550-1650 550-500 600 600-1600-550 550-550 550-550 550 600-1600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-550 550 550-1600-550 550-600 500-550 550-550 550-550 550-550 550-550 550 - 1650 550-1650 550-550 550-550 550 550-1600-1650 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550 550-1650-550 550-550 550-550 550-550 500-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-1650 550-1650 500-1650 550-550 550-1700 500
Accensione 23C ° Freddo 2 FAN e Swing
RAW (150): 2084 2950-3050 2950-4400 550 600-1600-550 550-1650 550-550 550-550 550 600-1600-500 600 550-1600-500 600-1650 550-1650 550 600-1600-500 600 600-1600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-500 600-550 550-500 600-1650 550-550 550 600-1600-500 600 550-1600 600-1600-500 600-500 600-550 550-500 600 - 1650 550 600-1600-500 600-500 550 550-1650-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-500 600-500 600-500 600-500 600-500 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-550 550-1650 550-1650 550-1600 600 550-1600-550 600-500 550-550 550-550 550
Comme indiqué dans la bibliothèque iRemote, afin de retransmettre ces données, il est nécessaire d’apporter quelques modifications, en particulier, doivent remplacer les traits d’Union, supprimez la valeur première et placer parmi les différentes valeurs, une virgule, comme dans l’Arduino code est inséré dans un vecteur d’entiers.
Pour faciliter cela, j’ai créé un petit programme en Java qui peut faire ces tâches automatiquement.
Aussi, ce programme est disponible dans le repo Github et est appelé AcToolArduino. Dans cette première version, le programme automatise le processus en entrant les informations dans l’objet TextField. Dans la prochaine version, vous pouvez charger des fichiers, les résultats obtenus de l’Arduino serial.