Boa tarde amigos, estou com dificuldade na programação pois sou iniciante e não estou conseguindo que a leitura de um pino analógico varie de 0-1023 no meu está variando de 0-255 se alguém puder me dar uma dica.

Exibições: 832

Responder esta

Respostas a este tópico

Obrigado José Gustavo por sua colaboração concordo plenamente com a parte das traduções e uso também os mesmos tradutores, só peço desculpas por minha ignorância mas na placa arduino usando o serial monitor os valores vão de 0-1023 e quando passo para o modo  joystick  lê como 0-255. Acho que não entendo de como mudar este comando:

// Definir os sticks analógicos
   // Desde analogRead (pin) retorna um valor de 10 bits,
   // Precisamos executar uma operação de deslocamento de bits para
   // Perde os 2 bits menos significativos e ter uma
   // 8 bit número que podemos usar
   controllerData.leftStickX = analogRead (A0) >> 2;
   controllerData.leftStickY = ((analogRead (A3) / 2) >> 2) + 128 - ((analogRead (A1) / 2) >> 2);
   controllerData.rightStickX = analogRead (A2) >> 2;
   //controllerData.rightStickY = analogRead (A2) >> 2;
   // E retornar os dados!
   voltar controllerData;

Preciso somente que o A0 seja reconhecido como 0-1023 e não sei como faze-lo tentei varias coisas sem sucesso, poderia me mostrar onde peco. obrigado

Recomendo que estude a programação do Arduino : 

https://www.arduino.cc/en/Reference/HomePage

Existem muitos livros bons . 

No seu programa :

controllerData.leftStickX = analogRead (A0) >> 2;

https://www.arduino.cc/en/Reference/Bitshift

Acho que se não usar o bishift conseguirá obter o resultado desejado. 

Olá Sergio

Se você usar esse comando analogRead (A0) >> 2, você perde os dois bits menos significativos, o comentário está dizendo isso.

O simbolo >> é um deslocador de bit, o processador coloca o valor 0 em cada posição deslocada dos bits mais significativo e joga fora os menos significativos.

Teste sem >>2

testei ele da quatro voltas indo de 0a255 consecutivas 

Teste isso :

   controllerData.leftStickX = analogRead (A0) ;

Você vai usar um Joystick ?
  

Olá José vou usar um potenciômetro mas para controlar no modo Joystick, meu projeto é a construção de um cockpit para um simulador de caminhões, este potenciômetro que estou usando um B10k ele é usado no eixo X para o volante e é o que preciso para a leitura de 0-1023 para tirar a zona morta da direção que a 0-255 deixa. Com o esquema que passei consigo que funcione as outras entradas analógicas com perfeição para os pedais de acelerador,freio e embreagem em 0-255 mas meu problema é no caso o analógico do volante. Com sua experiencia poderia me dizer se estou usando o potenciômetro certo ou se oque estou tentando não vai ser possível? Desde já lhe agradeço principalmente pelas instruções que já me passou.

Creio que um POT de 10K dá para fazer o que deseja. 
Mas o POT é linear(LIN)  ou logaritmico ? (LOG) 

Use POT com variação linear de resistência. 

Não sei se o POT seria mais preciso para um volante. 

Talvez pudesse  tentar um  Encoder incremental. 

http://labdegaragem.com/profiles/blogs/tutorial-como-utilizar-encod...

http://labdegaragem.com/forum/topics/ajuda-encoder-rotativo

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço