Modifications

Sauter à la navigation Sauter à la recherche
4 145 octets ajoutés ,  26 septembre 2015 à 15:06
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{ADF-LED-BACKPACK-NAV}}
 
{{ADF-LED-BACKPACK-NAV}}
   −
{{traduction}}
+
{{bloc-etroit
 +
  | text = Le circuit intégré HT16K33 (contrôleur) sur ce backpack à l'adresse I2C par défaut '''0x70'''. Puisque chaque composant d'un bus I2C doit disposer d'une adresse unique, il est important d'éviter les collisions d'adressage sinon vous risquez d'obtenir d'étrange réponses en retour (de vos composants)!
 +
 
 +
Par chance, le HT16K33 dispose de 2 ou 3 broches permettant d'ajuster l'adresse, ce qui permet de modifier l'adresse du backpack sur le bus I2C! Le backpack de la matrice 8x8 mini (20mm) dispose de deux broches/pins modifiant l'adresse I2C. Les backpacks de la matrice 8x8 30mm, de la matrice  8x8 bi-colore et de l'afficheur 4 x 7-segments disposent de 3 broches/pins permettant d'ajuster l'adresse I2C.
 +
 
 +
Cela signifie que vous pouvez utiliser les adresses suivantes pour les backpacks: }}
 +
 
 +
* Matrice 8x8 Mini 20mm: 0x70, 0x71, 0x72, 0x73
 +
* Matrice 8x8 Petite 30mm: 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77
 +
* Afficheur 4 x 7-segments: 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77
 +
* Matrice 8x8 Bi-color 30mm: 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77
 +
 
 +
Vous pouvez mélanger autant de matrices et afficheurs, aussi longtemps que chacun d'entre eux dispose de sa propre adresse unique!
 +
 
 +
== Modifier les adresses ==
 +
Vous pouvez modifier l'adresse d'un backpack vraiment très facilement.
 +
 
 +
Si vous regardez derrière la carte, vous trouverez deux ou trois "cavaliers" sous forme de pastilles à ponter avec un point de soudure (''Solder Jumper'' en anglais). Ces deux ou trois cavaliers portent les mentions A0, A1 ou A2.
 +
 
 +
Chacun de ces cavaliers utilisé pour définir matériellement (''hardcode'') l'adresse du module. Si le cavalier active l'adresse s'il est court-circuité/ponté avec un point de soudure. '''A0''' active le bit de poids le plus faible qui à la valeur '''1''', '''A1''' le bit d'adresse du milieu qui correspond à la valeur '''2''' et '''A2''' le bit de poids fort qui correspond à la valeur '''4'''.
 +
 
 +
Au final, l'adresse est: '''0x70 + A2 + A1 + A0'''.
 +
 
 +
Donc, par exemple:
 +
* Si '''A2''' est ponté et '''A0''' est ponté, l'adresse est '''0x70 + 4 + 1 = 0x75'''.
 +
* Si seulement '''A1''' est le ponté, l'adresse est '''0x70 + 2 = 0x72'''
 +
 
 +
{{ambox | text = '''A2''' n'apparait pas sur les matrices 8x8 mini (20mm), vous ne pouvez donc pas fixer d'adresse au dessus de '''0x73''' }}
 +
 
 +
{{Ambox
 +
| type      = delete
 +
| image      = [[File:StopHand.png|40px|alt=Stop]]
 +
| textstyle  = color: red; font-weight: bold; font-style: italic;
 +
| text      = Sur le backpack de la matrice 8x8 30mm, les libellés A1 et A2 sont malheureusement été inversés!
 +
}}
 +
 
 +
{{ADFImage|ADF-LED-BACKPACK-ARD-01.jpg|300px}}
 +
 
 +
{{ADFImage|ADF-LED-BACKPACK-ARD-02.jpg|300px}}
 +
 
 +
== Changer l'adresse dans votre code ==
 +
 
 +
Une fois que vous avez fixé l'adresse I2C du backpack, vous aurez également besoin de modifier l'adresse dans votre code!
 +
Pour la librairie écrite pour Arduino, c'est simple. Par exemple, considérons que vous voulez utiliser deux afficheurs 7 segments. L'un dispose de l'adresse 0x70 et l'autre de l'adresse 0x71.
 +
 
 +
Vous trouverez ce code dans les exemples
 +
 
 +
<nowiki>Adafruit_7segment matrix = Adafruit_7segment();
 +
   
 +
    void setup() {
 +
    Serial.begin(9600);
 +
    Serial.println("Test afficheur 7 Segment (Backpack)");
 +
   
 +
    matrix.begin(0x70);
 +
    }</nowiki>
 +
 
 +
Que vous changerez pour obtenir:
 +
 
 +
<nowiki>Adafruit_7segment matrix1 = Adafruit_7segment();
 +
Adafruit_7segment matrix2 = Adafruit_7segment();
 +
 +
void setup() {
 +
Serial.begin(9600);
 +
Serial.println("Test d un double afficheur 7 Segments (Backpack)");
 +
 +
matrix1.begin(0x70);
 +
matrix2.begin(0x71);
 +
}</nowiki>
 +
 
 +
Voila! Le code modifié instancie deux objets de type "matrice 7 segments" (car un afficheur 7 segments est une matrice raccordée différemment).
 +
 
 +
Ensuite, un objet est appelé avec '''begin(0x70)''' et l'autre avec '''begin(0x71)'''.
 +
 
 +
Ensuite, chaque instance (matrix1 ou matrix2) peut être utilisée individuellement. Si vous avez besoin de plus de matrice... instanciez simplement plus d'objets en haut du programme et initialiser le en appelant '''begin()''' (avec l'adresse I2C qui doit être unique sur le bus).
    
{{ADF-LED-BACKPACK-TRAILER}}
 
{{ADF-LED-BACKPACK-TRAILER}}
29 917

modifications

Menu de navigation