J'ai une Arduino uno depuis peu.
J'ai cherché en vain jusque là, mais
je ne trouve pas le truc pour pouvoir assigner une commande reçue par IR à une action (allumage led par exemple)
La télécommande fonctionne bien, j'ai un signal différent à chaque touche, en hexadécimal.
Une aide ?

interpreter le signal de la telecommande
Débuté par Ulmo, sept. 08 2012 02:39
5 réponses à ce sujet
#1
Posté 08 septembre 2012 - 02:39
#2
Posté 08 septembre 2012 - 10:33
Il faut d’abord apprendre à programmer en C/C++ pour programmer l'Arduino.
Si tu sais programmer ça ne devrais pas être difficile, un simple switch sur les valeurs retourner par le module infrarouge et le tour est joué.
Si tu sais programmer ça ne devrais pas être difficile, un simple switch sur les valeurs retourner par le module infrarouge et le tour est joué.
#3
Posté 08 septembre 2012 - 12:12
j'ai trouvé : pour interpreter un ordre de la telecommande IR, en HEX dans le programme, il faut écrire avant le chiffre HEX en question : 0x
exemple :
if (results.value ==0x10) // 10 étant le signal reçu et affiché sur le serial, pour la touche 1, (810 pour la touche 2 etc..)
{
digitalWrite(led, HIGH);
}
Par contre, tant que j'ai pas appuyé sur une autre touche, la commande reçue précédemment reste valide, et la led ne s'éteind pas, même en donnant l'instruction :
digitalWrite(led, LOW);
exemple :
if (results.value ==0x10) // 10 étant le signal reçu et affiché sur le serial, pour la touche 1, (810 pour la touche 2 etc..)
{
digitalWrite(led, HIGH);
}
Par contre, tant que j'ai pas appuyé sur une autre touche, la commande reçue précédemment reste valide, et la led ne s'éteind pas, même en donnant l'instruction :
digitalWrite(led, LOW);
#4
Posté 08 septembre 2012 - 01:48
Ah, c'étais donc ça ton problème.
Pour qu'elle s’éteigne quand tu relâche tu peut rajouter un else à ta condition qui éteint la led.
Pour qu'elle s’éteigne quand tu relâche tu peut rajouter un else à ta condition qui éteint la led.
#5
Posté 09 septembre 2012 - 09:57
Oui, j'y avais pensé aussi mais non, la condition reste valide. Il ne faudrait que la detection du front montant.
#6
Posté 09 septembre 2012 - 10:23
Salut,
il faut que tu remettes results.value à 0. Si tu n'y a pas accès, passe par une valeur intermédiaire... c'est un peu lourd mais ça fonctionne.
il faut que tu remettes results.value à 0. Si tu n'y a pas accès, passe par une valeur intermédiaire... c'est un peu lourd mais ça fonctionne.
1 utilisateur(s) li(sen)t ce sujet
0 members, 1 guests, 0 anonymous users