Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida sobre int calculaTempoLed()

Vi que no final do curso, quando é implementado os sons do jogo, é adicionado int calculaTempoLed() desta forma:

int calculaTempoLed() {
  int potenciometro = analogRead(1);
  Serial.println(potenciometro);
  return potenciometro;
}

Não entendi para que serve essa parte do código, alguém consegue me explicar? Então eu devo usar o potenciômetro?

1 resposta
solução!

Olá, Felipe! Tudo bem?

Essa função está lendo o valor de um potenciômetro através da função analogRead(1). O valor lido (que varia de 0 a 1023) é então retornado pela função calculaTempoLed().

Logo, a função é usada para determinar o tempo que o LED fica aceso. Veja que na função piscaLed(int portaLed), o delay, ou seja, o tempo que o LED fica ligado, é determinado pela função calculaTempoLed().

Então, se você girar o potenciômetro, isso irá alterar o tempo que o LED fica aceso, tornando o jogo mais rápido ou mais lento.

Aqui está um exemplo prático:

int piscaLed(int portaLed) {

  verificaSomDoLed(portaLed);

  digitalWrite(portaLed,HIGH);
  delay(calculaTempoLed()); // tempo que o LED fica aceso é determinado pelo valor lido do potenciômetro
  digitalWrite(portaLed,LOW);
  delay(MEIO_SEGUNDO);

  return portaLed;
}

Portanto, sim, você deve usar o potenciômetro para controlar a velocidade do jogo, tornando-o mais desafiador ou mais fácil, dependendo da posição do potenciômetro.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software