Codificação do Transmissor
Nesta seção, você escreve código para o transmissor, configura as variáveis e inicializa os pinos na função
setup .
Escrevendo o Código
Primeiro, uma revisão rápida do tipo de sinal que a arma precisará enviar e como deve se comportar.
Ao codificar o receptor, você indicou que ele deveria reconhecer um bit inicial, em seguida, ler mais nove pulsos.
Os quatro primeiros pulsos são usados para representar o jogador que disparou (nosso Quem).
Os quatro segundos pulsos são usados para representar o que está sendo disparado (o nível do jogador ou o código de comando do árbitro
— nosso O que). O pulso final, incluído no início deste tutorial, é usado para ajudar a eliminar sinais inválidos lidos de quaisquer controles remotos que possam estar na área.
Você conhece algumas coisas sobre como a arma deve se comportar no modo de disparo. Quando as regras do 'Duino tag foram estabelecidas, havia diversas instruções que afetavam como a arma funcionaria.
Condensadas, as instruções importantes são:
- Quando o jogador puxar um gatilho, um único disparo é feito.
- Quando a arma é disparada, ela deve emitir um som legal, como "POU POU".
- Cada arma possui seus tiros de "segurança". Não há recarregamento. Esses disparos podem ser realizados sem perigo.
- cada disparo realizado por um jogador além dos seis aumentar a possibilidade de falha catastrófica da arma. No caso de falha catastrófica da arma, o jogador é eliminado.
Agora, você pode realizar mais alguma codificação. Comece configurando todas as variáveis e inicializando os pinos na função
setup . Abra o arquivo da
Parte 2 e comece a incluir algum código. Como opção, abra o arquivo archive de código e siga em frente.
Inicialização e Configuração
Você incluiu dois pinos na combinação: um para o LED de infravermelho e um para o acionador do botão de pressionamento (Pinos 3 e 4, respectivamente).
Você deve declarar esses pinos como variáveis, como fez com os outros, para que seja mais fácil se você decidir reconectar as coisas posteriormente.
Você irá querer mais algumas variáveis:
- Uma para conter o valor do pino do botão de pressionamento
- Uma para lembrar se você já disparou ara esse pressionamento do botão
- Uma para determinar quanto tempo esperar entre bits individuais ao transmitir dados binários
No final, você obtém algo como a Listagem 5.
Listagem 5. Criando Mais Variáveis
...
int senderPin = 3; // LED infravermelho no Pino 3
int triggerPin = 4; // Acionador do Botão de Pressionamento no Pino 4
...
int trigger; // É usado para conter o valor da leitura do acionador;
boolean fired = false; // Booleano usado para lembrar se o acionador já foi lido.
int waitTime = 300; // O tempo a aguardar entre pulsos
...
|
Na função setup , é necessário inicializar os Pinos 3 e 4. O Pino 3 é para o LED, portanto, está configurado para saída.
O Pino 4 é para o botão de pressionamento, portanto, está configurado para entrada.
Você também deve determinar o valor inicial do gerador de número aleatório, efetuando uma leitura do Pino 0.
Como você não está usando esse pino, uma leitura retornará um número aleatório o suficiente para ser usado para esse propósito, conforme mostrado abaixo.
Listagem 6. Determinando o Valor Inicial do Gerador de Número Aleatório
...
pinMode(senderPin, OUTPUT);
pinMode(triggerPin, INPUT);
...
randomSeed(analogRead(0));
...
|
Agora que você possui as variáveis necessárias e os pinos externos foram inicializados, você pode escrever o código para disparar a arma.
|