Questão nº 39

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

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

Figura da questão de Engenharia Elétrica


T1 = 2 µs
T2 = 10 µs

O programa para o teste do sensor está estruturado conforme segue:

// Teste do sensor ultrassônico
// Tempo T em microssegundos
// Distância D em valores inteiros e em centímetros
// Velocidade padrão do som: 340 m/s

// Variáveis
const int ECHO = 6;
const int TRIG = 7;
long T;
int D;

void setup()
{
  pinMode(ECHO, INPUT);
  pinMode(TRIG, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  pulsoTempo(); // Função 1 - gera o pulso de disparo e mede o tempo
  D = distancia(); // Função 2 - calcula a distância entre sensor e obstáculo
  Serial.print(T);
  Serial.print(" ");
  Serial.println(D);
  delay(1000);
}

// Função 1
int pulsoTempo()
{
  // código a ser identificado
}

// Função 2
int distancia()
{
  <fórmula para calcular a distância entre o sensor e o obstáculo, em centímetros>;
  return D;
}

O código da função pulsoTempo que gera o sinal de disparo e mede o tempo de ida e volta entre sensor e obstáculo é:

Resposta comentada

Gabarito Alternativa B

O sensor ultrassônico HC-SR04 mede distâncias enviando um pulso de som e cronometrando o tempo que leva para o eco retornar. A função `pulseIn()` é usada para medir a duração de um pulso (HIGH ou LOW) em um pino, sendo fundamental para capturar o tempo de retorno do eco.

(A) Incorreta: Usa `delay()` em vez de `delayMicroseconds()`, resultando em atrasos de milissegundos (muito longos) em vez de microssegundos, e tenta usar `pulseOut()` que não é uma função padrão do Arduino para medir pulsos.
(B) Correta: Gera o pulso de disparo de 10µs no pino TRIG usando `delayMicroseconds()` e, em seguida, mede corretamente o tempo do pulso de retorno (HIGH) no pino ECHO com `pulseIn()`, armazenando o valor na variável `T`.
(C) Incorreta: Usa `delay()` em vez de `delayMicroseconds()`, o que gera atrasos de milissegundos (muito longos) para o pulso de disparo, impedindo o funcionamento correto do sensor.
(D) Incorreta: Tenta usar `pulseOut()` (função inexistente para medição) antes de disparar o sensor, e o resultado da medição não é atribuído à variável `T` de forma correta.
(E) Incorreta: Usa `delayMicroseconds()` com valores incorretos (2000µs e 10000µs, que são 2ms e 10ms, respectivamente, em vez de 2µs e 10µs) para o pulso de disparo, e tenta medir um pulso LOW no ECHO, enquanto o sensor envia um pulso HIGH para o eco.

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