Modifications

Sauter à la navigation Sauter à la recherche
2 367 octets ajoutés ,  10 octobre 2018 à 15:06
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>
  
29 917

modifications

Menu de navigation