Modifications

Sauter à la navigation Sauter à la recherche
2 167 octets ajoutés ,  7 avril 2013 à 11:25
Ligne 52 : Ligne 52 :  
et produit le résultat suivant dans Arduino IDE:
 
et produit le résultat suivant dans Arduino IDE:
 
  <nowiki>5abc110</nowiki>
 
  <nowiki>5abc110</nowiki>
 +
 +
'''Dernier octet:'''<br />
 +
Commençons par le dernier octet affiché en valeur décimal. Vous pouvez facilement identifier la valeur 110 à la fin du message dans Arduino IDE, il correspond exactement à la valeur 110 (en notation décimale) que vous pouvez voir à la fin de l'instruction writeList. 
 +
 +
'''Premier octet:'''<br />
 +
Reste les 4 premiers octet/bytes... dont le premier n'est autre que l'adresse du registre. Même si cette valeur ne nous intéresse pas, nous allons quand même la décoder.
 +
 +
Le numéro de registre envoyé dans l'instruction ''writeList'' est 0x35. Il s'agit d'une valeur arbitraire en notation hexadécimale. La valeur correspondant en notation décimal est 53. 
 +
 +
Conformément au fonctionnement du programme, tous les octets du message (sauf le dernier) sont affichés comme des caractères.
 +
 +
Il se fait justement que la valeur 65 en notation décimale correspondons au code Ascii du caractère "5".... raison pour laquelle c'est un "5" qui commence le message.
 +
 +
Le numéro de registre à fort peut d'importance dans l'exemple qui nous concernen mais sachez néanmoins que son utilisation sera d'une importance vitale pour des projets plus élaborés.
 +
 +
'''Deuxième, troisième et quatrième octets:'''<br />
 +
Ces autres octets correspondent au corps du message que nous voulions communiquer à l'esclave.
 +
 +
Attardons nous sur le deuxième octets qui est le caractère "a".
 +
 +
Dans le code python, vous pouvez notez l'instruction python ''ord('a')''. Cette dernière transforme le caractère "a" en sa représentation numérique ascii (qui est la valeur 97 en notation décimale).
 +
 +
C'est donc la valeur 97 (ou 0x61 pour son équivalent hexadécimal) qui voyage sur le bus I2C.
 +
 +
Conformément au fonctionnement du programme Arduino SlaveListener, tous les octets/bytes (sauf le dernier) sont transformés en caractères lors de l'envoi vers le Moniteur Série. Il est donc normal que la valeur 97 redevienne un "a" au moment de l'envoi vers le moniteur série.
 +
 +
=== Autres Transactions ===
 +
Les autres transactions sont des variantes des informations déjà décrites.
 +
 +
Vous ne devriez plus avoir de problèmes pour les décoder.
 +
   
    
{{ArduPi-I2C-TRAILER}}
 
{{ArduPi-I2C-TRAILER}}
29 917

modifications

Menu de navigation