Boucle itérative¶
Dans le cas de processus redondants, plutôt que d'écrire le processus de multiple fois avec des paramètres différents, il est préférable d'utiliser une boucle avec variable (for
) ainsi qu'une ou plusieurs listes ou sont stockées toutes les variables nécessaires.
La boucle for
se charge de la structure du processus. La(les) liste(s) s'occupe(nt) des données. A chaque entrée dans la boucle on vient chercher dans la ou les listes, les paramètres du prochain cas.
Exemples¶
from machine import *
import utime
# Servo on p26
d2 = PWM(Pin(26), freq=50, duty=0)
# on créer une fonction pour calculer le duty et l'appliquer au servomoteur, à partir d'un angle donné.
def setServoAngle(pin, angle):
if (angle >= 0 and angle <= 180):
pin.duty(int(0.025*1023 + (angle*0.1*1023)/180))
else:
raise ValueError("Servomotor angle have to be set between 0 and 180")
# on défini une liste d'angle
angles = [10, 90, 30]
while True:
#pour chaque angle de la liste angles on applique la fonction créer précédemment
for i in angles:
setServoAngle(d2, i)
utime.sleep(5)
Aller plus loin¶
Dans l'exemple ci-dessus, nous utilisons les fonctions du langage MicroPython def
, for
et if else
.
Pour en savoir plus sur def
, nous vous invitons à lire la documentation MicroPython.
Pour en savoir plus sur for in
, nous vous invitons à lire la documentation MicroPython.
Pour en savoir plus sur if else
, nous vous invitons à lire la documentation MicroPython.