start:esp32:interruptions
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| start:esp32:interruptions [2022/12/21 21:08] – [Exemple 2 de programme d'interruption avec l'ESP32] gerardadmin | start:esp32:interruptions [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| ========Les interruptions sur ESP32======== | ========Les interruptions sur ESP32======== | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | [[start: | ||
| Une interruption est un processus qui est déclenché de manière asynchrone par un évènement extérieur, qui interrompt momentanément l’exécution du code en cours, pour exécuter du code plus critique. | Une interruption est un processus qui est déclenché de manière asynchrone par un évènement extérieur, qui interrompt momentanément l’exécution du code en cours, pour exécuter du code plus critique. | ||
| À quoi ça sert ? | À quoi ça sert ? | ||
| + | |||
| + | {{ : | ||
| Imaginez que vous vouliez allumer une LED lorsque vous appuyez sur un bouton qui est relié à un pin GPIO de l’ESP32. Le plus simple est de regarder en permanence dans la fonction loop() si vous avez appuyé sur le bouton : | Imaginez que vous vouliez allumer une LED lorsque vous appuyez sur un bouton qui est relié à un pin GPIO de l’ESP32. Le plus simple est de regarder en permanence dans la fonction loop() si vous avez appuyé sur le bouton : | ||
| Ligne 62: | Ligne 70: | ||
| ====Utilisation sur l’ESP32==== | ====Utilisation sur l’ESP32==== | ||
| - | L’utilisation des interruptions sur l’ESP32 est similaire à celle sur l’Arduino avec la fonction attachInterrupt() . N’importe quel pin GPIO peut être utilisé pour les interruptions. | + | L’utilisation des interruptions sur l’ESP32 est similaire à celle sur l’Arduino avec la fonction attachInterrupt() . **N’importe quel pin GPIO peut être utilisé pour les interruptions.** *[[ http:// |
| Ainsi pour créer une interruption sur un pin , il faut : | Ainsi pour créer une interruption sur un pin , il faut : | ||
| Ligne 233: | Ligne 241: | ||
| {{ : | {{ : | ||
| + | |||
| + | |||
| + | ESP32 Micropython programme avec interruption sur front montant de la broche GPIO26 | ||
| + | |||
| + | <code python interrup021.py> | ||
| + | from machine import Pin | ||
| + | |||
| + | impulsion = False | ||
| + | etat_led = False | ||
| + | |||
| + | led = Pin(25, Pin.OUT) | ||
| + | bp = Pin(26, Pin.IN) | ||
| + | |||
| + | # Le programme d' | ||
| + | def fct_interruption(pin): | ||
| + | global impulsion | ||
| + | impulsion = True | ||
| + | |||
| + | # Spécifie la fonction à appeler lorsqu' | ||
| + | bp.irq(trigger = Pin.IRQ_RISING, | ||
| + | |||
| + | # Le programme principal | ||
| + | while True: | ||
| + | if impulsion: | ||
| + | print(" | ||
| + | if led.value()==1: | ||
| + | led.value(0) | ||
| + | else: | ||
| + | led.value(1) | ||
| + | impulsion = False | ||
| + | | ||
| + | </ | ||
| + | |||
| + | |||
| + | impulsion = True | ||
| + | |||
| + | La variable impulsion de type booléen passe à True quand on lance le programme d' | ||
| + | |||
| + | Cette variable est utilisée dans le programme principal pour allumer ou éteindre la Led, afficher du texte sur la console. | ||
| + | |||
| + | Cela permet d' | ||
| + | |||
| + | |||
| + | |||
/home/chanteri/www/fablab37110/data/attic/start/esp32/interruptions.1671653303.txt.gz · Dernière modification : (modification externe)
