Différences entre versions de « P2E-PWM-Output-FR »
Sauter à la navigation
Sauter à la recherche
(→Code) |
(→Code) |
||
Ligne 19 : | Ligne 19 : | ||
Cet exemple est également disponible dans le dépôt [https://github.com/mchobby/pico-2-explorer/tree/main/pwm-led pwm-led.py] . | Cet exemple est également disponible dans le dépôt [https://github.com/mchobby/pico-2-explorer/tree/main/pwm-led pwm-led.py] . | ||
− | <syntaxhighlight lang="python" line highlight="1"> | + | <syntaxhighlight lang="python" line highlight="1,8,9,12"> |
from machine import Pin, ADC, PWM | from machine import Pin, ADC, PWM | ||
import time | import time | ||
Ligne 35 : | Ligne 35 : | ||
time.sleep_ms( 100 ) | time.sleep_ms( 100 ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | Il ne reste plus qu'à tourner le potentiomètre pour modifier la luminosité de la LED. | ||
Voici quelques explications: | Voici quelques explications: | ||
− | * '''Ligne 1''': | + | * '''Ligne 1''': import de la classe {{fname|PWM}} permettant de contrôler une broche en modulation de largeur d'impulsion. |
+ | * '''Ligne 8''': création de led, instance de la classe {{fname|PWM}} permettant de contrôler la broche GP2 avec un signal PWM. | ||
+ | * '''Ligne 9''': Fixer la fréquence du signal PWM à 500 Hz (comme Arduino). Le signal se répète donc 500 fois par seconde. | ||
+ | * '''Lignes 10 à 14''': boucle infinie faisant l'acquisition de la valeur sur le convertisseur ADC puis fixant le cycle utile du signal PWM. | ||
+ | * '''Ligne 11''': acquisition de la valeur du convertisseur. Retourne un entier 16 bits entre 0 et 65535. | ||
+ | * '''Ligne 12''': fixe le cycle utile à partir d'un entier 16 bits (0..65535 => pour cycle utile de de 0 à 100%). | ||
=== Un problème? === | === Un problème? === |
Version du 2 novembre 2024 à 00:22
Introduction
Cas pratique
xxx
Branchement simplifié
Dans cet exemple, nous allons brancher un potentiomètre sur l'entrée analogique A0 (GP26) pour contrôler la luminosité d'une LED branchée sur GP2 avec un signal PWM.
Si vous n'êtes pas encore familiarisé avec l'utilisation des entrées analogiques alors vous pouvez consulter le tutoriel sur les entrées analogiques.
Code
Le code ci-dessous peut être saisi dans une session REPL ou dans Thonny IDE.
Cet exemple est également disponible dans le dépôt pwm-led.py .
1 from machine import Pin, ADC, PWM
2 import time
3
4 # Désactive PowerSafe (lower ripple)
5 Pin( 23, Pin.OUT, value=True )
6
7 a0 = ADC( Pin( Pin.board.GP26 ) )
8 led = PWM( Pin( Pin.board.GP2 ) )
9 led.freq( 500 )
10 while True:
11 val = a0.read_u16()
12 led.duty_u16( val )
13 print( 'adc=duty_u16= %5i' % (val) )
14 time.sleep_ms( 100 )
Il ne reste plus qu'à tourner le potentiomètre pour modifier la luminosité de la LED.
Voici quelques explications:
- Ligne 1: import de la classe PWM permettant de contrôler une broche en modulation de largeur d'impulsion.
- Ligne 8: création de led, instance de la classe PWM permettant de contrôler la broche GP2 avec un signal PWM.
- Ligne 9: Fixer la fréquence du signal PWM à 500 Hz (comme Arduino). Le signal se répète donc 500 fois par seconde.
- Lignes 10 à 14: boucle infinie faisant l'acquisition de la valeur sur le convertisseur ADC puis fixant le cycle utile du signal PWM.
- Ligne 11: acquisition de la valeur du convertisseur. Retourne un entier 16 bits entre 0 et 65535.
- Ligne 12: fixe le cycle utile à partir d'un entier 16 bits (0..65535 => pour cycle utile de de 0 à 100%).
Un problème?
ddd
Le défi
xxx
Encore plus
xxx
Truc et astuce
zzz