Olá novamente caros companheiros, seguindo meu projeto, quase no fim, eis que surge mais um obstáculo, e venho a esta meca, perante vossos gurus tentar obter respostas para seguir em frente.

Um problema que achei que fosse fácil, mas to travado nele a dias e não saio do lugar. O bom e velho encoder rotativo parece funcionar pra todo mundo menos pra mim, rs.

Já peguei todos os códigos da internet, do lab de garagem, de sites gringos, googleando sem parar, fui mexendo nos códigos, tentei desenvolver um do zero sozinho, até que ficou marromeno. Mas ainda neca de pitibiriba. 

Achei que o encoder estivesse com defeito, troquei, esperei 5 dias pra chegar, e acontece a mesma coisa. Já tentei ligar eles de várias formas, com filtro capacitivo, sem, com resistor de pull-up, sem, com pull-up interno, sem, com atachInterrupt, sem, com debounce, sem, só falta levar pra benzer, rs.

Claramente, o problema está em mim, mas se alguém já teve experiências mais agradáveis com esse dispositivo agradeceria muito se compartilhassem comigo.

O sketch que to usando é esse. O encoder que to usando é esse da foto. E na notinha dele diz que o código do componente é: ED1112S-20P-15F. 

Meu objetivo é fazer um contador que vai alterar uma variável em +1 ou -1 a cada passo do encoder, e o que está acontecendo é que cada passo altera 2 ou 3, as vezes até quatro, muito inconstante, e as vezes até vai e volta no mesmo passo, tipo, a variável está em 100, eu giro um passinho pra aumentar, e ela vai pra 102, depois 103, e volta pra 100, do mesmo passo, estranho não?

Enfim, parece ridículo, mas é o que é, alguém sabe como resolver?

Exibições: 2028

Anexos

Responder esta

Respostas a este tópico

Rafael no codigo no pastebin não esta definido um botão, veja se corrige quero testar aqui

Abs.

Qual botão vc se refere Carlos? O do push button?

Segue o esquema que utilizei. Com capacitores de 10nF. E sem esses capacitores o resultado foi o mesmo. E no código habilitei o pullup interno das entradas 2 e 3. 

Em anexo também tem uma demostração do comportamento dele na serial. Olhem só. É bizarro. 

Obrigado a todos pelas ajuda.

Anexos

Simulei no Proteus, como não tinha o mesmo modelo de encoder, ajustei um para pulsos similares, no vídeo minha aplicação e depois uma aplicação usando seu programa.

Link video: https://www.youtube.com/watch?v=g-Ddq_wGz7Y&feature=youtu.be

Abs.

Valeu Carlos, muito bom o vídeo e a forma que vc simulou o encoder. Só não entendi por quê o mesmo código funcionou dessa forma na sua simulação e aqui funciona de outra forma.

Olá Rafael,

Essa foi a intenção ao simular, mostrar que algo deve estar errado no hardware talvez?

Como não tenho o encoder não posso mais que simular, você usa o Proteus? Caso sim lhe envio o arquivo de simulação para que tire suas conclusões.

PD Note uma coisa, no seu código, esta definido pino #define encoderB 3 , veja no meu que mudei para #define encoderB 2, tente fazer o mesmo e poste o resultado, quem sabe...

Abs.

Rafael , comprei dois encoders .

Assim que tiver um tempo irei testa-los .

Encoder Keys KY-040 ( gostei mais desse - você pode sentir os passos ao girar o eixo) 

https://tkkrlab.nl/wiki/Arduino_KY-040_Rotary_encoder_module

GBK Robotics Encoder 

http://www.gbkrobotics.com.br/produto/10/encoder

Qual é o seu modelo ?

José, testei aqui o código que foi usado no vídeo que vc postou e funcionou, surpreendentemente bem!!! Estou aliviado, obrigado pela ajuda!

Porém eu não usei display, fiz só pela serial mesmo, e deu certinho, cada passo incrementa ou decrementa 1, dependendo do sentido. Não esperava, achei que o encoder estivesse estragado.

Num post ai em cima eu postei uma foto do encoder e o modelo dele.

Enfim, agora quero entender este código, pois ele está meio obscuro ainda pra mim, rs. Vou analisá-lo melhor pra entender e adaptar no meu projeto, acho que vai funcionar muito bem.

Agora só preciso comprar um Mega, pois meu projeto já ocupa os pinos de interrupt. E meu projeto ainda vai dois encoders desse, ou seja, vou precisar de 6 interrupts.

Vamos que vamos, valeu!

 

Qual dos dois links você usou ?

O vídeo no youtube, nos comentários do vídeo tem o código que foi usado.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço