Um Arduino é um microcontrolador, programável em C++, que é muito utilizado mundialmente. Nele, existe uma função própria que diz quanto tempo ele está funcionando em microssegundos, a função . Ela retorna um valor que varia entre e , após o arduino ficar ligado por um tempo que exceda esse valor, a função reseta a contagem.
No código acima, a função é utilizada na linha , na qual é passada o valor do tempo no qual o Arduino ficou ligado para uma variável , declarada na primeira linha de código.
Tal código é utilizado no Arduino com a intenção de monitorar a quantidade de tempo no qual ele está ligado, fazendo com que seja impresso na tela o valor armazenado na variável . Um estudante percebe que, em certo momento, esse código começa a imprimir uns valores incoerentes para o tempo. Diga uma possível razão para isso.
Passo 1
Fala aí, tudo tranquilo?
Nessa questão, nós não precisamos ter conhecimento prévio em Arduino, devemos apenas compreender o que esse código está fazendo com base no que é dito no enunciado.
Basicamente, esse código imprime o valor do tempo em que o Arduino está ligado por meio do comando , que nos fornece um valor que varia entre e . Esse valor é armazenado variável tempo, declarada como um , e é impresso na tela do computador por meio dos comandos que estão depois da linha .
Passo 2
O problema aqui está na capacidade de armazenamento de uma variável do tipo . A variável pode receber valores que variam entre e , no entanto, ela está recebendo valores maiores que isso, o que vai levar aos valores incoerentes que são observados pelo estudante.
Para que isso fosse consertado, seria recomendado declarar a variável como um , ou simplesmente . Dessa forma, ela poderá receber os valores sem que o seu limite seja ultrapassado.
Resposta
A variável está declarada como , mas deveria ser uma .