Boa Tarde pessoal,

Estou precisando fazer um codigo que basicamente vai, receber o numero do encoder, verificar se ele é maior ou menor do que ele era antes e executar uma condição para cada situação...

Ex:

IF numero recebido > numero recebido anterior

     { X }

IF numero recebido < numero recebido anterior

     { Y }

 alguem tem uma sujestão? ainda nao escrevi o codigo, mas estive pensando e acho que minha duvidas vão ficar em como vou fazer para ele "saber" o numero recebido anterior...

Exibições: 340

Responder esta

Respostas a este tópico

Oi CA, boa tarde.

Salve o valor anterior em outra variável.

Rui

sim! estive pensando melhor agora tambem, e acho que para nao causar conflito, devo fazer ele atribuir o valor da variavel atual com a variavel anterior depois de passar pelo programa.

Ex: 

int var_atual

int var_anterior

"monitore" var_atual

if var_atual > var_anterior

     {x}

if var_atual < var_anterior

     {y}

 var_anterior == var_atual

assim ele vai começar a fazer o loop do código com a variavel do ultimo ciclo...

Amigo... estou com uma dificuldade semelhante.

Estou tentado armazenar a valor anterior.

(...)

int compara_val, val;

val = analogRead (A0);

if (campara_val>val) {Executa uma função N }

if (campara_val<val) {Executa uma função Z }

compara_val = val;

Porém, quando monitoro na porta serial, ambas as variáveis recebem o mesmo valor. Ele não armazena o valor da variável anterior.

Alguém poderia ajudar?!

Boa noite AS,

experimente inicializar as variáveis no inicio.

int compara_val = 0;

int  val = 0;

RV

Segue o arquivo em anexo amigo.

Anexos

Parece correto.

O led corresponde ao esperado ?

Diria que ele varia, atua, depois o valor estabiliza e passa a ser igual.

Se vier um valor igual (repetido) naturalmente as duas variaveis vão receber o mesmo valor (atual é sim igual ao anterior).

Sem novidade.

Se vc quer que seja armazenado apenas os valores anteriores diferentes do atual precisa colocar essa condição no codigo.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço