Passer au contenu principal

Digital (LED et Boutons)

Source : https://learn.adafruit.com/circuitpython-essentials/circuitpython-digital-in-out​​

Vous êtes perdu ? vous pouvez avoir les commandes disponibles en tapant dir(FONCTION), par ex dir(board)

Contrôler une LED

Il n'y a pas de LED intégré (contrôlable directement du moins), il faut en relier une.

ON/OFF

import board
import digitalio
led = digitalio.DigitalInOut(board.IO0)
led.direction = digitalio.Direction.OUTPUT
led.value = True

PWM

import time
import board
import pulseio
    
led = pulseio.PWMOut(board.IO0, frequency=5000, duty_cycle=0)
    
while True:
    for i in range(100):
        # PWM LED up and down
        if i < 50:
            led.duty_cycle = int(i * 2 * 65535 / 100)  # Up
        else:
            led.duty_cycle = 65535 - int((i - 50) * 2 * 65535 / 100)  # Down
        time.sleep(0.01)

Contrôler la LED avec un bouton

Le bouton utilise le pull resistor interne de l'ESP32

import time
import board
from digitalio import DigitalInOut, Direction, Pull
    
led = DigitalInOut(board.IO0)
led.direction = Direction.OUTPUT
    
switch = DigitalInOut(board.IO1)
switch.direction = Direction.INPUT
switch.pull = Pull.UP
    
while True:
    if switch.value:
        led.value = False
    else:
        led.value = True
    
    time.sleep(0.01)  # debounce delay