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:02] – [Exemple 1 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 195: | Ligne 203: | ||
{{ : | {{ : | ||
+ | |||
+ | ESP32 Micropython programme avec interruption sur front montant de la broche GPIO26 | ||
+ | |||
+ | <code python interrup200.py> | ||
+ | from machine import Pin | ||
+ | from time import * | ||
+ | |||
+ | led = Pin(25, Pin.OUT) | ||
+ | bp = Pin(26, Pin.IN) | ||
+ | |||
+ | # Le programme d' | ||
+ | def fct_interruption(pin): | ||
+ | print(" | ||
+ | if led.value()==1: | ||
+ | led.value(0) | ||
+ | else: | ||
+ | led.value(1) | ||
+ | |||
+ | # Spécifie la fonction à appeler lorsqu' | ||
+ | bp.irq(trigger = Pin.IRQ_RISING, | ||
+ | |||
+ | # Le programme principal | ||
+ | while True: | ||
+ | sleep(5) | ||
+ | | ||
+ | </ | ||
+ | |||
+ | " | ||
+ | |||
+ | Spécifie la fonction à appeler lorsqu' | ||
+ | |||
+ | |||
+ | ====Exemple 2 de programme d' | ||
+ | |||
+ | |||
+ | Fonctionnement identique à l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | 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.1671652977.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)