meu codigo é muito extenso, ta funcionando, o A0 ta ligando o led quando digito minha combinação e acende o led que ta na porta A0 normalmente, só que preciso que ele apague se seg for maior ou igual a 5, não funciona, ele zera o seg como ta ali no if, mas nao apaga depois de passar o tempo, no monitor virtual conta certinho, zera, mas nao apaga o led A0 quando passa o tempo. Se alguem puder me dar uma luz, eu vou presentear como tutorial desse game que to fazendo, obrigado!
i#include <SD.h>
#define SD_ChipSelectPin 53
#include <SPI.h>
#include <TMRpcm.h>
#include <pcmConfig.h>
#include <Arduino.h>
#include <Keypad.h> // Biblioteca do codigo
#include <LedControl.h>
#include <Password.h>
char mychar;//variável audio
const int CS_PIN = 53; //Pino de dados
TMRpcm tmrpcm;//variável audio
// Definição da matriz de led de ambos os jogadores
#define din 19
#define clk 20
#define load 21
#define buzzer 13 // Define o pino D11 como buzzer
// Definição dos botões jogador 1
#define botaoPinligamissil 40
#define botaoPinrecarga 41
const byte LINHAS = 8; // Linhas do teclado
const byte COLUNAS = 4; // Colunas do teclado
// Define the Keymap
const char TECLAS_MATRIZ[LINHAS][COLUNAS] = {
{'A', 'B', 'C', 'D'},
{'E', 'F', 'G', 'H'},
{'1', '2', '3', '4'},
{'5', '*', 'U', '#'},
{'I', 'J', 'L', 'M'},
{'N', 'O', 'P', 'Q'},
{'6', '7', '8', '9'},
{'0', 'R', 'S', '$'}
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
const byte PINOS_LINHAS[LINHAS] = { 11,10, 9, 8,3,2,14,15, };// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
const byte PINOS_COLUNAS[COLUNAS] = { 7, 6, 5, 4, };
// Create the Keypad
Keypad teclado_personalizado = Keypad(makeKeymap(TECLAS_MATRIZ), PINOS_LINHAS, PINOS_COLUNAS, LINHAS, COLUNAS); // Inicia teclado
LedControl lc = LedControl(19, 20, 21, 2);
void setup(){
Serial.begin(9600);
tmrpcm.play("ini2.wav");
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
pinMode(A0, OUTPUT);
digitalWrite(A0, LOW);
digitalWrite(ledPin1, HIGH);
pinMode(botaoPinligamissil,INPUT);
pinMode(botaoPinrecarga,INPUT);
pinMode(ledPin1,OUTPUT);
pinMode(ledPin2,OUTPUT);
pinMode(ledPin3,OUTPUT);
digitalWrite(ledPin1, HIGH);
digitalWrite(ledPin2, HIGH);
digitalWrite(ledPin3, HIGH);
digitalWrite(botaoPinligamissil, HIGH);
digitalWrite(botaoPinrecarga, HIGH);
pinMode(35,INPUT);
pinMode(36,INPUT);
pinMode(ledPin4,OUTPUT);
pinMode(ledPin5,OUTPUT);
tmrpcm.speakerPin = 46;//Porta da saida //5,6,11 or 46 on Mega, 9 on Uno, Nano, etc
if(!SD.begin(CS_PIN)) {
return;
}
}
void loop(){
char leitura_teclas = teclado_personalizado.getKey(); // Atribui a variavel a leitura do teclado
if((digitalRead(40)==LOW)&& (leitura_teclas == '#'))
{ledState++;
tmrpcm.play("miss.wav");
}
else if ((digitalRead(40)==HIGH)&& (leitura_teclas == '#'))
{//ledState=ledState;
tmrpcm.play("bip.wav");
}
if ((digitalRead(37)==LOW)&& (leitura_teclas == '#'))
{//ledState=ledState;
tmrpcm.play("bip.wav");
}
if ((digitalRead(35)==LOW)&& (leitura_teclas == '$'))
{ledState2++;
tmrpcm.play("miss.wav");
}
else if ((digitalRead(35)==HIGH)&& (leitura_teclas == '$'))
{//=ledState2;
tmrpcm.play("bip.wav");
}
if ((digitalRead(32)==LOW)&& (leitura_teclas == '$'))
{//ledState=ledState;
tmrpcm.play("bip.wav");
}
if(leitura_teclas){ // Se alguma tecla foi pressionada
beep();
if((leitura_teclas == '#')||(leitura_teclas == '$')) // Se a tecla 'C' foi pressionada
{
if (senha.evaluate()) {
delay(5500);
lc.setLed(0,0,0,true);
digitalWrite(A0, HIGH);
seg=0;
}
if (seg>=5)
{
digitalWrite(A0, LOW);
}
senha.reset(); // Limpa a variavel senha
if(senha2.evaluate()) // Verifica se a senha digitada esta correta
{
lc.setLed(0,1,0,true);
delay(1000);
lc.setLed(0,1,0,false);
}
senha2.reset(); // Limpa a variavel senha
if(senha3.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,0,true);
delay(1000);
lc.setLed(0,2,0,false);
}
}
senha3.reset(); // Limpa a variavel senha
if(senha4.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,0,true);
delay(1000);
lc.setLed(0,3,0,false);
}
}
senha4.reset(); // Limpa a variavel senha
if(senha5.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,0,true);
delay(1000);
lc.setLed(0,4,0,false);
}
}
senha5.reset(); // Limpa a variavel senha
//COLUNA B
if(senha6.evaluate()) // Verifica se a senha digitada esta correta
{
{delay(5300);
lc.setLed(0,0,1,true);
delay(1000);
lc.setLed(0,0,1,false);
}
}
senha6.reset(); // Limpa a variavel senha
if(senha7.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,1,1,true);
delay(1000);
lc.setLed(0,1,1,false);
}
}
senha7.reset(); // Limpa a variavel senha
if(senha8.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,1,true);
delay(1000);
lc.setLed(0,2,1,false);
}
}
senha8.reset(); // Limpa a variavel senha
if(senha9.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,1,true);
delay(1000);
lc.setLed(0,3,1,false);
}
}
senha9.reset(); // Limpa a variavel senha
if(senha10.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,1,true);
delay(1000);
lc.setLed(0,4,1,false);
}
}
senha10.reset(); // Limpa a variavel senha
//COLUNA C
if(senha11.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,0,2,true);
delay(1000);
lc.setLed(0,0,2,false);
}
}
senha11.reset(); // Limpa a variavel senha
if(senha12.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,1,2,true);
delay(1000);
lc.setLed(0,1,2,false);
}
}
senha12.reset(); // Limpa a variavel senha
if(senha13.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,2,true);
delay(1000);
lc.setLed(0,2,2,false);
}
}
senha13.reset(); // Limpa a variavel senha
if(senha14.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,2,true);
delay(1000);
lc.setLed(0,3,2,false);
}
}
senha14.reset(); // Limpa a variavel senha
if(senha15.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,2,true);
delay(1000);
lc.setLed(0,4,2,false);
}
}
senha15.reset(); // Limpa a variavel senha
//COLUNA D
if(senha16.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,0,3,true);
delay(1000);
lc.setLed(0,0,3,false);
}
}
senha16.reset(); // Limpa a variavel senha
if(senha17.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,1,3,true);
delay(1000);
lc.setLed(0,1,3,false);
}
}
senha17.reset(); // Limpa a variavel senha
if(senha18.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,3,true);
delay(1000);
lc.setLed(0,2,3,false);
}
}
senha18.reset(); // Limpa a variavel senha
if(senha19.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,3,true);
delay(1000);
lc.setLed(0,3,3,false);
}
}
senha19.reset(); // Limpa a variavel senha
if(senha20.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,3,true);
delay(1000);
lc.setLed(0,4,3,false);
}
}
senha20.reset(); // Limpa a variavel senha
//COLUNA E
if(senha21.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,0,4,true);
delay(1000);
lc.setLed(0,0,4,false);
}
}
senha21.reset(); // Limpa a variavel senha
if(senha22.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,1,4,true);
delay(1000);
lc.setLed(0,1,4,false);
}
}
senha22.reset(); // Limpa a variavel senha
if(senha23.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,4,true);
delay(1000);
lc.setLed(0,2,4,false);
}
}
senha23.reset(); // Limpa a variavel senha
if(senha24.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,4,true);
delay(1000);
lc.setLed(0,3,4,false);
}
}
senha24.reset(); // Limpa a variavel senha
if(senha25.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,4,true);
delay(1000);
lc.setLed(0,4,4,false);
}
}
senha25.reset(); // Limpa a variavel senha
//COLUNA F
if(senha26.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,0,5,true);
delay(1000);
lc.setLed(0,0,5,false);
}
}
senha26.reset(); // Limpa a variavel senha
if(senha27.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,1,5,true);
delay(1000);
lc.setLed(0,1,5,false);
}
}
senha27.reset(); // Limpa a variavel senha
if(senha28.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,5,true);
delay(1000);
lc.setLed(0,2,5,false);
}
}
senha28.reset(); // Limpa a variavel senha
if(senha29.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,5,true);
delay(1000);
lc.setLed(0,3,5,false);
}
}
senha29.reset(); // Limpa a variavel senha
if(senha30.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,5,true);
delay(1000);
lc.setLed(0,4,5,false);
}
}
senha30.reset(); // Limpa a variavel senha
//COLUNA G
if(senha31.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,0,6,true);
delay(1000);
lc.setLed(0,0,6,false);
}
}
senha31.reset(); // Limpa a variavel senha
if(senha32.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,1,6,true);
delay(1000);
lc.setLed(0,1,6,false);
}
}
senha32.reset(); // Limpa a variavel senha
if(senha33.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,6,true);
delay(1000);
lc.setLed(0,2,6,false);
}
}
senha33.reset(); // Limpa a variavel senha
if(senha34.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,6,true);
delay(1000);
lc.setLed(0,3,6,false);
}
}
senha34.reset(); // Limpa a variavel senha
if(senha35.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,6,true);
delay(1000);
lc.setLed(0,4,6,false);
}
}
senha35.reset(); // Limpa a variavel senha
//COLUNA H
if(senha36.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,0,7,true);
delay(1000);
lc.setLed(0,0,7,false);
}
}
senha36.reset(); // Limpa a variavel senha
if(senha37.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,1,7,true);
delay(1000);
lc.setLed(0,1,7,false);
}
}
senha37.reset(); // Limpa a variavel senha
if(senha38.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,2,7,true);
delay(1000);
lc.setLed(0,2,7,false);
}
}
senha38.reset(); // Limpa a variavel senha
if(senha39.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,3,7,true);
delay(1000);
lc.setLed(0,3,7,false);
}
}
senha39.reset(); // Limpa a variavel senha
if(senha40.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(0,4,7,true);
delay(1000);
lc.setLed(0,4,7,false);
}
}
senha40.reset(); // Limpa a variavel senha
// COMBINAÇÕES JOGADOR 1 PRA ACENDER LEDS DO JOGADOR 2
//COLUNA A
if(senha41.evaluate()) // Verifica se a senha digitada esta correta
{
{delay(5300);
lc.setLed(1,0,0,true);
delay(1000);
lc.setLed(1,0,0,false);
}
}
senha41.reset(); // Limpa a variavel senha
if(senha42.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,0,true);
delay(1000);
lc.setLed(1,1,0,false);
}
}
senha42.reset(); // Limpa a variavel senha
if(senha43.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,0,true);
delay(1000);
lc.setLed(1,2,0,false);
}
}
senha43.reset(); // Limpa a variavel senha
if(senha44.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,0,true);
delay(1000);
lc.setLed(1,3,0,false);
}
}
senha44.reset(); // Limpa a variavel senha
if(senha45.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,0,true);
delay(1000);
lc.setLed(1,4,0,false);
}
}
senha45.reset(); // Limpa a variavel senha
//COLUNA B
if(senha46.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,0,1,true);
delay(1000);
lc.setLed(1,0,1,false);
}
}
senha46.reset(); // Limpa a variavel senha
if(senha47.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,1,true);
delay(1000);
lc.setLed(1,1,1,false);
}
}
senha47.reset(); // Limpa a variavel senha
if(senha48.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,1,true);
delay(1000);
lc.setLed(1,2,1,false);
}
}
senha48.reset(); // Limpa a variavel senha
if(senha49.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,1,true);
delay(1000);
lc.setLed(1,3,1,false);
}
}
senha49.reset(); // Limpa a variavel senha
if(senha50.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,1,true);
delay(1000);
lc.setLed(1,4,1,false);
}
}
senha50.reset(); // Limpa a variavel senha
//COLUNA C
if(senha51.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,0,2,true);
delay(1000);
lc.setLed(1,0,2,false);
}
}
senha51.reset(); // Limpa a variavel senha
if(senha52.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,2,true);
delay(1000);
lc.setLed(1,1,2,false);
}
}
senha52.reset(); // Limpa a variavel senha
if(senha53.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,2,true);
delay(1000);
lc.setLed(1,2,2,false);
}
}
senha53.reset(); // Limpa a variavel senha
if(senha54.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,2,true);
delay(1000);
lc.setLed(1,3,2,false);
}
}
senha54.reset(); // Limpa a variavel senha
if(senha55.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,2,true);
delay(1000);
lc.setLed(1,4,2,false);
}
}
senha55.reset(); // Limpa a variavel senha
//COLUNA D
if(senha56.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,0,3,true);
delay(1000);
lc.setLed(1,0,3,false);
}
}
senha56.reset(); // Limpa a variavel senha
if(senha57.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,3,true);
delay(1000);
lc.setLed(1,1,3,false);
}
}
senha57.reset(); // Limpa a variavel senha
if(senha58.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,3,true);
delay(1000);
lc.setLed(1,2,3,false);
}
}
senha58.reset(); // Limpa a variavel senha
if(senha59.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,3,true);
delay(1000);
lc.setLed(1,3,3,false);
}
}
senha59.reset(); // Limpa a variavel senha
if(senha60.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,3,true);
delay(1000);
lc.setLed(1,4,3,false);
}
}
senha60.reset(); // Limpa a variavel senha
//COLUNA E
if(senha61.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,0,4,true);
delay(1000);
lc.setLed(1,0,4,false);
}
}
senha61.reset(); // Limpa a variavel senha
if(senha62.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,4,true);
delay(1000);
lc.setLed(1,1,4,false);
}
}
senha62.reset(); // Limpa a variavel senha
if(senha63.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,4,true);
delay(1000);
lc.setLed(1,2,4,false);
}
}
senha63.reset(); // Limpa a variavel senha
if(senha64.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,4,true);
delay(1000);
lc.setLed(1,3,4,false);
}
}
senha64.reset(); // Limpa a variavel senha
if(senha65.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,4,true);
delay(1000);
lc.setLed(1,4,4,false);
}
}
senha65.reset(); // Limpa a variavel senha
//COLUNA F
if(senha66.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,0,5,true);
delay(1000);
lc.setLed(1,0,5,false);
}
}
senha66.reset(); // Limpa a variavel senha
if(senha67.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,5,true);
delay(1000);
lc.setLed(1,1,5,false);
}
}
senha67.reset(); // Limpa a variavel senha
if(senha68.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,5,true);
delay(1000);
lc.setLed(1,2,5,false);
}
}
senha68.reset(); // Limpa a variavel senha
if(senha69.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,5,true);
delay(1000);
lc.setLed(1,3,5,false);
}
}
senha69.reset(); // Limpa a variavel senha
if(senha70.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,5,true);
delay(1000);
lc.setLed(1,4,5,false);
}
}
senha70.reset(); // Limpa a variavel senha
//COLUNA G
if(senha71.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,0,6,true);
delay(1000);
lc.setLed(1,0,6,false);
}
}
senha71.reset(); // Limpa a variavel senha
if(senha72.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,6,true);
delay(1000);
lc.setLed(1,1,6,false);
}
}
senha72.reset(); // Limpa a variavel senha
if(senha73.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,6,true);
delay(1000);
lc.setLed(1,2,6,false);
}
}
senha73.reset(); // Limpa a variavel senha
if(senha74.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,6,true);
delay(1000);
lc.setLed(1,3,6,false);
}
}
senha74.reset(); // Limpa a variavel senha
if(senha75.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,6,true);
delay(1000);
lc.setLed(1,4,6,false);
}
}
senha75.reset(); // Limpa a variavel senha
//COLUNA H
if(senha76.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,0,7,true);
delay(1000);
lc.setLed(1,0,7,false);
}
}
senha76.reset(); // Limpa a variavel senha
if(senha77.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,1,7,true);
delay(1000);
lc.setLed(1,1,7,false);
}
}
senha77.reset(); // Limpa a variavel senha
if(senha78.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,2,7,true);
delay(1000);
lc.setLed(1,2,7,false);
}
}
senha78.reset(); // Limpa a variavel senha
if(senha79.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,3,7,true);
delay(1000);
lc.setLed(1,3,7,false);
}
}
senha79.reset(); // Limpa a variavel senha
if(senha80.evaluate()) // Verifica se a senha digitada esta correta
{
{
lc.setLed(1,4,7,true);
delay(1000);
lc.setLed(1,4,7,false);
}
}
senha80.reset(); // Limpa a variavel senha
}
else
{ // Caso outra tecla tenha sido pressionada
}
}
}