Modifications

Sauter à la navigation Sauter à la recherche
1 296 octets ajoutés ,  20 décembre 2015 à 15:17
Ligne 127 : Ligne 127 :  
Le mieux est de placer ce programme dans le fichier {{fname|main.py}}. N'oubliez pas d'éjecter le lecteur Flash de la PyBoard avant de faire un Reset de votre PyBoard pour démarrer votre programme.
 
Le mieux est de placer ce programme dans le fichier {{fname|main.py}}. N'oubliez pas d'éjecter le lecteur Flash de la PyBoard avant de faire un Reset de votre PyBoard pour démarrer votre programme.
   −
  <nowiki></nowiki>
+
  <nowiki># Lecture analogique LDR pour controler la puissance d'une LED PWM.
 +
# ATTENTION: ..chantillonnage 12 Bits (valeur de 0 .. 4096)
 +
from pyb import Timer, delay
 +
 
 +
# Creer un timer à une fréquence de 5 Hz (le timer 5)
 +
# Créer un canal (channel) PWM avec le Timer. 
 +
tim = pyb.Timer( 5, freq=100)
 +
tchannel = tim.channel(1, Timer.PWM, pin=pyb.Pin.board.X1, pulse_width=0)
 +
 
 +
# Minimum et Maximum de largeur d'impulsion correspondant au minimum
 +
# et maximum de luminosité
 +
max_width = 150000
 +
min_width = 0100
 +
 
 +
# Minimum et Maximum de valeur analogique correspondant au variation
 +
# de lumière sur la LDR. Valeur relevée avec le programme précédent
 +
max_ldr = 2750
 +
min_ldr = 680
 +
 
 +
# fonction qui permet de passer d'un range de valeur (in_) à une autre
 +
#    (out_) en appliquant une règle de trois.
 +
def arduino_map(x, in_min, in_max, out_min, out_max):
 +
    return int( (x - in_min) * (out_max - out_min) // (in_max - in_min) + out_min )
 +
   
 +
ldr = pyb.ADC( 'X19' )
 +
while True:
 +
# lecture analogique
 +
    lecture = ldr.read()
 +
   
 +
    # Transformer une valeur analogique (0 .. 4096) en largeur d'impulsion (20000 .. 2000000)
 +
    pulse_width = arduino_map( lecture, min_ldr, max_ldr, min_width, max_width )
 +
   
 +
    # Modifier le signal PWM
 +
    tchannel.pulse_width( pulse_width )
 +
   
 +
    delay( 100 )
 +
</nowiki>
    
== Cela ne fonctionne pas? ==
 
== Cela ne fonctionne pas? ==
29 836

modifications

Menu de navigation