Questão nº 29
Questão de Engenharia Elétrica · FCC TRT15 2024 (nº 29)
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); }
O comando pinMode(BOTAO, INPUT_PULLUP); tem como função
- Aconfigurar o pino 32 como entrada e garantir que o nível lógico nesse pino seja baixo ("0") enquanto o botão estiver acionado.
- Bativar a função PWM do pino 32 para que ele opere como entrada lógica.
- Cativar a função debouncing do pino 32, para eliminar ruídos durante o acionamento do botão.
- Dconfigurar o pino 32 como entrada e garantir que o nível lógico nesse pino seja alto ("1") enquanto o botão estiver desacionado. (alternativa correta)
- Ealterar a configuração do pino 32 para que ele opere como entrada com o botão acionado e como saída com o botão desacionado.
Resposta comentada
Gabarito Alternativa D
Quando configuramos um pino como `INPUT_PULLUP`, estamos dizendo ao microcontrolador para usar esse pino como uma entrada digital (para ler um sinal, como de um botão) e, ao mesmo tempo, ativar um resistor interno que puxa o nível lógico do pino para alto (HIGH ou '1') por padrão. Isso é muito útil para botões, pois garante que o pino tenha um estado definido (HIGH) quando o botão não está pressionado, evitando que ele fique 'flutuando' e lendo valores imprevisíveis.
A) Incorreta: A função `INPUT_PULLUP` configura o pino como entrada, mas ela garante que o pino esteja em nível lógico alto ('1') quando o botão não estiver acionado. Se o botão estiver acionado (e tipicamente conectado ao GND), o pino irá para baixo ('0'), mas essa não é a garantia direta da função `INPUT_PULLUP` em si, e sim da ação do botão. A armadilha aqui é que descreve um resultado comum, mas não a função primária de "garantia" do `INPUT_PULLUP`.
B) Incorreta: A função `INPUT_PULLUP` não tem relação com a modulação por largura de pulso (PWM); ela é para configurar pinos digitais de entrada.
C) Incorreta: A função `INPUT_PULLUP` ajuda a estabilizar o sinal da entrada, mas a função debouncing (eliminação de ruídos de contato do botão) é uma técnica de software ou hardware separada que precisa ser implementada para lidar com os múltiplos pulsos que um botão gera ao ser pressionado ou solto.
(D) Correta: O comando `pinMode(BOTAO, INPUT_PULLUP);` configura o pino 32 (definido por `BOTAO`) como uma entrada digital e ativa um resistor de pull-up interno. Este resistor garante que, quando o botão não está pressionado (desacionado), o pino esteja em nível lógico alto ('1'), fornecendo um estado definido e estável.
E) Incorreta: A função `pinMode` define a configuração de um pino (entrada ou saída) de forma estática; ela não altera dinamicamente a função do pino com base no estado de um botão.
Fonte: FCC TRT15 2024 Analista Judiciário - Área Apoio Especializado - Especialidade Engenharia (Elétrica) (Caderno Tipo 003). Reproduzida para fins de estudo.
