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 !
Tags:
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por