Tcc-Victor-Gomes GENIUS PDF
Tcc-Victor-Gomes GENIUS PDF
Tcc-Victor-Gomes GENIUS PDF
ENGENHARIA DE COMPUTAC
AO
DESENVOLVIMENTO DE UM JOGO DE
LUMINOSA NA PLATAFORMA
MEMORIZAC
AO
ARDUINO
Manaus
2011
LUMINOSA
DESENVOLVIMENTO DE UM JOGO DE MEMORIZAC
AO
NA PLATAFORMA ARDUINO
ii
CIP - Catalogac
ao na Publicac
ao
G633d
iii
VICTOR KALEB LEITE GOMES
LUMINOSA
DESENVOLVIMENTO DE UM JOGO DE MEMORIZAC
AO
NA PLATAFORMA ARDUINO
iv
Agradecimentos
Aos meu pai Ednilson Gomes,minha mae
Francisca Leite, a minha irma Bruna Leite,
toda minha famlia, tambem aos amigos Joao
Guilherme, Clarice Santos, Yasminie, George
Nunes,Emiliano e Bruno Mendes que, com
muito apoio, nao mediram esforcos para que
eu chegasse ate esta etapa de minha vida.
Ao professor orientador Jucimar Maia pelo
grande apoio, incentivo e muita paciencia,
que me levaram a` execucao e conclusao desta
Monografia.
Resumo
vi
Abstract
This study describes the development of a memory game based on the Genius Simon,
a famous game in the 80s. The game makes use of the resources Arduino prototyping
platformaims to a bright memory of the sequence generated randomly each time the game
starts. The game generates a sequence of light, which would be repeated by your player to
the correct number of times until the end.
vii
Sum
ario
Lista de Tabelas
ix
Lista de Figuras
Lista de C
odigos
1 Introduc
ao
1.1 Introducao . . . . . . . . . .
1.2 Justificativa . . . . . . . . .
1.3 Objetivo . . . . . . . . . . .
1.3.1 Objetivos Especficos
1.4 Metodologia . . . . . . . . .
.
.
.
.
.
1
1
2
2
2
2
.
.
.
.
.
.
.
.
.
.
.
.
.
4
4
5
6
8
8
9
10
11
11
11
12
13
14
2 Arduino
2.1 Arduino . . . . . . . . . .
2.2 Hardware . . . . . . . . .
2.3 Arduino Uno . . . . . . .
2.4 Memoria . . . . . . . . . .
2.5 Interface(Entrada e Sada)
2.6 Comunicacao . . . . . . .
2.7 Atmel AVR . . . . . . . .
2.7.1 Arquitetura . . . .
2.7.2 Memoria(Flash) . .
2.7.3 Registradores . . .
2.7.4 EEPROM . . . . .
2.7.5 Open-source . . . .
2.7.6 Plataforma Ideal .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
viii
3 JOGOS DE MEMORIA
3.1 Memoria . . . . . . . .
3.1.1 Mnemotecnica .
3.2 Genius . . . . . . . . .
3.2.1 Historico . . . .
.
.
.
.
15
15
17
17
18
.
.
.
.
.
.
20
20
21
22
23
24
24
5 Conclus
ao
5.1 Conclusao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Trabalhos Futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
26
26
26
Refer
encias Bibliogr
aficas
28
6 Ap
endice
6.1 Codigo da Aplicacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
29
29
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Desenvolvimento
4.1 Material Utilizado . . . . . . . . . . . . . . . .
4.2 Regras do Jogo . . . . . . . . . . . . . . . . .
4.3 Geracao de sequencia e controle da verificacao
4.4 Emissao de comandos . . . . . . . . . . . . . .
4.5 Entrada de Dados . . . . . . . . . . . . . . . .
4.6 Interface de Entrada e Sada . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ix
Lista de Tabelas
2.1
Especificacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Lista de Figuras
2.1
2.2
2.3
6
6
10
3.1
Genius-simon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
18
4.1
4.2
Fluxo do Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Circuito do Jogo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
25
xi
Lista de C
odigos
4.3.1 Geracao Aleatoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
22
23
24
29
30
31
Captulo 1
Introdu
c
ao
1.1
Introduc
ao
Justicativa
O que propicia um boa estrutura para desenvolvimento, ferramenta com comunidade forte
e com muitas estruturas para construcoes em desenvolvimento.
1.2
Justificativa
1.3
Objetivo
1.3.1
Objetivos Especficos
1.4
Metodologia
Metodologia
programacao para entrada e sada de dados para interagir com o hardware da plataforma
de forma a reconhecer os comando logicos de entrada e ser capaz de emitir sada eletrica
responsiva nos leds. Depois de realizada a programacao, sera feita a construcao dos circuitos
que servirao de interface para usuario do jogo. No caso da sada, o circuito com os quatros
leds coloridos, funcionam como a interface de sada.Ao que diz repeito a entrada de dados,
esta serao feitas a partir de interceptacao de voltagem com botoes. E apos desenvolvida
a parte funcional sera necessaria uma caixa protetora de forma a facilitar interacao do
jogador.
Captulo 2
Arduino
2.1
Arduino
Hardware
2.2
Hardware
Arduino Uno
2.3
Arduino Uno
Arduino Uno
Microcontroller
Operating Voltage
ATmega328
5V
6-20V
14 (destes 6 geram sada PWM )
6
40 mA
50 mA
Flash Memory
SRAM
2 KB (ATmega328) .
EEPROM
1 KB (ATmega328) .
Clock Speed
16 MHz
Tabela 2.1: Especificacao
O Arduino Uno pode ser alimentado pela conexao USB ou outro suprimento de energia
externa sendo a fonte escolhida automaticamente.
Alimentacao externa pode ser feita com um adaptador AC-to-DC (wall-wart) ou
bateria. O adaptador pode ser conectado por conector a 2.1mm center-positive. Conduz
a partir de uma bateria pode ser inserido nos pinos Gnd e Vin.
A placa pode operar com um fornecimento de energia externa de 6 a 20 volts. Se
fornecido menos de 7V, entretanto, o pino de 5V pode fornecer menos de cinco volts
deixando o sistema instavel. Caso mais do que 12V, o regulador de voltagem pode ter
um overheat e danificar o sistema. Por isso e recomendado uma voltagem entre 7 e 12 volts.
Os Pinos para controle de alimentacao sao:
VIN. A voltagem de entrada para a placa do Arduino quando esta sendo usado para
Memria
fonte externa. Voce pode alimentar por este pino ou se o fornecimento de tensao for feito
pela tomada, acessa-lo deste pino.
5V. Fonte regulada usada para alimentar o microcontrolador e outros componentes .
Podendo vir tanto do VIN como de outro regulador interno, ou fornecido pelo USB ou
outro fornecimento regulado a 5V.
3V3.
Com corrente
maxima de 50 mA.
GND. Aterramento.
2.4
Mem
oria
2.5
Interface(Entrada e Sada)
Cada um dos 14 pinos digitais que podem ser usados tanto para sada quanto para
entrada, usando as funcoes pinMode(), digitalWrite(), digitalRead(). Eles operam a 5
volts. Cada pino pode prover ou receber no maximo 40 mA e possui um resistor interno
de pull-up de 20-50 kOhms. E como aditivo, alguns pinos tem funcoes especializadas:
Serial: 0 (RX) e 1 (TX). Usado para (RX) e transmitir (TX) TTL serial data. Esses
pinos sao conectados aos pinos correspondentes do ATmega8U2 USB-to-TTL Serial chip.
Interrupcoes externas: 2 e 3. Estes pinos podem ser configurados para disparar uma
interrupcao em baixo valor, para subida ou queda,ou uma mudanca no valor. Por meio da
Comunicao
funcao attachInterrupt() .
PWM: 3, 5, 6, 9, 10 e 11. Fornece um sada de 8-bit PWM com a funcao analogWrite() .
SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Estes pinos dao suporte para
comunicacao SPI usando a biblioteca SPI.
LED: 13. Trata-se de um LED embutido ligado ao pino 13. Quando o pino esta em
Alto Valor, o LED fica ligado, quando baixo, este permanece desligado.
O Uno tem 6 entradas analogicas, listadas A0 a` A5, cada um dos quais com 10 bits
de resolucao (i.e. 1024 valores diferentes). No default eles medem do terra para 5 volts,
embora seja possvel mudar o limite superior de sua faixa usando o pino AREF e a funcao
analogReference () . Em aditivo, alguns pinos tem funcionalidades especializadas:
TWI: pino A4 ou SDA, e o pino A5 ou SCL. Fornecem comunicacao TWI usando
a biblioteca Wire. AREF. Voltagem de referencia. usado junto a funcao analogReference().
Reset.
2.6
Comunicac
ao
O Arduino tem in
umeras facilidades de comunicacao com computadores, outro Arduino,
ou outros microcontroladores. The ATmega328 fornece uma comunicacao serial UART
TTL (5V) , que se disponibiliza nos pinos 0 (RX) e 1 (TX). Um ATmega16U2 nos canais
de comunicacao com o USB cria uma porta virtual com software do computador(IDE).
O 16U2 firmware se utiliza de drivers padrao USB COM, e sem a necessidade de um
driver externo. Entretanto no Windows um arquivo inf. e necessario. O software inclui um
monitoramento via serial que permite textos simplex sejam mandados da placa do Arduino.
Atmel AVR
10
2.7
Atmel AVR
Atmel AVR
11
pacote DIP de 40 pinos teve a mesma pinagem que o 8051, incluindo enderecos externos
multiplexados e dados de controlador. A polaridade do RESET era invertida, mas fora
isso, o restante da pinagem era identica.
A arquitetura Havard modificada do AVR tem o programa e os dados armazenados em
sistemas de memoria fsica separados, que aparecem em diferentes espacos de enderecos,
mas possui a habilidade de ler os itens da memoria do programa usando instrucoes especiais.
2.7.1
Arquitetura
2.7.2
Mem
oria(Flash)
2.7.3
Registradores
Atmel AVR
12
2.7.4
EEPROM
Atmel AVR
13
especiais e instrucoes de leitura/escrita, o que faz o acesso a` EEPROM muito mais lento
que outra RAM interna.
Entretanto, alguns dispositivos na famlia SecureAVR (AT90SC) usam um mapeamento
de EEPROM especial para a memoria de dados ou texto (programa) dependendo da
configuracao. A famlia XMEGA tambem permite que a EEPROM seja mapeada para o
espaco de enderecamento de dados.
Como o n
umero de escritas na EEPROM nao e ilimitado a Atmel especifica 100.000
ciclos de escrita uma boa rotina de escrita na EEPROM deve comparar o conte
udo do
endereco da EEPROM a ser escrito com o valor desejado a ser gravado e fazer a escrita
apenas se o conte
udo precisar ser modificado.
2.7.5
Open-source
Atmel AVR
2.7.6
14
Plataforma Ideal
Ao longo deste captulo, foi possvel, entender algumas das capacidades desta
platoforma, uma plataforma atual com muitas possibilidades para desenvolvimento,
hardware atual e bem especificado e aberto o que permite o estudo mais
aprofundado.Verificou-se um hardware confiavel e ideal para o desenvolvimento de
estruturas automatizadas.
Captulo 3
JOGOS DE MEMORIA
3.1
Mem
oria
Memria
16
Genius
3.1.1
17
Mnemot
ecnica
3.2
Genius
Existem in
umeros jogos que trabalham a memoria, como sudoku, jogo de memoria, e
direta ou indiretamente todos eles ajudam a exercitar e melhorar a nossa capacidade de
memorizacao.
Genius um brinquedo muito popular na decada de 1980 e que buscava estimular a
memorizacao de cores e sons. Com um formato semelhante a um OVNI, possua botoes
coloridos que emitiam sons harmonicos e se iluminavam em seq
uencia. Cabia aos jogadores
repetir o processo sem errar.
O Genius original possua tres jogos diferentes:
Genius
18
Repita a seq
uencia
Crie sua propria seq
uencia
Repita a seq
uencia, agora apertando somente uma cor
Quatro nveis de dificuldade.
8 repeticoes
14 repeticoes
20 repeticoes
31 repeticoes
Atualmente e fabricado pela Estrela, que rebatizou o jogo com o nome de Genius Simon.
3.2.1
Hist
orico
O Genius lancado em 1980 pela Estrela foi o primeiro jogo eletronico vendido no Brasil,
era a versao do Simon, do fabricante americano Hasbro. Muitos brinquedos eletronicos
Genius
19
da Estrela dos anos 80, como o Pegasus, Colossus, Genius e outros, saram de linha,
frustrando milhares de criancas, hoje ja crescidas, que nao puderam te-los na epoca.
Em 1987, a Prosoft desenvolveu um Genius para MSX 1, O programa foi desenvolvido
em Basic.
Captulo 4
Desenvolvimento
Neste captulo sera apresentada como foi feita a concepcao do projeto, fluxograma
que define o processo, figuras que exemplificam o projeto e codigo que desempenham
procedimentos, chaves para o desenvolvimento do mesmo, e tambem a disposicao do
hardware para chegar a este resultado.
arduino(hardware e software).
4.1
Material Utilizado
1 protoboard
1 led amarelo
1 led vermelho
1 led azul
1 led verde
5 botoes
1 placa arduino UNO
1 cabo USB
Regras do Jogo
21
4.2
Regras do Jogo
A regras adotadas para esse jogo sao baseadas no funcionamento do genius. Este
conjunto de regras descritas a seguir servirao de guia para construcao do algorismo que
sera executado no microprocessador (ATmega328).
Ganha o jogo ao se repetir corretamente a sequencia completa de luzes(8).
Por meio dos botoes pode-se acionar as luzes.
Cada botao fica abaixo de sua luz correspondente.
O sistema do jogo gera uma sequencia aletoria.
O sistema emite o sinal luminoso de acordo com a sequencia aletoria gerada, que ira
ser emitida em subsequencias.
O jogador a aumenta passa a subsequencia seguinte ao acertar a subsequencia
presente, ou seja acendendo as luzes na mesma ordem que o sistema do jogo emitiu
por meio dos botoes.
Caso o jogador nao repita a sequencia correta o jogo volta a menor subsequencia e
uma nova sequencia e gerada.
Caso pressionado o botao de reset o jogo volta a menor subsequencia e uma nova
sequencia e gerada.
Ao repetir a sequencia completa corretamente as quatro luzes acendem indicando o
fim do jogo, e o jogo volta a menor subsequencia e uma nova sequencia e gerada.
O fluxograma 4.1 representa graficamente parte das regras.
22
4.3
Gerac
ao de sequ
encia e controle da verifica
c
ao
No Arduino utliza-se uma escrita na linguagem C para execucao dos algoritmos. Aqui
entao cria-se a logica do programa que ira controlar as regras do jogo.
O n
umero aleatorio e gerado a partir de uma leitura de uma porta analogica que gera
um coportamento aleatorio numa porta vazia, que ira ser base para a geracao da sequencia.
utilizando o metodo randomSeed() Utilizando o Random() para gerar o metodo aleatorio.
Esta parte do codigo representa como a logica foi gerada.
1
2
3
4
5
6
Serial.begin(9600);
randomSeed(analogRead(6));
for(j=0;j<MaxSeq;j++)
{
seq[j]=((random(0,2000))%4)+1;
}
Emisso de comandos
4.4
23
Emiss
ao de comandos
Sao utilizadas portas digitais para se fazer a comunicacao do Arduino, com o meio
exterior, e por meio dessas com o controle de voltagem LOW e HIGH.
No caso deste projeto a resposta eletrica servira para acender as quatro luzes
coloridas:verde,vermelho,azul,amarela. Para esta sada utiliza-se. O codigo a seguir mostra
um teste com a sada no metodo digitalWrite().
Este tem como efeito o teste a resposta das luzes a um sequencia imposta de modo
que este modulo tem a ideia de testar, a comunicabilidade do Arduino as portas de saida
digital com interacao com led.
1
2
3
4
5
6
7
8
pinMode(ledPinGreen, OUTPUT); // (pinMode uma funcao que serve para configurar os pinos
pinMode(ledPinRed, OUTPUT);
pinMode(ledPinYellow, OUTPUT);//pode ser Saida(OUTPUT) ou uma Entrada(INPUT)
9
10
11
12
13
14
15
16
}
void loop()
{
red=yellow=green=LOW;
switch(seq[i]){
case 1:
digitalWrite(ledPinRed, HIGH);
break;
case 2:
digitalWrite(ledPinGreen, HIGH);
break;
case 3:
digitalWrite(ledPinYellow, HIGH);
break;
}
delay(1000);
// (tempo para o proximo comando)
digitalWrite(ledPinRed, LOW);
digitalWrite(ledPinGreen, LOW);
digitalWrite(ledPinYellow, LOW);
delay(1000);
if(i<20)
i++;
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
11;
Entrada de Dados
4.5
24
Entrada de Dados
Neste projeto, a interacao com processador ocorre da interrupcao feita pela recepcao
HIGH e LOW feita nas portas de leitura.
Primeiro define-se na pinagem que determinado pino sera para leitura. Apos feito
isso o mesmo se torna apto para leitura, sendo este agora sensvel a entender uma acao
externa, neste caso, oriunda do proprio Arduino. O controle e sinalizado por meio de uma
alimentacao de 5V originaria da propria placa, que pode ser indentificada logicamente pela
interrupcao feita pelo botao ligado ao resistor.
3
4
5
void setup()
{
pinMode(buttonPinGreen, INPUT);
pinMode(buttonPinRed, INPUT);
pinMode(buttonPinYellow, INPUT);
pinMode(buttonPinBlue, INPUT);
6
7
1
2
8
9
10
11
12
13
14
15
void loop()
{
buttonStateGreen = digitalRead(buttonPinGreen);
buttonStateRed = digitalRead(buttonPinRed);
buttonStateYellow = digitalRead(buttonPinYellow);
buttonStateBlue = digitalRead(buttonPinBlue);
}
4.6
25
Captulo 5
Conclus
ao
5.1
Conclus
ao
5.2
Trabalhos Futuros
Trabalhos Futuros
27
Para que o produto adquira possibilidades de venda precisa ser reconstruido com
apenas componentes necessarios, como o Arduino trata-se de uma plataforma
de desenvolvimento, tem muitos componentes que nao foram utilizados para a
construcao do projeto, mesmo sendo barato para um sistema de prototipagem
torna-se cara para mercado.
Melhorar a resposta dos botoes:
Refer
encias Bibliogr
aficas
[Atm] Stio oficial da atmel. [Online;http://www.atmel.com accessed 10-Outubro-2011].
[Ard2010] (2010). Arduino. [Online;http://www.arduino.cc accessed 12-Outubro-2011].
[Uno2011] (2011). Arduino Uno Rev 3 Reference Manual. Arduino.
[ATm2011] (2011). ATmega48A/PA/88A/PA/168A/PA/328/P Reference. Atmel.
[Cardoso1996] Cardoso, S. H. (1996). Memoria: O que e e como melhora-la.
[da Silveira2011] da Silveira, J. A. (2011). Arduino Basico. Ensino Profissional, first
edition.
[de Faria2006] de Faria, T. H. D. (2006). Introducao a microcontroladores.
[McRoberts2011] McRoberts, M. (2011). Arduino Basico. Novatec, first edition.
[Wazlawick2009] Wazlawick, R. S. (2009).
Captulo 6
Ap
endice
6.1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
C
odigo da Aplica
c
ao
22
Cdigo da Aplicao
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void mostrar_sequencia(){
if(i<=fimseq)
{
switch(seq[i])
{
case 1:
digitalWrite(ledPinGreen, HIGH);
break;
case 2:
digitalWrite(ledPinRed, HIGH);
break;
case 3:
digitalWrite(ledPinYellow, HIGH);
break;
case 4:
digitalWrite(ledPinBlue, HIGH);
break ;
}
i++;
}
}
void acender(){
if(a<=fimseq)
{
25
26
if (buttonStateGreen == HIGH)
{
digitalWrite(ledPinGreen, HIGH);
rep[a]=1;
if(seq[a]==rep[a])
a++;
else
{
a=i=0;
fimseq=1;
}
27
28
29
30
31
32
33
34
35
36
37
}
if (buttonStateRed == HIGH)
{
digitalWrite(ledPinRed, HIGH);
rep[a]=2;
if(seq[a]==rep[a])
a++;
else
{
a=i=0;
fimseq=1;
}
}
if (buttonStateYellow == HIGH)
{
digitalWrite(ledPinYellow, HIGH);
rep[a]=3;
if(seq[a]==rep[a])
a++;
else
{
a=i=0;
fimseq=1;
}
}
if (buttonStateBlue == HIGH)
{
digitalWrite(ledPinBlue, HIGH);
rep[a]=4;
if(seq[a]==rep[a])
a++;
else
{
a=i=0;
fimseq=1;
}
}
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
}
}
30
Cdigo da Aplicao
1
2
3
4
5
6
7
31
void loop()
{
buttonStateGreen = digitalRead(buttonPinGreen);
buttonStateRed = digitalRead(buttonPinRed);
buttonStateYellow = digitalRead(buttonPinYellow);
buttonStateBlue = digitalRead(buttonPinBlue);
8
9
10
mostrar_sequencia()
acender()
11
12
13
delay(1000);
digitalWrite(ledPinRed, LOW);
digitalWrite(ledPinGreen, LOW);
digitalWrite(ledPinYellow, LOW);
digitalWrite(ledPinBlue, LOW);
delay(300);
if(a>fimseq){
i=0;
a=0;
digitalWrite(ledPinRed, HIGH);
digitalWrite(ledPinGreen, HIGH);
digitalWrite(ledPinYellow, HIGH);
digitalWrite(ledPinBlue, HIGH);
delay(200);
digitalWrite(ledPinRed, LOW);
digitalWrite(ledPinGreen, LOW);
digitalWrite(ledPinYellow, LOW);
digitalWrite(ledPinBlue, LOW);
fimseq++;
}
if(fimseq==fim)
{
digitalWrite(ledPinRed, HIGH);
digitalWrite(ledPinGreen, HIGH);
digitalWrite(ledPinYellow, HIGH);
digitalWrite(ledPinBlue, HIGH);
delay(5000);
a=i=0;
fimseq=1;
setup();
}
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42