Modifications

Sauter à la navigation Sauter à la recherche
3 566 octets ajoutés ,  6 décembre 2015 à 12:26
Ligne 72 : Ligne 72 :  
== La bibliothèque ==
 
== La bibliothèque ==
 
Frederic Boulanger (voir section ''ressources'') à réaliser une excellent classe bibliothèque pour prendre le contrôle de cet afficheur.
 
Frederic Boulanger (voir section ''ressources'') à réaliser une excellent classe bibliothèque pour prendre le contrôle de cet afficheur.
 +
 +
Il n'est vraiment pas nécessaire de réinventer la roue si quelqu'un à déjà fait un travail remarquable. Je vous propose donc de repartir de ce travail.
    
=== Télécharger ===
 
=== Télécharger ===
Ligne 106 : Ligne 108 :  
Nous allons néanmoins scanner le bus I2C et identifier l'adresse de notre breakout. Dans ce cas de figure, notre breakout est un esclave et notre PyBoard le maitre (''master'') du bus.
 
Nous allons néanmoins scanner le bus I2C et identifier l'adresse de notre breakout. Dans ce cas de figure, notre breakout est un esclave et notre PyBoard le maitre (''master'') du bus.
   −
  <nowiki>from pub import I2C
+
  <nowiki>from pyb import I2C
 
i2c = I2C( 1, I2C.MASTER )
 
i2c = I2C( 1, I2C.MASTER )
 
i2c.scan()</nowiki>
 
i2c.scan()</nowiki>
Ligne 140 : Ligne 142 :     
Vous pouvez donc continuer à ajouter autant de backpack que vous voulez pour autant qu'il reste des adresses disponibles. La prochaine page montre comment configurer les adresses sur vos backpack de votre afficheur 4x7.
 
Vous pouvez donc continuer à ajouter autant de backpack que vous voulez pour autant qu'il reste des adresses disponibles. La prochaine page montre comment configurer les adresses sur vos backpack de votre afficheur 4x7.
 +
 +
== Modifier l'adresse ==
 +
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 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 le backpack:
 +
* Afficheur 4 x 7-segments: 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 addresses ==
 +
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 (''hardcoder'') 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'''
 +
 +
{{ADFImage|ADF-LED-BACKPACK-ARD-01.jpg|300px}}
 +
 +
== Changer l'adresse dans votre code ==
 +
Il faut bien entendu adapter l'adresse du périphérique I2C dans le code de votre programme.
 +
 +
Si vous modifier l'adresse de votre afficheur I2C de 0x70 à 0x074 (A2 et A0 pontés) alors votre code:
 +
 +
<nowiki>from pub import I2C
 +
i2c = I2C( 1, I2C.MASTER )
 +
led4x7 = LED4x7( addr=0x70, i2c=i2c )
 +
led4x7.on()</nowiki>
 +
 +
deviendra...
 +
 +
<nowiki>from pub import I2C
 +
i2c = I2C( 1, I2C.MASTER )
 +
led4x7 = LED4x7( addr=0x75, i2c=i2c )
 +
led4x7.on()</nowiki>
    
== Ressources ==
 
== Ressources ==
Ligne 145 : Ligne 189 :     
== Où acheter ==
 
== Où acheter ==
 +
* {{pl|570|La carte PyBoard originale}}
 +
* {{pl|766|Pyboard lite v1.0 (avec accéléromètre)}}
 +
* {{pl|765|Pyboard lite v1.0 ('''sans''' accéléromètre)}}
 
* {{pl|208|4 chiffres à 7 segments '''rouge'''}}
 
* {{pl|208|4 chiffres à 7 segments '''rouge'''}}
 
* {{pl|211|4 chiffres à 7 segments '''bleu'''}}
 
* {{pl|211|4 chiffres à 7 segments '''bleu'''}}
 
* {{pl|209|4 chiffres à 7 segments '''vert'''}}
 
* {{pl|209|4 chiffres à 7 segments '''vert'''}}
 
* {{pl|210|4 chiffres à 7 segments '''jaune'''}}
 
* {{pl|210|4 chiffres à 7 segments '''jaune'''}}
 +
 +
<br /><hr /><small>Source diverses:
 +
* [https://micropython.org/doc/module/pyb/I2C class I2C] écrit par/written by Damien P.George et autres sources.
 +
* [http://learn.adafruit.com/adafruit-led-backpack/overview Control small led matrice with ease] créé par [http://learn.adafruit.com/users/3 LadyAda] pour AdaFruit Industries. Crédit [http://www.adafruit.com AdaFruit Industries]
 +
* [http://wwwdi.supelec.fr/fb/Archi2015/PyBoardHT16K33 Manip avec un afficheur LED sur bus I2C] ([http://wwwdi.supelec.fr CentraleSupélec.fr]) - Licence CC-BY-SA.
 +
* Production produit par MC Hobby SPRL ([http://shop.mchobby.be shop.mchobby.be]) -  CC-BY-SA v4.0.
 +
 +
Traduit/composé par Meurisse D. pour [http://shop.mchobby.be MCHobby.be] - Translated/assembled by Meurisse D. for [http://shop.mchobby.be MCHobby.be]</small>
 +
 +
{{MP-Accord}}
 +
 +
{{ADF-Accord}}
 +
 +
{{MCH-Accord}}
29 917

modifications

Menu de navigation