Salvar variavel da pwm na EEPROM do arduino .RESOLVIDO

Boa noite estou tentando salvar a variável PWM na EEPROM do Arduino mas não estou conseguindo ,quando desligo o Arduino ele não salvar .

Exibições: 540

Anexos

Responder esta

Respostas a este tópico

Olá Angel!

Não pude olhar o código completamente, mas parece que está OK.

Faça o seguinte:

- A EEPROM só grava valores de 1 byte, então mude o tipo da variável pwm para byte:

De: int  pwm = 0;

para: byte pwm = 0;

Se não der certo, então verifique se o teste do menu está funcionando:

if (MenuPage == 4)

Veja se realmente a rotina está entrando nesse trecho.

Depois poste o resultado aqui.

Boa tarde J.A

estarei modificado o código

Mudei a variável pwm para byte mas não grava !

obrigado

J.A

esta gravando !

estava testando no simulador e por isso nao estava funcionando !

coloquei o sketch no arduino e funciono perfeitamente!

mas encontrei mas um erro a o valor pwm quando eu estou aumentando de 0 a 255 ele esta funcionado perfeitamente , mas quando eu estou diminuindo o valor de 255 a 0 ele quando chega no valor 10  ele pula para o valor 90 e começar a diminuir ate chega em 0

Angel, Acho que tem que limpar o lcd antes de imprimir.

Depois que você gravou o pwm na eeprom na opção 4 do menu,

coloque o comando lcd.clear;

antes do trecho abaixo:

lcd.setCursor(0,1);                                 
lcd.print(pwm);
analogWrite(pwmOut, pwm);                        //Gera sinal pwm na saída

coloquei esta dando erro

Desculpe. Faltaram os parênteses; O correto é

 lcd.clear();

estava olhando os sketch anterior e observei que esta esta antes do codigo pra gravar na EEPROM , o valor almenta normal de 0 a 255 , quando estou diminuindo de 255 pra 0 , ele chega ate o valor 10 , depois vai pro valor 10 ele conta 90 ,80,70,,60, 50,40,30,20,10,00  

vo testa

amigo funcionou , os valores estao correto mas o print do pwm no menu não aparece mas so o valor do pwm na segunda  linha na primeira fica em branco

O clear limpa o lcd. Então ele deve ser colocado antes de imprimir.

No entanto ele pode apagar coisas que vc não quer que seja apagada

Outra forma, sem usar o clear é colocar alguns espaços em branco no final do número a ser impresso

O seu programa está correto.

O ideal seria imprimir em um só ponto e colocar o lcd.clear em um único lugar

Como vc está imprimindo em diversos pontos, agora é só revisar os seus prints para que um não interfira com o outro.

     Boa noite 

     funciono , só achei estranho que o print do menu 4 ,da pra perceber que esta piscando os caracteres  quando você olha o lcd de lado, os outros mes estão de boa . ficou a sim depois do lcd.clear();

ficou a sim . 

      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("Velocidade");
      lcd.setCursor(0,1);
      lcd.print(pwm);
      analogWrite(pwmOut, pwm); 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço