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.
Entre com uma conta de professor para preparar uma sessão. 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
Use uma decisão visível com LED para conferir a entrada antes de preencher a tabela.
Abra o laboratório Arduino visual. Use o primeiro potenciômetro da interface, ligado a A0, e mantenha as outras entradas fixas.
Construa a decisão LED antes de coletar dados. Em
Arduino loop forever: seread analog pin# A0 >= 500, LED integrado HIGH; senão LOW; depois espere 100 ms.Serial opcional: mantenha
Setup serial 9600 bpsna área de trabalho e imprimaread analog pin# A0dentro do laço. A rota LED funciona sem serial.Verifique/compile, envie ao dispositivo e programe quando solicitado. Leve o primeiro potenciômetro a mínimo, meio e máximo. Registre o LED e, se disponível, a leitura serial em cada posição.
A escala ADC é 0–1023, mas o potenciômetro remoto pode não cobri-la inteira. Use os extremos observados; uma entrada de 3,3 V com referência de 5 V dá cerca de 675 no máximo. É uma estimativa, não uma leitura exigida.
Se nada mudar, confira A0, o primeiro potenciômetro e o programa enviado. Não procure pinos ao acaso. Se o intervalo observado não cruzar 500, coloque o limiar dentro dele e repita.
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.
Mantenha o programa A0 com LED já testado. Confira a estrutura com o código e diagrama abaixo. Escolha um limiar que separe duas posições observadas, envie a alteração e reteste ambas. Sem serial, registre LED ligado/desligado e limiar testado; leituras ADC numéricas são opcionais.
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 milissegundosExplique 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
Continue para o LabsLand Teach para usar esta lição com seus estudantes e conferir o acesso disponível para sua conta.
Ainda não tem uma conta na LabsLand? Criar sua conta de professor