Boa tarde,

Preciso de uma ajuda que para mim se tornou uma dor de cabeça mas acredito que não deve ser algo muito complicado, eu é que não sou do ramo.

No código abaixo é lido o valor da porta 0 e dependendo da resistência será impresso um valor na serial entre 0 - 1023, creio que todos que começaram no arduino já fizerem este teste.

Meu problema é o seguinte, eu quero que ele envie para serial o valor da variável "valor" somente uma vez e só envie novamente se houver uma alteração no potenciômetro que altera o valor da variável.

Exemplo: o primeiro valora atribuído a variável é 10.

Ele irá enviar 10 e verificar novamente o valor da variável, se houve alteração ele imprime, se não houve não imprime na serial.

Eu já testei várias condições, o problema é que a variável nunca tem o mesmo valor e pode variar, mesmo que não tenha mexido no potenciômetro uma pouco acima ou abaixo do valor inicial, creio que devido a instabilidade de corrente que circula entre o positivo e negativo.

Agradeço se alguém me der uma luz. 

int potenciometro = 0; // Define o pino do Arduino que o potenciômetro está conectado
int valor = 0;   //Variável que irá receber o valor do potenciômetro


void setup() {
  Serial.begin(9600);


}

void loop() {
  valor = analogRead(potenciometro); //Recebe o valor do potenciômetro

     Serial.println(valor); //Mostra no Serial Monitor o valor obtido do potenciômetro


  }

Exibições: 1645

Responder esta

Respostas a este tópico

A solução apresentada poderá lhe ajudar bastante a estabilizar o acelerador.

Caso a distância do potenciômetro seja grande, você poderá usar cabo blindado e uma constante RC para fazer uma filtragem prévia. O filtro por software fica como uma opção para um sintonia fina, sem a necessidade de alterar o HARDWARE do sistema de contrôle.

 

Bem legal Luiz, vou precisar disso.

Isto, 

através do valor que é lido no pot eu passo para o simulador o quanto deve acelerar ou desacelerar o avião.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço