Étape 3: Décodage de la télécommande
ON, OFF
- 882, 438
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 162
- 56, 162
- 56, 162
- 56, 162
- 56, 52
- 56, 162
- 56, 162
- 56, 162
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 52
- 56, 162
- 56, 162
- 56, 162
- 56, 162
- 56, 162
- 56, 162
- 56, 162
- 56, 162
- 56, 4010
- 882, 218
Il n’y avait aucun espace pour enregistrer les minutages pour 24 boutons de l’AVR, devait donc trouver un patron dans les signaux. Après beaucoup d’expérimentation, j’ai réussi à décoder le signal codage modèle pour la télécommande. Puisque c’est assez générique, les chances sont que votre télécommande RGB pourrait avoir les mêmes signaux. Si ce n’est pas le cas, vous devrez modifier les fonctions readIR() et decodeIR() dans le code.
Pour décoder les signaux, j’ai remarqué que les seules valeurs postées sur 18-22 et 26-30 changent pour différents boutons. En outre, les valeurs de rang 18-22 sont toujours identique à 26-30. Donc lecture toute une gamme est suffisant. J’ai choisi de lire les deux et comparer pour être sûr à 100 %. Les valeurs individuelles dans la gamme sont soit près de 52 ou 164. Donc j’ai supposé que signal horaire à proximité de 52 0 et 164 1. Puis décodé leurs valeurs en binaire. J’ai traité les boutons comme matrice 6 x 4 et nommé les boutons en conséquence de [0] [0] (en haut à gauche) [5] [](bottom right) 3.
Position du bouton | [0][0] B+ | [0][1] B- | [0] [2] hors | [0] [3] ON | [1][0] – R | [1][1] – G | [1][2] – B | [1][3] – W | [2][0] | [2][1] | [2][2] | [2][3] | [3][0] | [3][1] | [3][2] | [3][3] | [4][0] | [4][1] | [4][2] | [4][3] | [5][0] | [5][1] | [5][2] | [5][3] |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Position de calendrier 18 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
Position de calendrier 19 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
Position de calendrier 20 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
Position de calendrier 21 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Position de calendrier 22 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Décodé valeur décimale | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
Remarque : pour améliorer la vitesse, j’ai dur codé les valeurs de durée de temps dans le code. Aussi, j’ai utilisé axée sur l’interruption IR signal lecture alors les autres fonctions, comme fade effet, peuvent fonctionner en parallèle et obtenir la vitesse maximale.