Ligne 83 : |
Ligne 83 : |
| | | |
| == Utiliser == | | == Utiliser == |
| + | Dans l'exemple suivant, les LEDs branchées sur les sorties 0 et 1 du MCP23017 clignoterons en alternance. |
| | | |
| <syntaxhighlight lang="python"> | | <syntaxhighlight lang="python"> |
− | xxx
| + | from time import sleep |
| + | from machine import I2C, Pin |
| + | from mcp230xx import MCP23017 |
| + | |
| + | # Création bus I2C et MCP23017 |
| + | i2c = I2C( sda=Pin(4), scl=Pin(5), freq=20000 ) |
| + | mcp = MCP23017( i2c=i2c ) |
| + | |
| + | # Configurer les broches 0 et 1 en sortie |
| + | mcp.setup( 0, Pin.OUT ) |
| + | mcp.setup( 1, Pin.OUT ) |
| + | |
| + | for i in range( 10 ): |
| + | # Activer sortie 0 |
| + | mcp.output( 0, True ) |
| + | sleep( 0.5 ) |
| + | mcp.output( 1, True ) |
| + | sleep( 0.5 ) |
| + | # Désactiver sortie 1 |
| + | mcp.output( 0, False ) |
| + | sleep( 0.5 ) |
| + | mcp.output( 1, False ) |
| + | sleep( 0.5 ) |
| </syntaxhighlight> | | </syntaxhighlight> |
| + | |
| + | L'exemple suivant affiche le message "Press!" lorsque le bouton branché sur l'entrée 3 est pressé. |
| + | |
| + | Comme la résistance Pull-Up sur l'entrée 3 est activée : |
| + | * L'entrée 3 est au niveau BAS lorsque le bouton est pressé! |
| + | * L'entrée 3 est au niveau HAUT lorsque l'on ne touche pas le bouton. |
| + | |
| + | Pour lire l'état de l'entrée 3, il faut utiliser {{fname|mcp.input(3)}} . |
| + | |
| + | <syntaxhighlight lang="python"> |
| + | from time import sleep,time |
| + | from machine import I2C, Pin |
| + | from mcp230xx import MCP23017 |
| + | |
| + | # Création bus I2C et MCP23017 |
| + | i2c = I2C( sda=Pin(4), scl=Pin(5), freq=20000 ) |
| + | mcp = MCP23017( i2c=i2c ) |
| + | |
| + | mcp.setup( 3, Pin.IN ) # broche 3 en entrée |
| + | mcp.pullup( 3, True ) # Activer la résistance pull-up sur entrée 3 |
| + | |
| + | Print( "Appuyer sur bouton" ) |
| + | start = time() |
| + | while (time()-start) < 20: # pendant 20 sec max |
| + | # mcp.input(3) retourne état de la broche |
| + | print( '%s : etat = %s' % (time(), '...' if mcp.input(3) else 'Press!') ) |
| + | sleep( 0.5 ) |
| + | </syntaxhighlight> |
| + | |
| + | Il est également possible de modifier l'état de plusieurs broches en une seule opération en utilisant un dictionnaire {{fname| { 0 : True, 1 : False } }} |
| + | |
| + | <syntaxhighlight lang="python"> |
| + | from machine import I2C, Pin |
| + | from mcp230xx import MCP23017 |
| + | |
| + | # Création bus I2C et MCP23017 |
| + | i2c = I2C( sda=Pin(4), scl=Pin(5), freq=20000 ) |
| + | mcp = MCP23017( i2c=i2c ) |
| + | |
| + | # controle de quelques broches en sortie |
| + | pins = [10, 11, 12, 13, 14, 15] |
| + | valeurs = {} |
| + | for pin_num in pins: |
| + | mcp.setup( pin_num, Pin.OUT ) |
| + | valeurs[pin_num] = True |
| + | # activer toutes les broches en une seule opération |
| + | mcp.output_pins( valeurs ) |
| + | </syntaxhighlight> |
| + | |
| + | De même, il est possible de lire l'état de plusieurs broches avec un seul appel |
| + | |
| + | <syntaxhighlight lang="python"> |
| + | from time import sleep |
| + | from machine import I2C, Pin |
| + | from mcp230xx import MCP23017 |
| + | |
| + | # Création bus I2C et MCP23017 |
| + | i2c = I2C( sda=Pin(4), scl=Pin(5), freq=20000 ) |
| + | mcp = MCP23017( i2c=i2c ) |
| + | |
| + | # Surveille plusieurs broches d'entrée et affiche les différentes valeurs grâce à {{fname|mcp.input_pins(pins_list)}} |
| + | pins = [3,4,5,6] |
| + | for pin_num in pins: |
| + | mcp.setup(pin_num, Pin.IN) |
| + | mcp.pullup(pin_num, True) |
| + | while True: |
| + | print( mcp.input_pins(pins) ) |
| + | sleep( 1 ) |
| + | </syntaxhighlight> |
| + | |
| + | Durant l'exécution du script, les messages suivants apparaissent dans la console. Chaque broche mentionnée lors de l'appel de {{fname|mcp.input_pins()}} retourne une valeur {{fname|True}} ou {{fname|False}} en fonction de l'état de la broche. |
| + | |
| + | <nowiki>[True, True, True, True] |
| + | [True, True, True, True] |
| + | [True, True, True, True] |
| + | [False, True, True, True] |
| + | [False, True, True, True] |
| + | [False, True, True, True] |
| + | [False, True, True, True] |
| + | [True, True, True, True]</nowiki> |
| | | |
| == Où acheter == | | == Où acheter == |