A linguagem utilizada no Arduino é parecida, principalmente,...

Próximas questões
Com base no mesmo assunto
Q3954301 Programação
A linguagem utilizada no Arduino é parecida, principalmente, com C e C++. O Arduino Sketch é escrito em uma variação simplificada de C/C++, utilizando sintaxe de C++, mas com muitas bibliotecas prontas que facilitam o uso de hardware. O microcontrolador é muito útil para desenvolver projetos interativos independentes, ou pode ser conectado a um computador, a uma rede, ou mesmo à web para recuperar e enviar dados do Arduino e atuar sobre eles. Existem algumas instruções que podem ser executadas na função loop(), que é função principal do programa e executa continuamente, enquanto o Arduino estiver ligado. Uma dessas instruções é a “delay()”, que no Arduino é uma função usada para pausar (bloquear) a execução do programa por um tempo determinado.

Se em um determinado trecho de um programa em Arduino o objetivo seja de pausar a execução do programa em 0,8 s, qual o comando correto a ser utilizado?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Gabarito: B

O que precisava saber: Era necessário saber que a função delay() no Arduino recebe o tempo em milissegundos, não em segundos, e que 0,8 s corresponde a 800 ms.

Critério decisivo: A função delay() recebe o tempo em milissegundos; portanto, 0,8 s = 800 ms, logo o comando correto é delay(800).

Tema central: Função delay() no Arduino e conversão de tempo em segundos para milissegundos.
Análise das alternativas
A
Errada
Incorreta. A alternativa traz 8.000, isto é, 8000 ms, que correspondem a 8 s, não a 0,8 s.
B
Certa
A alternativa B está correta porque apresenta delay(800), e a base informa que delay() trabalha com valores em milissegundos. Como 1 s = 1000 ms, então 0,8 s = 0,8 × 1000 = 800 ms. Além disso, a forma correta de escrita indicada na base é com um inteiro de milissegundos.
C
Errada
Incorreta. delay(80) representa 80 ms, que equivalem a 0,08 s, valor menor que o solicitado.
D
Errada
Incorreta. delay(8) representa 8 ms, isto é, 0,008 s, e não 0,8 s.
E
Errada
Incorreta. A base aponta que a notação com vírgula não representa corretamente o argumento numérico esperado aqui; além disso, 0,08 s é diferente de 0,8 s.
Pegadinha da questão
A pegadinha está em confundir a unidade usada por delay(), que é milissegundo, com segundos, além de trocar 0,8 s por 8 s ou 0,08 s e interpretar a vírgula como separador decimal válido na escrita do argumento da função.
Dica para questões semelhantes
  • Verifique sempre a unidade exigida pela função: na base, delay() usa milissegundos.
  • Quando o tempo vier em segundos, converta para milissegundos multiplicando por 1000.
  • Compare o valor convertido com cada alternativa para eliminar opções como 8 s, 0,08 s ou 0,008 s.
  • Observe a forma de escrita do argumento da função, porque a base exige um inteiro de milissegundos.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo