2
respostas

Repetição de variavel (aula 5 - introdução a robótica)

Olá, na aula 5 do curso de introdução a robótica há uma etapa em que devemos criar o código que irá de fato mover o braço robótico, o código fica assim:

void moverBase() {
  int posX = analogRead(joystick1X);
  posX = map(posX, 0, 1023, 0, 180);
  motorBase.write(posX);
}
void moverBraco1() {
  int posY = analogRead(joystick1Y);
  posY = map(posY, 0, 1023, 45, 135);
  motorBraco1.write(posY);
}

void moverBraco2() {
  int posX = analogRead(joystick2X);
  posX = map(posX, 0, 1023, 50, 90);
  motorBraco2.write(posX);
}

void moverGarra() {
  int posY = analogRead(joystick2Y);
  posY = map(posY, 0, 1023, 90, 130);
  motorGarra.write(posY);
}

A minha duvida é, na função "moverBase", é definido uma variável chamada "posX", e estabelecemos que ela deve ter o valor da leitura analógica do joystick 1 no eixo x, e na função "moverBraco2" definimos uma variável que também é chamada "posX", e estabelecemos que ela deve ter o valor da leitura analógica do joystick 2 no eixo x, ou seja, estamos estamos estabelecendo que a variável "posX" pode ser definida tanto pela posição do Joystick 1 e do Joystick 2, como o programa identifica qual valor de posX deve ser adotado?

2 respostas

Faaala Gustavo, tudo bem?

O programa não precisa identificar diretamente qual o valor de posX deve ser adotado, isso porque há um escopo de função.

Esse escopo de função faz com que as variáveis que estejam dentro da função, só existam dentro da função, com isso, evitam conflitos como esse de decidir qual variável deverá ser chamada, essas variáveis são independentes, ou seja, dentro da função moverBase há uma variável posX que não tem relação com a variável posX da função moverBraco2.

Imagine como se a função fosse uma caixa e dentro dessa caixa há ferramentas(variáveis) que só existem dentro dessa caixa, quem está fora dessa caixa ou dentro de outra caixa não terá conhecimento sobre as ferramentas que há na caixa atual.

Qualquer dúvida é só falar. Abraços e bons estudos!

Obrigado pelo feedback Nadia, mesmo que alguns meses depois.

Havia chegado nessa conclusão consultando outros fóruns, mas, mesmo assim agradeço pela confirmação!

Um abraço!