Placar Eletrônico para Tênis de Mesa: mudanças entre as edições
(17 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 10: | Linha 10: | ||
*Tiago Marins de Queiroz (CST Análise e Desenvolvimento de Sistemas) | *Tiago Marins de Queiroz (CST Análise e Desenvolvimento de Sistemas) | ||
*Joabe Domingos de Oliveira (CST Análise e Desenvolvimento de Sistemas) | *Joabe Domingos de Oliveira (CST Análise e Desenvolvimento de Sistemas) | ||
* | *Micheli Trindade Moura (Licenciatura em Física) | ||
== | ===Produções=== | ||
O '''Placar Eletrônico para Tênis de Mesa''' será controlado por microcontrolador '''Arduíno''' e receberá informações reotamente, via | CANTÚ, E.; MOURA, M. T.; OLIVEIRA, J. D. ; MARINS, T. Medição da energia elétrica produzida por um gerador eólico utilizando o Arduíno Yun. Mostra IFTech 2017, Foz do Iguaçu, 2017. ([[Mídia:Placar2016.pdf|Poster IFTech2017]]). | ||
==Especificação do sistema== | |||
O '''Placar Eletrônico para Tênis de Mesa''' será controlado por microcontrolador '''Arduíno''' e receberá informações reotamente, via '''''bluetooth''''', eviadas por aplicativo em celular '''Android'''. | |||
===Formato do placar eletrônico=== | ===Formato do placar eletrônico=== | ||
A configuração | A configuração do placar eletrônico e as informações a serem apresentadas serão similares as disponibilizadas pelo aplicativo '''Placar Tênis de Mesa''' <ref>https://play.google.com/store/apps/details?id=br.com.leonferrer.tabletennis&hl=pt_BR</ref>, utilizado para arbitrar jogos de tênis de mesa para tablets e smarthphones. | ||
''' | |||
;Configuração | ;Configuração do placar: O placar registrará a partida entre dois jogadores: '''Jogador 1 x Jogador 2'''. | ||
Para iniciar uma partida deve-se definir: | Para iniciar uma partida deve-se definir: | ||
Linha 32: | Linha 36: | ||
===Envio de informações via ''bluetooth'' do smarthphone ao placar=== | ===Envio de informações via ''bluetooth'' do smarthphone ao placar=== | ||
Para o envio das informações via ''bluetooth'' será gerado uma '''string de caracteres''' com as informações correntes do painel,incluindo: | |||
#Ordem do saque (0, 1 ou 2) | |||
#Sets jogador 1 (0 a 9) | |||
#Sets jogador 2 (0 a 9) | |||
#Pontos jogador 1 (0 a 99) | |||
#<code>:</code> (caractere separador) | |||
#Pontos jogador 2 (0 a 99) | |||
#: (caractere separador) | |||
Desta forma, caso haja uma perda momentânea de comunicação entre o ''smarthphone'' e o placar, quando a comunicação for reestabelecida o painel será automaticamente atualizado com a informação atualizada. | Desta forma, caso haja uma perda momentânea de comunicação entre o ''smarthphone'' e o placar, quando a comunicação for reestabelecida o painel será automaticamente atualizado com a informação atualizada. | ||
Linha 44: | Linha 50: | ||
===Hardware do placar eletrônico=== | ===Hardware do placar eletrônico=== | ||
O hardware para o painel eletrônico vai utilizar o '''CI 4511''' que é um '''decodificador de BCD para 7 segmentos'''. | O hardware para o painel eletrônico vai utilizar o '''CI 4511''' <ref>https://www.filipeflop.com/produto/ci-decodificador-cd4511/</ref> que é um '''decodificador de BCD para 7 segmentos'''. | ||
[[Arquivo:PlacarTenisMesa.png]] | [[Arquivo:PlacarTenisMesa.png]] | ||
===Comunicação Serial via Bluetooth=== | ===Comunicação Serial via Bluetooth=== | ||
;Pinagem e conexão com o Arduíno: Será utilizado o módulo '''Bluetooth HC06''' <ref>https://www.filipeflop.com/blog/tutorial-modulo-bluetooth-com-arduino/</ref>, que possui 4 pinos para conexão com o Arduíno, como mostrado na figura: | |||
_________ | _________ | ||
| | | | | | ||
Linha 77: | Linha 68: | ||
|_________| | |_________| | ||
| | | | | | | | | | ||
Vcc ----+ | | +---- | Vcc ----+ | | +---- Rxd | ||
Gnd ------+ +------ | Gnd ------+ +------ Txd | ||
Cuidados com a conexão do módulo Bluetooth HC06 com o Arduíno: | :Cuidados com a conexão do módulo Bluetooth HC06 com o Arduíno: | ||
*O HC06 funciona com alimentação '''Vcc=3,3V''', a qual também é fornecida pelo Arduino ao lado da alimentação de 5V; | :*O HC06 funciona com alimentação '''Vcc=3,3V''', a qual também é fornecida pelo Arduino ao lado da alimentação de 5V; | ||
*Na comunicação serial, como o Arduíno fornece 5V, é necessário utilizar um '''[http://200.17.101.9/wiki/index.php/Resistores#Divisor_de_Tens.C3.A3o divisor de tensão]''' na entrada Rxd do HC06, conforme exemplo abaixo: | :*Na comunicação serial, como o Arduíno fornece 5V, é necessário utilizar um '''[http://200.17.101.9/wiki/index.php/Resistores#Divisor_de_Tens.C3.A3o divisor de tensão]''' na entrada Rxd do HC06, conforme exemplo abaixo: | ||
[[Arquivo:DivisorTensao-Bleutooth.png]] | [[Arquivo:DivisorTensao-Bleutooth.png]] | ||
V<sub>Rxd</sub> = R2/(R1 + R2).5 | V<sub>Rxd</sub> = R2/(R1 + R2).5 | ||
:Exemplo: | ::Exemplo: | ||
R1=470 Ω, R2=1 KΩ -> V<sub>Rxd</sub> = 3,4 V | R1=470 Ω, R2=1 KΩ -> V<sub>Rxd</sub> = 3,4 V | ||
====Arduíno Mega Multi Serial==== | ====Arduíno Mega Multi Serial==== | ||
O '''Arduíno MEGA''' usa a '''Serial''' exclusivamente para comunicação com a '''porta USB'''. Para comunicação serial TTL (5V) nos pinos 0 (RX) and 1 (TX) deve-se utilizar a '''Serial1''', '''Serial2''' ou '''Serial3'''. | O '''Arduíno MEGA''' usa a '''Serial''' exclusivamente para comunicação com a '''porta USB'''. Para comunicação serial TTL (5V) nos pinos 0 (RX) and 1 (TX), como a que será utilizada com o módulo Bluetooth, deve-se utilizar a '''Serial1''', '''Serial2''' ou '''Serial3''' <ref>https://www.arduino.cc/en/Reference/Serial</ref>. | ||
==Software para Arduíno== | ==Software para Arduíno== | ||
===Processamento a ser realizado pelo Arduíno=== | |||
O '''Arduíno''' que controla o placar eletrônico recebe a '''''string'' de caracteres''' via bluetooth e gera a '''contagem em binário''' a ser mostrada em cada ''display''. | |||
;Indicação do sacador:A indicação do '''sacador''' será mostrada através dos '''pontos''' nos dois displays maiores que mostram a pontuação de cada jogador. | |||
;Sinalização sonora:Um buzzer acionado pelo Arduíno indicará algumas situações da partida, por exemplo: | |||
:*'''Um bip''' -> Indicação de '''um ponto''' | |||
:*'''Dois bips''' -> Indicação de ponto e '''inversão na ordem de saque'''; | |||
:*'''Sonorização prolongada''' -> Indicação de '''final de set''' ou '''inversão de lado''' no caso de set decisivo. | |||
===Programa fonte=== | |||
<source lang="c"> | <source lang="c"> | ||
Linha 97: | Linha 101: | ||
//Desenvolvedor: Evandro Cantú | //Desenvolvedor: Evandro Cantú | ||
String mensagem; //string que armazena mensagem | String mensagem; //string que armazena mensagem recebida via Bluetooth | ||
int porta; | |||
void setup() | void setup() | ||
{ | { | ||
//Utiliza Serial1 do Arduino Mega | |||
Serial1.begin(9600); //set baud rate | Serial1.begin(9600); //set baud rate | ||
for (porta=2;porta<18;porta++) | |||
pinMode(porta, OUTPUT); | |||
for (porta=20;porta<30;porta++) | |||
pinMode(porta, OUTPUT); | |||
//Zera portas | |||
for (porta=2;porta<18;porta++) | |||
digitalWrite(porta, LOW); | |||
for (porta=20;porta<30;porta++) | |||
digitalWrite(porta, LOW); | |||
} | } | ||
void geraBinario(char caractere, int | //Função geraBinario: | ||
//Recebe como parâmetro um caractere (0, 1, 2, 3, 4, 5, 6. 7. 8 ou 9) | |||
//e converte para binário nas portas correspondentes do Arduíno | |||
//para mostrar no Painel Eletrônico. | |||
void geraBinario(char caractere, int porta) | |||
{ | { | ||
switch (caractere) { | switch (caractere) { | ||
case '0': | case '0': | ||
Serial1.println("(0000)"); | Serial1.println("(0000)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, LOW); | ||
digitalWrite( | digitalWrite(porta+2, LOW); | ||
digitalWrite( | digitalWrite(porta+3, LOW); | ||
break; | break; | ||
case '1': | case '1': | ||
Serial1.println("(0001)"); | Serial1.println("(0001)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, LOW); | ||
digitalWrite( | digitalWrite(porta+2, LOW); | ||
digitalWrite( | digitalWrite(porta+3, HIGH); | ||
break; | break; | ||
case '2': | case '2': | ||
Serial1.println("(0010)"); | Serial1.println("(0010)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, LOW); | ||
digitalWrite( | digitalWrite(porta+2, HIGH); | ||
digitalWrite( | digitalWrite(porta+3, LOW); | ||
break; | break; | ||
case '3': | case '3': | ||
Serial1.println("(0011)"); | Serial1.println("(0011)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, LOW); | ||
digitalWrite( | digitalWrite(porta+2, HIGH); | ||
digitalWrite( | digitalWrite(porta+3, HIGH); | ||
break; | break; | ||
case '4': | case '4': | ||
Serial1.println("(0100)"); | Serial1.println("(0100)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, HIGH); | ||
digitalWrite( | digitalWrite(porta+2, LOW); | ||
digitalWrite( | digitalWrite(porta+3, LOW); | ||
break; | break; | ||
case '5': | case '5': | ||
Serial1.println("(0101)"); | Serial1.println("(0101)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, HIGH); | ||
digitalWrite( | digitalWrite(porta+2, LOW); | ||
digitalWrite( | digitalWrite(porta+3, HIGH); | ||
break; | break; | ||
case '6': | case '6': | ||
Serial1.println("(0110)"); | Serial1.println("(0110)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, HIGH); | ||
digitalWrite( | digitalWrite(porta+2, HIGH); | ||
digitalWrite( | digitalWrite(porta+3, LOW); | ||
break; | break; | ||
case '7': | case '7': | ||
Serial1.println("(0111)"); | Serial1.println("(0111)"); | ||
digitalWrite( | digitalWrite(porta+0, LOW); | ||
digitalWrite( | digitalWrite(porta+1, HIGH); | ||
digitalWrite( | digitalWrite(porta+2, HIGH); | ||
digitalWrite( | digitalWrite(porta+3, HIGH); | ||
break; | break; | ||
case '8': | case '8': | ||
Serial1.println("(1000)"); | Serial1.println("(1000)"); | ||
digitalWrite( | digitalWrite(porta+0, HIGH); | ||
digitalWrite( | digitalWrite(porta+1, LOW); | ||
digitalWrite( | digitalWrite(porta+2, LOW); | ||
digitalWrite( | digitalWrite(porta+3, LOW); | ||
break; | break; | ||
case '9': | case '9': | ||
Serial1.println("(1001)"); | Serial1.println("(1001)"); | ||
digitalWrite( | digitalWrite(porta+0, HIGH); | ||
digitalWrite( | digitalWrite(porta+1, LOW); | ||
digitalWrite( | digitalWrite(porta+2, LOW); | ||
digitalWrite( | digitalWrite(porta+3, HIGH); | ||
break; | break; | ||
default: | default: | ||
Linha 186: | Linha 205: | ||
{ | { | ||
while(Serial1.available()) | while(Serial1.available()) | ||
{// | {//Enquanto tiver dados na Serial1 conectada ao Bluetooth | ||
mensagem+=char(Serial1.read());// | mensagem+=char(Serial1.read());//Armazena dados na string mensagem | ||
} | } | ||
if(!Serial1.available()) | if(!Serial1.available()) | ||
{ | { | ||
if(mensagem.length() - 2 == 11) | if(mensagem.length() - 2 == 11)//Verifica se mensagem está correta | ||
{//ponto computado | {//ponto computado | ||
Serial1.print(mensagem); // | Serial1.print(mensagem); //Mostra mensagem | ||
Serial1.print("Comprimento: "); | Serial1.print("Comprimento: "); | ||
Serial1.println(mensagem.length() - 2); | Serial1.println(mensagem.length() - 2); | ||
//Organização da mensagem: | |||
//PontosDezena Jogador1 = mensagem[1]; | //PontosDezena Jogador1 = mensagem[1]; | ||
//PontosUnidade Jogador1 = mensagem[2]; | //PontosUnidade Jogador1 = mensagem[2]; | ||
Linha 208: | Linha 228: | ||
geraBinario(mensagem[8],20); //portas = 20, 21, 22, 23 | geraBinario(mensagem[8],20); //portas = 20, 21, 22, 23 | ||
geraBinario(mensagem[9],24); //portas = 24, 25, 26, 27 | geraBinario(mensagem[9],24); //portas = 24, 25, 26, 27 | ||
//Saque Jogador1 = mensagem[0]; | //Saque Jogador1 = mensagem[0]; | ||
//Saque Jogador2 = mensagem[11]; | //Saque Jogador2 = mensagem[11]; | ||
digitalWrite( | digitalWrite(28, LOW); //saque Jogador 1 porta 28 | ||
digitalWrite( | digitalWrite(29, LOW); //saque Jogador 2 porta 29 | ||
if (mensagem[0]=='.') { | if (mensagem[0]=='.') { | ||
Serial1.println("Saque Jogador 1"); | Serial1.println("Saque Jogador 1"); | ||
digitalWrite( | digitalWrite(28, HIGH);} //saque Jogador 1 porta 28 | ||
else if (mensagem[10]=='.') { | else if (mensagem[10]=='.') { | ||
Serial1.println("Saque Jogador 2"); | Serial1.println("Saque Jogador 2"); | ||
digitalWrite( | digitalWrite(29, HIGH);} //saque Jogador 2 porta 29 | ||
mensagem=""; //clear the data | mensagem=""; //clear the data | ||
Linha 225: | Linha 244: | ||
delay(1000); //delay | delay(1000); //delay | ||
} | } | ||
< | </source> | ||
==Referências== | ==Referências== | ||
<references /> | <references /> | ||
---- | |||
--[[Usuário:Evandro.cantu|Evandro.cantu]] ([[Usuário Discussão:Evandro.cantu|discussão]]) 18h37min de 8 de setembro de 2017 (BRT) | |||
---- | ---- | ||
[[Categoria:Arduíno]] | [[Categoria:Arduíno]] [[Categoria:LabMaker]] |
Edição atual tal como às 20h32min de 15 de outubro de 2018
Placar Eletrônico para Tênis de Mesa
Objetivo
O objetivo deste projeto é construir um placar eletrônico para tênis de mesa, automatizado por microcontrolador Arduíno e comandado remotamente por um aplicativo Android via bluetooth.
Equipe
- Professor orientador
- Alunos voluntários
- Tiago Marins de Queiroz (CST Análise e Desenvolvimento de Sistemas)
- Joabe Domingos de Oliveira (CST Análise e Desenvolvimento de Sistemas)
- Micheli Trindade Moura (Licenciatura em Física)
Produções
CANTÚ, E.; MOURA, M. T.; OLIVEIRA, J. D. ; MARINS, T. Medição da energia elétrica produzida por um gerador eólico utilizando o Arduíno Yun. Mostra IFTech 2017, Foz do Iguaçu, 2017. (Poster IFTech2017).
Especificação do sistema
O Placar Eletrônico para Tênis de Mesa será controlado por microcontrolador Arduíno e receberá informações reotamente, via bluetooth, eviadas por aplicativo em celular Android.
Formato do placar eletrônico
A configuração do placar eletrônico e as informações a serem apresentadas serão similares as disponibilizadas pelo aplicativo Placar Tênis de Mesa [1], utilizado para arbitrar jogos de tênis de mesa para tablets e smarthphones.
- Configuração do placar
- O placar registrará a partida entre dois jogadores: Jogador 1 x Jogador 2.
Para iniciar uma partida deve-se definir:
- O número de set (1, 3, 5 ou 7);
- O primeiro jogador a sacar (Jogador 1 ou 2).
- Contagem de pontos pelo smarthphone
- Botões para contagem de ponto, um para cada jogador;
- Botões para voltar ponto (em caso de erro na contagem), um para cada jogador.
Envio de informações via bluetooth do smarthphone ao placar
Para o envio das informações via bluetooth será gerado uma string de caracteres com as informações correntes do painel,incluindo:
- Ordem do saque (0, 1 ou 2)
- Sets jogador 1 (0 a 9)
- Sets jogador 2 (0 a 9)
- Pontos jogador 1 (0 a 99)
:
(caractere separador)- Pontos jogador 2 (0 a 99)
- (caractere separador)
Desta forma, caso haja uma perda momentânea de comunicação entre o smarthphone e o placar, quando a comunicação for reestabelecida o painel será automaticamente atualizado com a informação atualizada.
Hardware do placar eletrônico
O hardware para o painel eletrônico vai utilizar o CI 4511 [2] que é um decodificador de BCD para 7 segmentos.
Comunicação Serial via Bluetooth
- Pinagem e conexão com o Arduíno
- Será utilizado o módulo Bluetooth HC06 [3], que possui 4 pinos para conexão com o Arduíno, como mostrado na figura:
_________ | | | | | | |Bleutooth| | | | HC06 | | | | | |_________| | | | | Vcc ----+ | | +---- Rxd Gnd ------+ +------ Txd
- Cuidados com a conexão do módulo Bluetooth HC06 com o Arduíno:
- O HC06 funciona com alimentação Vcc=3,3V, a qual também é fornecida pelo Arduino ao lado da alimentação de 5V;
- Na comunicação serial, como o Arduíno fornece 5V, é necessário utilizar um divisor de tensão na entrada Rxd do HC06, conforme exemplo abaixo:
VRxd = R2/(R1 + R2).5
- Exemplo:
R1=470 Ω, R2=1 KΩ -> VRxd = 3,4 V
Arduíno Mega Multi Serial
O Arduíno MEGA usa a Serial exclusivamente para comunicação com a porta USB. Para comunicação serial TTL (5V) nos pinos 0 (RX) and 1 (TX), como a que será utilizada com o módulo Bluetooth, deve-se utilizar a Serial1, Serial2 ou Serial3 [4].
Software para Arduíno
Processamento a ser realizado pelo Arduíno
O Arduíno que controla o placar eletrônico recebe a string de caracteres via bluetooth e gera a contagem em binário a ser mostrada em cada display.
- Indicação do sacador
- A indicação do sacador será mostrada através dos pontos nos dois displays maiores que mostram a pontuação de cada jogador.
- Sinalização sonora
- Um buzzer acionado pelo Arduíno indicará algumas situações da partida, por exemplo:
- Um bip -> Indicação de um ponto
- Dois bips -> Indicação de ponto e inversão na ordem de saque;
- Sonorização prolongada -> Indicação de final de set ou inversão de lado no caso de set decisivo.
Programa fonte
//Software para Controle de Painel Eletrônico via Bluetooth
//2017 - IFPR
//Desenvolvedor: Evandro Cantú
String mensagem; //string que armazena mensagem recebida via Bluetooth
int porta;
void setup()
{
//Utiliza Serial1 do Arduino Mega
Serial1.begin(9600); //set baud rate
for (porta=2;porta<18;porta++)
pinMode(porta, OUTPUT);
for (porta=20;porta<30;porta++)
pinMode(porta, OUTPUT);
//Zera portas
for (porta=2;porta<18;porta++)
digitalWrite(porta, LOW);
for (porta=20;porta<30;porta++)
digitalWrite(porta, LOW);
}
//Função geraBinario:
//Recebe como parâmetro um caractere (0, 1, 2, 3, 4, 5, 6. 7. 8 ou 9)
//e converte para binário nas portas correspondentes do Arduíno
//para mostrar no Painel Eletrônico.
void geraBinario(char caractere, int porta)
{
switch (caractere) {
case '0':
Serial1.println("(0000)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, LOW);
digitalWrite(porta+2, LOW);
digitalWrite(porta+3, LOW);
break;
case '1':
Serial1.println("(0001)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, LOW);
digitalWrite(porta+2, LOW);
digitalWrite(porta+3, HIGH);
break;
case '2':
Serial1.println("(0010)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, LOW);
digitalWrite(porta+2, HIGH);
digitalWrite(porta+3, LOW);
break;
case '3':
Serial1.println("(0011)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, LOW);
digitalWrite(porta+2, HIGH);
digitalWrite(porta+3, HIGH);
break;
case '4':
Serial1.println("(0100)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, HIGH);
digitalWrite(porta+2, LOW);
digitalWrite(porta+3, LOW);
break;
case '5':
Serial1.println("(0101)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, HIGH);
digitalWrite(porta+2, LOW);
digitalWrite(porta+3, HIGH);
break;
case '6':
Serial1.println("(0110)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, HIGH);
digitalWrite(porta+2, HIGH);
digitalWrite(porta+3, LOW);
break;
case '7':
Serial1.println("(0111)");
digitalWrite(porta+0, LOW);
digitalWrite(porta+1, HIGH);
digitalWrite(porta+2, HIGH);
digitalWrite(porta+3, HIGH);
break;
case '8':
Serial1.println("(1000)");
digitalWrite(porta+0, HIGH);
digitalWrite(porta+1, LOW);
digitalWrite(porta+2, LOW);
digitalWrite(porta+3, LOW);
break;
case '9':
Serial1.println("(1001)");
digitalWrite(porta+0, HIGH);
digitalWrite(porta+1, LOW);
digitalWrite(porta+2, LOW);
digitalWrite(porta+3, HIGH);
break;
default:
//Mantem Placar
break;
}
}
void loop()
{
while(Serial1.available())
{//Enquanto tiver dados na Serial1 conectada ao Bluetooth
mensagem+=char(Serial1.read());//Armazena dados na string mensagem
}
if(!Serial1.available())
{
if(mensagem.length() - 2 == 11)//Verifica se mensagem está correta
{//ponto computado
Serial1.print(mensagem); //Mostra mensagem
Serial1.print("Comprimento: ");
Serial1.println(mensagem.length() - 2);
//Organização da mensagem:
//PontosDezena Jogador1 = mensagem[1];
//PontosUnidade Jogador1 = mensagem[2];
//Sets Jogador1 = mensagem[4];
//PontosDezena Jogador2 = mensagem[6];
//PontosUnidade Jogador2 = mensagem[8];
//Sets Jogador2 = mensagem[9];
geraBinario(mensagem[1],2); //portas = 2, 3, 4, 5
geraBinario(mensagem[2],6); //portas = 6, 7, 8, 9
geraBinario(mensagem[4],10); //portas = 10, 11, 12, 13
geraBinario(mensagem[6],14); //portas = 14, 15, 16, 17
geraBinario(mensagem[8],20); //portas = 20, 21, 22, 23
geraBinario(mensagem[9],24); //portas = 24, 25, 26, 27
//Saque Jogador1 = mensagem[0];
//Saque Jogador2 = mensagem[11];
digitalWrite(28, LOW); //saque Jogador 1 porta 28
digitalWrite(29, LOW); //saque Jogador 2 porta 29
if (mensagem[0]=='.') {
Serial1.println("Saque Jogador 1");
digitalWrite(28, HIGH);} //saque Jogador 1 porta 28
else if (mensagem[10]=='.') {
Serial1.println("Saque Jogador 2");
digitalWrite(29, HIGH);} //saque Jogador 2 porta 29
mensagem=""; //clear the data
}
}
delay(1000); //delay
}
Referências
--Evandro.cantu (discussão) 18h37min de 8 de setembro de 2017 (BRT)