Boa tarde a todos !

  Amigos, estou a um passo de conseguir desenvolver um gamepad sem fio para notebooks e computadores, que funciona via bluetooth. Para o receptor, criei uma espécie de "dongle". É um Atmega com protocolo de joystick USB, que, com a ajuda de um módulo bluetooth, recebe os dados do emissor. E o transmissor, é por enquanto nada mais nada menos do que alguns pushbuttons conectados aos pinos digitais do Arduino que, quando pressionados, enviam  chars para o receptor. Para isso é usado também um outro módulo bluetooth.

   Depois de séculos de programação e testes, finalmente, consegui a comunicação entre estes dispositivos. Os dados são recebidos maravilhosamente em tempo real, sem lags e nadas. Mas, estou com um problema no envio simultâneo destes dados. Eu sou meio bisonho na concepção de certos algoritmos. Tipo, exemplificando o meu problema: eu aperto o direcional para cima mais um botão ao mesmo tempo. O receptor não recebe estes dados corretamente, com a sensibilidade de um controle comum com fio. Mas se eu pressionar cada botão separadamente, o receptor recebe estas informações com perfeição. Alguém pode me dar uma luz de como eu posso fazer isso ? vou postar o código do transmissor a seguir.

CÓDIGO DO TRANSMISSOR :

#include <softwareserial.h>

SoftwareSerial BTMasterHC05(2, 3); // RX do BT | TX do BT


#define But0 10 
#define But7 11


void setup() {
pinMode(But0,INPUT_PULLUP); 
pinMode(But7,INPUT_PULLUP); 
Serial.begin(57600);
BTMasterHC05.begin(57600); 
}


void loop() {

if (BTMasterHC05.available()){ 
Serial.write( BTMasterHC05.read());

if (Serial.available())
{
BTMasterHC05.write(Serial.read());
}

if(digitalRead(But0) == LOW){
BTMasterHC05.write('W'); 
}

else if(digitalRead(But7) == LOW){ 
BTMasterHC05.write('J'); 
}

else { 
BTMasterHC05.write('p'); // se não botões pressionados, o receptor recebe este char e fica inativo esperando novos dados

}
delay(16); 

}

FIM DO CÓDIGO

Enfim, amigos, por favor ! ajudem-me com sua sabedoria. É um dispositivo que pode até sugerir mudanças nos paradigmas de produção deste tipo controles.  Como eu posso fazer para que botões pressionados simultaneamente, possam funcionar neste receptor. 

    Muito obrigado a todos que leram e que possam me sugerir dicas. 

       Abraços !

Exibições: 160

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço