Questão nº 30

Questão de Engenharia Elétrica · FCC TRT15 2024 (nº 30)

FCC2024Analista Judiciário - Área Apoio Especializado - Especialidade Engenharia (Elétrica)Engenharia Elétrica
Gabarito: Aver comentário ↓

Figura da questão de Engenharia Elétrica

Abaixo, têm-se as duas primeiras etapas do programa de teste, isto é, as declarações de variáveis e o setup:

// Variáveis
#define LED 33
#define BOTAO 32
int T = 100;

void setup()
{
  pinMode(LED, OUTPUT);
  pinMode(BOTAO, INPUT_PULLUP);
}

A etapa void loop() do programa que atende aos objetivos do teste é:

Resposta comentada

Gabarito Alternativa A

O void loop() é a função principal em programas Arduino/ESP32 que se repete infinitamente, executando o código dentro dela de forma contínua. A configuração INPUT_PULLUP para um botão significa que o pino lê ALTO (HIGH) quando o botão não está pressionado e BAIXO (LOW) quando o botão está pressionado.

(A) Correta: Quando o botão está pressionado (digitalRead(BOTAO) == 0), o laço while executa repetidamente, fazendo o LED piscar lentamente (com delay(10*T)). Quando o botão não está pressionado (digitalRead(BOTAO) == 1), a condição do while é falsa, então o código após o while é executado, fazendo o LED piscar rapidamente (com delay(T)) uma vez por iteração do loop(), resultando em um piscar rápido contínuo.

(B) Incorreta: Esta alternativa faz o LED piscar lentamente quando o botão não está pressionado (digitalRead(BOTAO) == 1) e rapidamente quando está pressionado (else, ou seja, digitalRead(BOTAO) == 0), o que é o oposto do comportamento esperado pela alternativa A.

(C) Incorreta: Esta alternativa faz o LED piscar lentamente quando o botão não está pressionado (digitalRead(BOTAO) == 1) e rapidamente quando está pressionado (digitalRead(BOTAO) == 0, após o while), o que é o oposto do comportamento esperado pela alternativa A.

(D) Incorreta: Esta alternativa faz o LED piscar rapidamente quando o botão está pressionado (digitalRead(BOTAO) == 0) e lentamente quando não está pressionado (digitalRead(BOTAO) == 1, após o while), o que é o oposto do comportamento esperado pela alternativa A.

(E) Incorreta: Esta alternativa faz o LED piscar lentamente se o botão não estiver pressionado (digitalRead(BOTAO) == 1), mas sempre faz o LED piscar rapidamente em seguida, independentemente do estado do botão, pois o segundo bloco de código não está dentro de um else. Isso resulta em um comportamento inconsistente e não desejado.

Fonte: FCC TRT15 2024 Analista Judiciário - Área Apoio Especializado - Especialidade Engenharia (Elétrica) (Caderno Tipo 003). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho