Teach Remote lab lessons

Teach lesson

Programação visual com Arduino real (3/4): entradas e decisões

Os estudantes leem uma entrada real, conferem se ela muda e usam uma condição com limiar para controlar o LED integrado.

  • 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

  • Ler uma entrada e confirmar que ela muda antes de decidir uma saída.

  • Usar uma condição se / senão com uma comparação e um limiar.

  • Diferenciar entrada digital e entrada analógica com um exemplo real.

Student activity preview

Activity Content

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

1

Entrada, limiar e decisão

10 min

Uma entrada é informação que a placa do exterior. Há dois tipos:

- Entrada digital: só tem dois estados, como um botão pressionado / não pressionado
(ou HIGH / LOW).
- Entrada analógica: tem muitos valores possíveis. Em uma placa Arduino Uno,
uma leitura analógica dá um número de 0 a 1023 (por exemplo, a posição de
um potenciômetro, que é uma peça com um botão giratório).

Um sensor é um componente que produz uma dessas leituras. Um limiar é o
valor de corte que você usa para transformar uma leitura analógica (muitos
números) em uma decisão de sim/não. Exemplo: "se a leitura for maior ou igual a
500, acenda o LED; senão, apague-o". 500 é o limiar.

Lembre-se da estrutura do editor: Arduino configuração / Arduino run first
executa uma vez ao iniciar; Arduino loop infinito / Arduino loop forever
se repete sem parar. A leitura da entrada e a decisão ficam no loop infinito
para que a placa confira o valor muitas vezes.

O que significa usar um limiar de 500 em uma leitura analógica que vai de 0 a 1023?

Escreva uma diferença entre uma entrada digital e uma entrada analógica.

2

Ler e conferir a entrada

16 min

Antes de decidir, confira se você consegue ler a entrada e se ela muda. Essa
verificação é essencial: se a entrada não muda, nenhuma decisão vai funcionar.

  1. Abra arduino-visual-board.

  2. Caminho principal (analógico): em Entrada/Saída (Input/Output, se a interface estiver em inglês; Entrada/Salida, se estiver em espanhol), use Ler pino analógico (read analog pin#) e comece pelo pino A0.

  3. Para *ver* a leitura, você pode usar opcionalmente Comunicações (Comms): adicione Configurar serial 9600 bps e um bloco Escrever/imprimir com a leitura. Se o laboratório não mostrar a saída serial, não tem problema: no passo seguinte você usará o LED como sinal.

  4. Clique em Verificar / compilar e Enviar ao dispositivo (Upload into device ou Enviar al dispositivo).

  5. Mude a entrada nos controles do laboratório (gire o potenciômetro / mova o controle de entrada) e confira se a leitura muda.

  6. Se a leitura não mudar ao mover a entrada, teste outro pino analógico (A0 a A5) até ela mudar. Assim você confirma qual pino lê sua entrada.

Preencha a tabela com uma linha para cada posição de entrada que você testar.
Use pelo menos três linhas: mínimo, meio e máximo; deixe as demais vazias. Em
cada linha, anote a posição da entrada, o pino usado, a leitura ou efeito
visível, e se mudou ao mover a entrada.

Posição / estado da entrada Pino usado Leitura ou efeito observado Mudou ao mover a entrada?
3

Tomar uma decisão

22 min

Agora adicione uma condição se / senão (categoria *Lógica*; em inglês
*Logic*) que use sua leitura e um limiar para acender ou apagar o LED integrado.

  1. Adicione um bloco se / senão.

  2. Na condição, compare sua leitura analógica confirmada com um limiar: por exemplo, Ler pino analógico A0 500. Se você confirmou outro pino analógico, use esse pino no lugar de A0.

  3. Dentro de fazer (se a condição for verdadeira), coloque Definir LED integrado em HIGH.

  4. Dentro de senão, coloque Definir LED integrado em LOW.

  5. Adicione Esperar 100 milissegundos no final para que a leitura se repita de forma estável.

  6. Clique em Verificar / compilar, Enviar ao dispositivo e teste movendo a entrada.

  7. Calibre: se o LED não mudar onde você quer, ajuste o limiar (aumente ou diminua o 500) e repita até que o LED acenda e apague onde você espera.

Seu programa deve ficar parecido com isto:

Diagrama visual de blocos: dentro de Arduino loop infinito há uma condição se Ler pino analógico A0 é maior ou igual a 500; em fazer, Definir LED integrado em HIGH; em senão, Definir LED integrado em LOW; depois, Esperar 100 milissegundos.

Diagrama de referência da decisão. A leitura de A0 é comparada com o limiar, e o LED muda de acordo com a ramificação fazer ou senão.

Arduino loop infinito:
   se  [Ler pino analógico [A0]]  [≥]  [500]
   fazer:
      [Definir LED integrado] [HIGH]
   senão:
      [Definir LED integrado] [LOW]
   [Esperar] 100 milissegundos

Esta referência usa A0 porque é o ponto de partida mais comum. Se sua
verificação mostrou outro pino analógico, mantenha a mesma forma do programa,
mas troque A0 pelo pino confirmado.

Explique sua condição completa: qual entrada você lê, com qual limiar (ou estado) você a compara e qual saída muda.

Descreva dois testes: um em que o LED acende e outro em que ele apaga. Inclua a posição/estado da entrada e, se você calibrou, o limiar final.

4

Se não mudar, depure

7 min

Se o LED não mudar mesmo quando você move a entrada, escreva três verificações ordenadas que faria antes de pedir ajuda (pense em: pino de leitura, valor do limiar e se você enviou o programa).