Com este exemplo você criará um dado eletrônico, onde o mesmo fica sendo embaralhado e ao ser pressionado o botão do circuito ele sorteia um número de 1 a 6 e demonstra nos LEDs qual o número que foi sorteado.
Dificuldade:
Montagem:
Programação:
Material Utilizado:
A Montagem
O Sketch
#define CHAVE A5 //Define CHAVE como A5
#define A_1 2 //Define A_1 como 2
#define A_2 3 //Define A_2 como 3
#define A_3 4 //Define A_3 como 4
#define B_1 5 //Define B_1 como 5
#define B_2 6 //Define B_2 como 6
#define B_3 7 //Define B_3 como 7
#define C_1 8 //Define C_1 como 8
#define C_2 9 //Define C_2 como 9
#define C_3 10 //Define C_3 como 10
int sorteio; //Variável para armazenagem no número sorteado
void setup()
{
pinMode(CHAVE, INPUT_PULLUP); //COnfigura o pino A5 como entrada e habilita o resistor de pull-up
pinMode(A_1, OUTPUT); //Configura o pino 2 como saída
pinMode(A_2, OUTPUT); //Configura o pino 3 como saída
pinMode(A_3, OUTPUT); //Configura o pino 4 como saída
pinMode(B_1, OUTPUT); //Configura o pino 5 como saída
pinMode(B_2, OUTPUT); //Configura o pino 6 como saída
pinMode(B_3, OUTPUT); //Configura o pino 7 como saída
pinMode(C_1, OUTPUT); //Configura o pino 8 como saída
pinMode(C_2, OUTPUT); //Configura o pino 9 como saída
pinMode(C_3, OUTPUT); //Configura o pino 10 como saída
digitalWrite(A_1, LOW); //Desliga o LED do pino 2
digitalWrite(A_2, LOW); //Desliga o LED do pino 3
digitalWrite(A_3, LOW); //Desliga o LED do pino 4
digitalWrite(B_1, LOW); //Desliga o LED do pino 5
digitalWrite(B_2, LOW); //Desliga o LED do pino 6
digitalWrite(B_3, LOW); //Desliga o LED do pino 7
digitalWrite(C_1, LOW); //Desliga o LED do pino 8
digitalWrite(C_2, LOW); //Desliga o LED do pino 9
digitalWrite(C_3, LOW); //Desliga o LED do pino 10
}
void loop()
{
embaralha(); //Vai para a função para efeito de embaralhando
if (!digitalRead(CHAVE)) //Se algo for digitado na Serial
{
sorteio = random(1,7); //Sorteia um número de 1 a 6
if(sorteio == 1) //Se o número sortero for 1
{
um(); //Vai para a função que desenha o 1 no dado
}
else if(sorteio == 2) //Senão se o número sorteado for 2
{
dois(); //Vai para a função que desenha o 2 no dado
}
else if(sorteio == 3) //Senão se o número sorteado for 3
{
tres(); //Vai para a função que desenha o 3 no dado
}
else if(sorteio == 4) //Senão se o número sorteado for 4
{
quatro(); //Vai para a função que desenha o 4 no dado
}
else if(sorteio == 5) //Senão se o número sorteado for 5
{
cinco(); //Vai para a função que desenha o 5 no dado
}
else if(sorteio == 6) //Senão se o número sorteado for 6
{
seis(); //Vai para a função que desenha o 6 no dado
}
}
}
void um() //Função que desenha o 1 no no dado
{
apaga(); //Vai para a função que limpa o dado
digitalWrite(B_2, HIGH); //Acende o LED do pino 6
delay(3000); //Aguarda 3 segundos
}
void dois() //Função que desenha o 2 no no dado
{
apaga(); //Vai para a função que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void tres() //Função que desenha o 3 no no dado
{
apaga(); //Vai para a função que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(B_2, HIGH); //Acende o LED do pino 6
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void quatro() //Função que desenha o 4 no no dado
{
apaga(); //Vai para a função que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void cinco() //Função que desenha o 5 no no dado
{
apaga(); //Vai para a função que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
digitalWrite(B_2, HIGH); //Acende o LED do pino 5
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(3000); //Aguarda 3 segundos
}
void seis() //Função que desenha o 6 no no dado
{
apaga(); //Vai para a função que limpa o dado
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
digitalWrite(A_2, HIGH); //Acende o LED do pino 3
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
digitalWrite(C_2, HIGH); //Acende o LED do pino 9
digitalWrite(C_3, HIGH); //Acende o LED do pino 11
delay(3000); //Aguarda 3 segundos
}
void apaga() //Função para desliga todos os LED do dado
{
digitalWrite(A_1, LOW); //Desliga o LED do pino 2
digitalWrite(A_2, LOW); //Desliga o LED do pino 3
digitalWrite(A_3, LOW); //Desliga o LED do pino 4
digitalWrite(B_1, LOW); //Desliga o LED do pino 5
digitalWrite(B_2, LOW); //Desliga o LED do pino 6
digitalWrite(B_3, LOW); //Desliga o LED do pino 7
digitalWrite(C_1, LOW); //Desliga o LED do pino 8
digitalWrite(C_2, LOW); //Desliga o LED do pino 9
digitalWrite(C_3, LOW); //Desliga o LED do pino 10
}
void embaralha() //Função para efeito de embaralhamento
{
digitalWrite(C_3, LOW); //Desliga o LED do pino 10
digitalWrite(A_1, HIGH); //Acende o LED do pino 2
delay(10); //Aguarda 10 milissegundos
digitalWrite(A_1, LOW); //Desliga o LED do pino 2
digitalWrite(A_2, HIGH); //Acende o LED do pino 3
delay(10); //Aguarda 10 milissegundos
digitalWrite(A_2, LOW); //Desliga o LED do pino 3
digitalWrite(A_3, HIGH); //Acende o LED do pino 4
delay(10); //Aguarda 10 milissegundos
digitalWrite(A_3, LOW); //Desliga o LED do pino 4
digitalWrite(B_1, HIGH); //Acende o LED do pino 5
delay(10); //Aguarda 10 milissegundos
digitalWrite(B_1, LOW); //Desliga o LED do pino 5
digitalWrite(B_2, HIGH); //Acende o LED do pino 6
delay(10); //Aguarda 10 milissegundos
digitalWrite(B_2, LOW); //Desliga o LED do pino 6
digitalWrite(B_3, HIGH); //Acende o LED do pino 7
delay(10); //Aguarda 10 milissegundos
digitalWrite(B_3, LOW); //Desliga o LED do pino 7
digitalWrite(C_1, HIGH); //Acende o LED do pino 8
delay(10); //Aguarda 10 milissegundos
digitalWrite(C_1, LOW); //Desliga o LED do pino 8
digitalWrite(C_2, HIGH); //Acende o LED do pino 9
delay(10); //Aguarda 10 milissegundos
digitalWrite(C_2, LOW); //Desliga o LED do pino 9
digitalWrite(C_3, HIGH); //Acende o LED do pino 10
delay(10); //Aguarda 10 milissegundos
}