Étape 3: Décodage des signaux IR (Circuit et logiciel)
Circuit :
Si vous avez un bouclier infrarouge, vous êtes bon pour aller.
Si vous ne l’avez bouclier infrarouge vous pouvez toujours suivre cette étape en procédant comme suit :
Vous pouvez facilement décoder les signaux IR avec votre Arduino à l’aide d’un TSOP382 et l' Infrarouge bibliothèque Shield pour Arduino.
- Connecter un TSOP382 tel qu’indiqué en page 1 du Circuit d’Application de la feuille de données de TSOP382 (jointe ici). La broche « OUT » de la TSOP382 devra être raccordé à la borne 4 de votre Arduino.
Logiciel :
- Chargez l’exemple IR récepteur Dump dans votre Arduino.
- Ouvrez la fenêtre du moniteur serial Arduino.
- Prenez les commandes IR que vous voulez vous débarrasser, puis pointer leur IR a conduit à la TSOP382 et appuyez sur la clé (s) vous souhaitez décoder.
Vous devriez voir une sortie semblable au suivant :
Où, dans ce cas, « NEC » est protocole infrarouge du contrôle, et « FF609F » est le code infrarouge de la clef en hexadécimal.
Le tableau de « Raw » de nombres est qu'une représentation de chacun de l’IR des signaux impulsion en microsecondes (nous) regarder avec une forte impulsion puis un pouls faible et en alternance jusqu'à ce que la totalité du signal a été lue.
Dans l’exemple ci-dessus "-16246 8950-4500 600" signifie 16246us HIGH, LOW 8950us, 4500us 600us haute, basse.
Remarque : Si vous souhaitez utiliser un code brut au lieu de sa valeur HEX, vous devrez le nettoyer en enlevant le premier élément (-16346) et en supprimant le signe négatif (-) de tous les autres éléments.
Dans l’exemple ci-dessus, le code brut obtenu après le nettoyage ressemblerait à ceci :
Si vous souhaitez savoir comment modifier un code brut de NEC à un nombre hexadécimal à la main (juste pour le fun), consultez cette page web sur le protocole de NEC. Pour vous aider à démarrer, dans le code brut ci-dessus :
- 8950us (qui est presque 9000us) correspond à l’impulsion haute départ de 9ms (1000us = 1ms) dans le protocole de NEC.
- 4500us correspond à 4.5ms
- et 550us 600us serait un "0" bit (deux 562.5us impulsions, un haut et un bas)