Teach Remote lab lessons

Teach lesson

Programação visual com Arduino real (2/4): sequências e loops

Os estudantes transformam o piscar do LED integrado em um padrão de luz, primeiro copiando uma sequência e depois usando um loop para repetir só a parte necessária.

  • Arduino Board (visual)
  • 55 min
  • 8o/9o ano ou início do Ensino Médio
  • Português (Brasil)
  • Embedded systems
Arduino Board (visual)
Arduino Board (visual)

Learning Outcomes

  • Criar um padrão de luz com uma sequência clara.

  • Usar um loop para reduzir repetição.

  • Explicar que parte do programa se repete e por quê.

Student activity preview

Activity Content

Preview only. In a class session, students can fill in responses and submit their work to the teacher.

1

Planejar o padrão

10 min

Um padrão é uma sequência que você consegue reconhecer e que se repete. Por
exemplo:

- Três piscadas rápidas e uma pausa longa.
- Aceso curto, apagado curto, aceso longo.

Observe a diferença entre três áreas ou formas de repetição:

- Arduino configuração / Arduino run first: executa uma só vez ao iniciar; o padrão de luz de hoje não vai aqui.
- Arduino loop infinito / Arduino loop forever: repete tudo o que está dentro dele, sem parar.
- repetir N vezes: um bloco da categoria Loops (a interface também pode mostrar Bucles em espanhol) que repete só uma parte um número fixo de vezes. Ele evita copiar os mesmos blocos muitas vezes.

Descreva o padrão que você tentará criar com o LED integrado. Ele deve ter pelo menos três passos observáveis (por exemplo: pisca, pisca, pisca, pausa).

Preencha a tabela com uma linha para cada passo do padrão antes de abrir o
laboratório. Se seu padrão tiver quatro passos, use quatro linhas e deixe as
demais vazias. Em cada linha, indique a saída (LED integrado), a ação
(acender, apagar ou esperar) e a duração aproximada em milissegundos.

Passo Saída Ação Duração (ms)
2

Versão longa: passo a passo

15 min

Primeiro programe o padrão sem o bloco de repetição. Copie os blocos de
acender, apagar e esperar quantas vezes forem necessárias para que o padrão
apareça uma vez. Coloque tudo dentro de Arduino loop infinito.

  1. Abra arduino-visual-board.

  2. Dentro de Arduino loop infinito, construa o padrão com blocos de Entrada/Saída (Input/Output, se a interface estiver em inglês; Entrada/Salida, se estiver em espanhol): Definir LED integrado (set built-in LED ou Establecer LED integrado) em HIGH/LOW e blocos de Tempo (Time ou Tiempo) para esperar.

  3. Clique em Verificar / compilar.

  4. Clique em Enviar ao dispositivo (Upload into device ou Enviar al dispositivo).

  5. Observe uma repetição completa do padrão na placa real.

Qual é o inconveniente de construir todo o padrão copiando os mesmos blocos várias vezes?

3

Versão com loop

22 min

Agora use o bloco repetir N vezes (categoria Loops / Bucles) para
repetir só a parte que se repete. Escolha quantas vezes, por exemplo 3.

  1. Na categoria Loops (Bucles, se a interface estiver em espanhol), arraste o bloco repetir [ ] vezes.

  2. Coloque dentro da seção fazer só a parte que se repete: uma piscada.

  3. Deixe fora desse bloco o que deve acontecer uma única vez, por exemplo a pausa longa do final.

  4. Clique em Verificar / compilar, Enviar ao dispositivo e observe.

  5. Se o padrão for interrompido ou rápido demais para ver pela câmera, aumente os tempos para 200-1000 ms.

Seu programa com loop deve ficar parecido com isto: três piscadas rápidas e uma
pausa, repetindo.

Diagrama visual de blocos: dentro de Arduino loop infinito há um bloco repetir 3 vezes com Definir LED integrado em HIGH, Esperar 200 milissegundos, Definir LED integrado em LOW e Esperar 200 milissegundos; depois do repetir há Esperar 1000 milissegundos.

Diagrama de referência do padrão com loop. A pausa longa de 1000 milissegundos fica fora de repetir 3 vezes, mas dentro de Arduino loop infinito.

Arduino loop infinito:
   repetir [3] vezes
   fazer:
      [Definir LED integrado] [HIGH]
      [Esperar] 200 milissegundos
      [Definir LED integrado] [LOW]
      [Esperar] 200 milissegundos
   [Esperar] 1000 milissegundos

Quais blocos ficaram dentro do loop repetir? O que aconteceria se você também colocasse dentro do loop a pausa longa que deveria acontecer uma única vez?

Quantas piscadas seguidas você observou antes da pausa na placa real?

4

Reflexão

8 min

Explique uma melhoria que você fez entre a versão longa e a versão com loop. Que evidência levou você a decidir essa melhoria?