Différences entre versions de « Micropython-neotrellis-test »
(Page créée avec « {{Micropython-neotrellis-NAV}} == Exemple simple == L'exemple ci-dessus propose de lier l'action du bouton #5 (2ieme ligne, 1iere colonne) pour activer/désactiver une b… ») |
|||
Ligne 49 : | Ligne 49 : | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Définition d'une fonction de rappel {{fname|toggle_relais()}} qui sera appelée lorsque le bouton 5 sera pressé | + | Définition d'une fonction de rappel {{fname|toggle_relais()}} qui sera appelée lorsque le bouton 5 sera pressé. |
+ | |||
+ | Les fonctions de rappel sont également dites "__callback__" en anglais. | ||
<syntaxhighlight lang="python"> | <syntaxhighlight lang="python"> |
Version du 7 mars 2025 à 19:03
Exemple simple
L'exemple ci-dessus propose de lier l'action du bouton #5 (2ieme ligne, 1iere colonne) pour activer/désactiver une broche du microcontrôleur.
Le broche commandée sera GP25 qui est raccordée sur la LED utilisateur du Pico (à côté de la fiche micro-USB). En modifiant la broche de sortie (ex: GP16) il possible de commander un module relais (ou autre périphériques).
Une pression sur le bouton NeoTrellis et la sortie est activée (le bouton NéoTrellis devient vert).
Une seconde pression sur le bouton NeoTrellis set la sortie est désactivée (le bouton NéoTrellis devient rouge).
Commençons par initialiser les éléments matériels et quelques constantes:
- Création d'une instance du bus I2C.
- Création d'une instance de NeoTrellis (sur l'adresse par défaut 0x2E).
- La luminosité (brightness) des NeoPixel est réduite de moitié pour éviter d'éblouir l'utilisateur.
import time
from machine import I2C, Pin
from neotrellis import NeoTrellis
# Définition de couleurs RGB (rouge, vert, bleu)
# Chaque couleur fondamentale varie entre 0 et 255.
OFF = (0, 0, 0)
RED = (255, 0, 0) # Rouge
GREEN = (0, 255, 0) # Vert
i2c = I2C( 1, sda=Pin.board.GP6, scl=Pin.board.GP7 )
trellis = NeoTrellis(i2c)
trellis.brightness = 0.5
Passer en revue chaque LED (de 0 à 15) et l'éteindre (en lui assignant la couleur noir).
for i in range(16):
trellis.pixels[i] = OFF
Initialiser la broche en sortie (GP25=LED utilisateur), donc niveau bas.
Indiquer que la broches est au niveau bas en passant la LED du bouton 5 en ROUGE (en Python, le bouton 5 se trouve à l'index 4 puisque la numérotation démarre à zéro).
relay = Pin( Pin.board.GP25, Pin.OUT, value=False )
trellis.pixels[4] = RED
Définition d'une fonction de rappel toggle_relais() qui sera appelée lorsque le bouton 5 sera pressé.
Les fonctions de rappel sont également dites "__callback__" en anglais.
def toggle_relay( event ):
# Accès aux variable globales
global relay, trellis
# Lire état de la broche et inverser le résultat
new_state = not( relay.value() )
# Application du nouvel état sur la broche
relay.value( new_state )
# Placer la LED du bouton 5 en fonction de l'état
if new_state==True:
trellis.pixels[4] = GREEN # Vert
else:
trellis.pixels[4] = RED # Rouge
# Activer la détection du Flan montage sur le bouton 5 (lorsqu'il est pressé)
trellis.activate_key( 4, NeoTrellis.EDGE_RISING )
# Association de la fonction de rappel sur le bouton 5
trellis.callbacks[4] = toggle_relay
while True:
# call the sync function call any triggered callbacks
trellis.sync()
# the trellis can only be read every 17 millisecons or so
time.sleep(0.02)
Traduction augmentée réalisée par Meurisse. D pour shop.MCHobby.be - Licence CC-BY-SA.