Lição do Teach
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.
Primeira vez que ativa o Teach? Você pode realizar uma sessão de aula sem custo. Os estudantes entram com um código da turma.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor
Objetivos de aprendizagem
Ler uma entrada e confirmar que ela muda antes de decidir uma saída.
Usar uma condição
se / senãocom uma comparação e um limiar.Diferenciar entrada digital e entrada analógica com um exemplo real.
Visualização da atividade do estudante
Conteúdo da atividade
Apenas visualização. Em uma sessão de aula, os estudantes podem preencher respostas e entregar o trabalho ao professor.
Entrada, limiar e decisão
10 min
Uma entrada é informação que a placa lê 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.
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.
Abra
arduino-visual-board.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.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.Clique em Verificar / compilar e Enviar ao dispositivo (
Upload into deviceouEnviar al dispositivo).Mude a entrada nos controles do laboratório (gire o potenciômetro / mova o controle de entrada) e confira se a leitura muda.
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? |
|---|---|---|---|
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.
Adicione um bloco se / senão.
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 deA0.Dentro de fazer (se a condição for verdadeira), coloque
Definir LED integradoem HIGH.Dentro de senão, coloque
Definir LED integradoem LOW.Adicione
Esperar 100 milissegundosno final para que a leitura se repita de forma estável.Clique em Verificar / compilar, Enviar ao dispositivo e teste movendo a entrada.
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 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.
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).
Transforme esta visualização em uma sessão de aula
Ative o LabsLand Teach para usar esta lição com seus estudantes. Na primeira vez que ativar o Teach, você poderá realizar uma sessão de aula sem custo.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor