Vidéo: Introduction à l'Arduino ! - Vlog Bricolage #7 2024
La boucle PBASIC FOR fait que le BASIC Stamp de votre projet électronique exécute une boucle un certain nombre de fois. C'est également un excellent outil de programmation pour effectuer une action sur plusieurs broches d'E / S. Ainsi, une boucle FOR est le moyen idéal pour implémenter un programme LED Flasher.
La structure de base d'une boucle FOR ressemble à ceci:
FOR compteur = valeur de début TO valeur de fin Déclarations … NEXT
Voici un exemple qui clignote dix fois la LED de la broche 0:
X VAR BYTE POUR X = 1 à 10 HIGH 0 PAUSE 500 LOW 0 PAUSE 500 NEXT
Dans cet exemple, la boucle est exécutée dix fois. La valeur de la variable X est augmentée de 1 à chaque fois dans la boucle.
Dans l'exemple précédent, le programme n'utilisait pas réellement la variable compteur. C'est commun dans les boucles FOR; parfois le seul but de la variable counter est de contrôler combien de fois la boucle est exécutée. Mais vous pouvez utiliser la variable compteur dans la boucle. Par exemple, voici une boucle qui rend chaque épingle d'E / S sur le Stamp HIGH pendant un dixième de seconde:
IO_Pin VAR BYTE POUR IO_Pin = 0 à 15 HIGH IO_Pin PAUSE 100 LOW IO_Pin NEXT
Normalement, la variable compteur est augmentée de un à chaque passage dans la boucle. Vous pouvez utiliser le mot-clé STEP pour spécifier une valeur de pas différente si vous le souhaitez. Lorsque vous utilisez le mot clé STEP, la structure de base de l'instruction FOR ressemble à ceci:
FOR compteur = valeur de début TO valeur de fin STEP step-value Statements … NEXT
Par exemple, vous pouvez faire clignoter des LED sur les seules broches numérotées comme ceci:
Led VAR Byte POUR Led = 0 à 10 STEP 2 HIGH Led PAUSE 100 LOW Led NEXT
Une autre caractéristique intéressante des boucles FOR est qu'elles peuvent compter en arrière. Tout ce que vous avez à faire est de spécifier une valeur de départ supérieure à la valeur de fin, comme ceci:
Led VAR Byte POUR Led = 10 TO 0 STEP 2 HIGH Led PAUSE 100 LOW Led SUIVANT
Cette version de la LED Flasher Le programme utilise une paire de boucles FOR pour faire clignoter les LED d'abord dans un sens, puis dans le sens opposé. La première boucle FOR clignote les LED sur les broches 0, 2, 4, 6 et 8. Ensuite, la deuxième boucle FOR clignote les LED sur les broches 10, 8, 6, 4 et 2. Les deux boucles FOR sont contenues dans une DO boucle qui maintient les LED rebondissent indéfiniment.
Programme de clignotants LED 'Doug Lowe' 10 juillet 2011 "Ce programme fait clignoter les LED connectées aux broches 0, 2, 4, 6, 8 et 10 ', comme les yeux Cylon. "Cette version du programme utilise des boucles FOR.'{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Byte Main: FOR Led = 0 à 8 STEP 2 HIGH Led PAUSE 100 LOW Led SUIVANT Led = 10 TO 2 STEP 2 HIGH Led PAUSE 100 LOW Led SUIVANT GOTO Main
Lorsque les boucles FOR sont imbriquées, la (les) boucle (s) la plus interne complète (nt) son cycle complet à chaque fois par la boucle externe. Si une boucle FOR qui se répète dix fois est placée dans une boucle externe qui se répète dix fois, les instructions dans la boucle la plus interne exécuteront un total de 100 fois - dix fois pour chacune des dix répétitions de la boucle externe.
Celui-ci utilise une boucle FOR externe qui fait varier le temps de retard pour les instructions PAUSE. Le résultat est que les LED balaient très rapidement au début, mais ralentissent de 10 ms à chaque répétition de la boucle externe jusqu'à ce que le retard atteigne une seconde par LED.
'LED Flasher Program' Doug Lowe '10 juillet 2011 "Ce programme fait clignoter les LED connectées aux broches 0, 2, 4, 6, 8 et 10', comme les yeux Cylon." Cette version du programme utilise des boucles FOR-NEXT imbriquées pour ralentir le mouvement de balayage des LED. '{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Byte Vitesse VAR Mot FOR Vitesse = 10 à 1000 ÉTAPE 10 FOR Led = 0 à 8 STEP 2 HIGH Led PAUSE Vitesse LOW Led SUIVANT Led = 10 TO 2 STEP 2 HAUTE Led PAUSE Vitesse LOW Led NEXT NEXT