/*
Projeto ABATEC - Teste de módulos separados
Sobre o módulo 02, 'Memorização':
> Há quatro botões e LED's, cada um de uma das seguintes co-
res:
- Amarelo
- Azul
- Verde
- Vermelho
Ao toque de um bip e acionamento do LED, a criança deve a-
pertar o botão correspondente a cor, e continuar com a se-
quência
Início: 10.05.24
Término: --.--.--
Versão: 1.1
> .1 - Adição de variável inteira 'b' nos parâmetros de
'void btnsAtributos()', sendo 'a', a definição do mó-
dulo usado e 'b', a definição de qual atribuição aos
botões realizar
OBS.: O objetivo dos códigos e esquemas de testes, é seguir
uma lógica de formatação no programa para que ao final dos
testes, sejam alocados a um único programa, e inter-relacio-
nados para que funcionem em conjunto.
by.: LOSR | <Pedra_Lascada></pL>
*/
//--------------------DEFINIÇÕES--FIXAS----------------------------//
#define buzzer A2
// D2 ~ D6 --> Input Pull Up
// D7 ~ D13 -> Output
//------------------DEFINIÇÕES--MODULARES--------------------------//
// HARDWARE
// Pinagem botões
const int btns[] = {2, 3, 4, 5}; // Botão Vermelho, Botão Verde, Botão Azul e Botão Amarelo, respectivamente
// Pinagem LED's
const int leds[] = {7, 8, 9, 10}; // LED vermelho, LED Verde, LED Azul e LED Amarelo, respectivamente
// SÓFITCHUARRE
// Sufixos das próximas variáveis:
// R - RED, G - Green, B - Blue, Y - Yellow
//Variavéis de armazenamento do estado dos botões
byte btnR, btnR_ant, btnG, btnG_ant, btnB, btnB_ant, btnY, btnY_ant;
// Variavéis de armazenamento do estado dos LED's
byte estado_ledR, estado_ledG, estado_ledB, estado_ledY;
// Variáveis globais
const int maxPontos = 50; // Pontuação máxima possível
int sequencia[maxPontos]; // Vetor com armazenamento máximo com a pontuação máxima
byte rodada;
void modoInativo()
{
}
void jogar();
void turnoArduino()
{
}
void turnoJogaor();
void setup() {
Serial.begin(9600);
pinMode(buzzer, OUTPUT);
for(int i = 0; i < 7; i++) pinMode(i, INPUT_PULLUP);
for(int j = 7; j < 14; j++) pinMode(j, OUTPUT);
}
// Função de analise se os botões foram pressionados ou não
bool afk()
{
//Se btnR pressionado ou btnG pressionado ou btnB pressionado ou btnY pressionado, retornar 0
if(btnR != btnR_ant) return false;
if(btnG != btnG_ant) return false;
/*
else if(btnB != btnB_ant) return false;
else if(btnY != btnY_ant) return false;
*/
else return true;
}
// Atribuições aos botões
void btnsAtributos(int a, int b) // a = módulo usado; b =
{
switch(a)
{
case 1: // Módulo 1 - Perguntas e Respostas
// Colocar atribuições do Módulo 01 - Perguntas e Respostas
break;
case 2: // Módulo 2 - Memorização
switch(b)
{
case 1: //Quando chamar a função 'btnsAtributes' n° 1, atribui-se a leitura dos pinos aos devidos botões
btnR = digitalRead(btns[0]);
btnG = digitalRead(btns[1]);
btnB = digitalRead(btns[2]);
btnY = digitalRead(btns[3]);
break;
case 2: //Quando chamar a função 'btnsAtributes' n° 2, atribui-se às variáveis anteriores o estado 'atual' dos botões
btnR_ant = btnR;
btnG_ant = btnG;
btnB_ant = btnB;
btnY_ant = btnY;
break;
}
break;
case 3: // Módulo 3 - Alfabetização
// Colocar atribuições do Módulo 3 - Alfabetização
break;
}
}
void loop() {
btnsAtributos(2, 0);
if(afk() == false)
{
modoInativo();
}
else
{
Serial.println("penis");
}
btnsAtributos(2, 1);
}