Ligne 112 : |
Ligne 112 : |
| | | |
| <syntaxhighlight lang="python"> | | <syntaxhighlight lang="python"> |
− | xxx
| + | # Utilisation du MOD-IO2 d'Olimex avec un ESP8266 sous MicroPython |
| + | # |
| + | # Shop: [UEXT Expandable Input/Output board (MOD-IO2)](http://shop.mchobby.be/product.php?id_product=1409) |
| + | # GitHub: https://github.com/mchobby/esp8266-upy/tree/master/modio2 |
| + | |
| + | from machine import I2C, Pin |
| + | from time import sleep_ms |
| + | from modio2 import MODIO2 |
| + | |
| + | i2c = I2C( sda=Pin(2), scl=Pin(4) ) |
| + | brd = MODIO2( i2c ) # Adresse par défaut=0x21 |
| + | |
| + | # === Manipuler les GPIOs ============================= |
| + | print( "Afficher le mode des broches") |
| + | print( brd.gpios.pin_modes ) |
| + | # Devrait retourner: ['IN', 'IN', 'IN', 'IN', 'IN', 'IN', 'IN'] |
| + | |
| + | print( "GPIO 5 - Lecture analogique") |
| + | brd.gpios.pin_mode( 5, Pin.IN ) |
| + | for i in range(10): |
| + | volt = brd.gpios.analog(5) |
| + | print( "GPIO 5 (AN7) = %s v" % volt ) |
| + | val = brd.gpios.analog(5, raw=True ) |
| + | print( "GPIO 5 (AN7) = %s / 1023" % val ) |
| + | sleep_ms( 1000 ) |
| + | |
| + | print( "GPIO 0 - en sortie OUT (allumé puis éteind)" ) |
| + | brd.gpios.pin_mode( 0, Pin.OUT ) |
| + | brd.gpios[0] = True |
| + | sleep_ms( 2000 ) |
| + | brd.gpios[0] = False |
| + | |
| + | print( "GPIO 1,2,3 - en entrée IN" ) |
| + | brd.gpios.pin_mode( 1, Pin.IN ) |
| + | brd.gpios.pin_mode( 2, Pin.IN ) |
| + | brd.gpios.pin_mode( 3, Pin.IN, Pin.PULL_UP ) # la pull up est obligatoire sur pin 3 |
| + | print( "Afficher le mode des broches") |
| + | print( brd.gpios.pin_modes ) |
| + | # Doit afficher ['OUT', 'IN', 'IN', 'IN', 'IN', 'IN', 'IN'] |
| + | |
| + | print( "Afficher l'état de toutes les I/O (1/0)" ) |
| + | print( brd.gpios.states ) |
| + | # doit afficher [False, False, True, False, False, True, False] |
| + | |
| + | # === RELAIS ====================================== |
| + | # Modifier les états des relais REL1 et REL2. |
| + | # Les relais sont indexés à partir de 0 |
| + | print( 'Modif. relais par index' ) |
| + | brd.relais[0] = True |
| + | brd.relais[1] = False |
| + | print( 'Etat Relais[0..1] : %s' % brd.relais.states ) |
| + | # Doit afficher Relais[0..1] states : [True, False] |
| + | sleep_ms( 2000 ) |
| + | |
| + | # Eteindre tous les relais |
| + | brd.relais.states = False |
| + | |
| + | print( 'Manipuler 1 relais à la fois') |
| + | for irelay in range( 2 ): |
| + | print( ' relais %s' % (irelay+1) ) |
| + | brd.relais[irelay] = True # Allumer |
| + | sleep_ms( 1000 ) |
| + | brd.relais[irelay] = False # Eteindre |
| + | sleep_ms( 500 ) |
| + | |
| + | print( 'Manipuler plusieurs relais' ) |
| + | brd.relais.states = [False, True] |
| + | sleep_ms( 2000 ) |
| + | print( 'Activer tous les relais' ) |
| + | brd.relais.states = True |
| + | sleep_ms( 2000 ) |
| + | print( 'Eteindre tous les relais' ) |
| + | brd.relais.states = False |
| + | |
| + | print( "That's the end folks") |
| </syntaxhighlight> | | </syntaxhighlight> |
| | | |