Pilote MCP23S17 (GPIO Expander SPI) pour MicroPython
Bonjour à tous,
Aujourd'hui, nous publions un nouveau pilote MicroPython.
Cette fois, il s'agit d'un Pilote MicroPython pour le MCP23S17, un GPIO expander sur interface SPI.
Ce composant permet d'ajouter jusque 16 entrées/sorties sur un microcontrôleur.
MCP23S17 - GPIO Expander over SPI |
Attention, à ne pas confondre le MCP23S17 (via SPI) avec le MCP23017 (via I2C).
Pourquoi un pilote MCP23S17?
Ce composant est utilisé sur pas mal de HAT Raspberry-Pi (comme par exemple, le PiFace Digital), ce qui permettrait maintenant d'utiliser de tels HATs sous MicroPython :-)
Pour la petite histoire, le pilote à été développé avec un PYBStick sous MicroPython et l'adaptateur PYBSTICK-HAT-FACE.
Il y aura donc bientôt un nouveau pilote pour le Hat PiFace Digital ;-)
Le montage du MCP23S17
MCP23S17 avec Pyboard - source: esp8266-upy |
MCP23S17 avec PYBStick - source: esp8266-upy |
Le pilote est écrit de façon à être aussi simple d'emploi que celui du MCP23017 (l'API est identique).
Le code suivant (extrait des exemples) permet de manipuler les 16 GPIOs du MCP23S17 branché sur une Pyboard.
from mcp23Sxx import * from machine import SPI, Pin import time # Pyboard: périphérique SPI spi = SPI( 2 ) # SCLK=Y6 (#23), MISO=Y7 (#21), MOSI=Y8 (#19) # Chip Select sur SPI cs = Pin( 'Y11', Pin.OUT ) # SPI_CE0=Y11 (#24) cs.value( 1 ) # MCP23S17 - SPI GPIO extender mcp = MCP23S17( spi, cs ) # default: device_id=0x00 for x in range(0, 16): mcp.setup(x, Pin.OUT) print("fait clignoter (CTRL+C pour quitter)") while (True): for gpio in range(0, 16): mcp.output(gpio, True ) time.sleep(1) for gpio in range(0, 16): mcp.output(gpio, False) time.sleep(1)
Ressources
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.
Écrire un commentaire