Vídeo: Dica rápida, como organizar o código fonte de arduino em 2 clicks 2024
O loop PBASIC FOR fará com que o BASIC Stamp no seu projeto eletrônico execute um loop um certo número de vezes. É também uma ótima ferramenta de programação para executar uma ação em múltiplos pinos de E / S. Assim, um loop FOR é a maneira ideal para implementar um programa LED Flasher.
A estrutura básica de um loop FOR parece:
PARA contador = valor de início TO valor final Declarações … PRÓXIMO
Aqui está um exemplo que pisca o LED no pino 0 dez vezes:
X VAR BYTE PARA X = 1 TO 10 HIGH 0 PAUSE 500 BAIXO 0 PAUSE 500 NEXT
Neste exemplo, o loop é executado dez vezes. O valor da variável X é aumentado em 1 cada vez através do loop.
No exemplo anterior, o programa na verdade não usou a variável do contador. Isso é comum nos loops FOR; às vezes o único propósito para a variável do contador é controlar quantas vezes o loop é executado. Mas você pode usar a variável do contador dentro do loop. Por exemplo, aqui está um loop que faz todos os pinos de E / S no Stamp HIGH por um décimo de segundo:
IO_Pin VAR BYTE PARA IO_Pin = 0 TO 15 HIGH IO_Pin PAUSE 100 BAIXO IO_Pin NEXT
Normalmente, a variável do contador é aumentada em um em cada passagem pelo loop. Você pode usar a palavra-chave STEP para especificar um valor de etapa diferente, se desejar. Quando você usa a palavra-chave STEP, a estrutura básica da instrução FOR parece:
PARA contador = valor de início TO valor final ETAPA step-value Declarações … NEXT
Por exemplo, você pode piscar LEDs apenas em pinos pares iguais a este:
Led VAR Byte FOR Led = 0 TO 10 PASSO 2 HIGH Led PAUSE 100 BAIXO Led NEXT
Outra característica interessante dos loops FOR é que eles podem contar para trás. Tudo o que você precisa fazer é especificar um valor de início maior do que o valor final, como este:
Led VAR Byte FOR Led = 10 TO 0 STEP 2 HIGH Led PAUSE 100 LOW Led NEXT
Esta versão do LED Flasher O programa usa um par de FOR loops para piscar os LED primeiro em uma direção e, em seguida, na direção oposta. O primeiro loop FOR pisca os LEDs nos pinos 0, 2, 4, 6 e 8. Em seguida, o segundo loop FOR pisca os LEDs nos pinos 10, 8, 6, 4 e 2. Ambos os loops FOR estão contidos dentro de um DO loop que mantém os LEDs saltando de um lado para o outro indefinidamente.
'Programa LED Flasher' Doug Lowe '10 de julho de 2011 "Este programa pisca LEDs conectados aos pinos 0, 2, 4, 6, 8 e 10' para frente e para trás, como os olhos de Cylon. "Esta versão do programa usa FOR loops.'{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Byte Principal: FOR Led = 0 TO 8 PASSO 2 HIGH Led PAUSE 100 BAIXO Led NEXT FOR Led = 10 A 2 PASSO 2 HIGH Led PAUSE 100 LOW Led NEXT GOTO Main
Quando os loops FOR estão aninhados, o (s) loop (es) interno (s) completam seu ciclo inteiro cada vez através do loop externo. Se um loop FOR que se repete dez vezes é colocado dentro de um loop externo que se repete dez vezes, as instruções dentro do loop mais interno executarão um total de 100 vezes - dez vezes para cada uma das dez repetições do loop externo.
Este usa um loop externo FOR que varia o tempo de atraso para as instruções PAUSE. O resultado é que os LEDs varrem muito rápido no início, mas lento por 10 ms em cada repetição do loop externo até o atraso atingir um segundo por LED.
'Programa LED Flasher' Doug Lowe '10 de julho de 2011 "Este programa pisca LEDs conectados aos pinos 0, 2, 4, 6, 8 e 10' para frente e para trás, como os olhos de Cylon." Esta versão do programa usa laços aninhados FOR-NEXT para diminuir o "movimento de varredura dos LEDs". '{$ STAMP BS2}' {$ PBASIC 2. 5} Led VAR Byte Velocidade VAR Word PARA Velocidade = 10 A 1000 PASSO 10 PARA Led = 0 A 8 PASSO 2 HIGH Led PAUSE Velocidade LOW Led NEXT FOR Led = 10 A 2 PASSOS 2 HIGH Led PAUSE Velocidade LOW Led NEXT NEXT