LABSENA – Sorteie os números da Mega-Sena com Arduino

Sempre é bom fazer uma “fezinha”, vai que um dia a sorte nos ajuda. E caso você fique indeciso com os números que vai jogar, não tem problema, este exemplo chama-se LABSENA e vai selecionar os seis números aleatoriamente para você e mostrar no LCD.

.

Dificuldade:

Montagem:

Programação:


Material Utilizado:

Arduino Uno

Cabo USB A para B

Protoboard 830

Display LCD 16x2

Resistor 10kΩ

Potenciômetro 10kΩ

Chave Tactil

Alguns Jumpers

A Montagem

O Sketch

 

#include <LiquidCrystal.h> //Inclui a biblioteca LiquidCrystal.h

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //Instância o LCD com os respectivos que serão utilizados

#define botao 8 //Define botao como 8

int numero; //Variável para armazenar o número sorteado

int sorteio[6]; //Vetor com 6 posições para armazenar os 6 números
int i,j; //Variáveis para contagem
int
aux; //Variável para auxiliar na ordenação dos números sorteados

void setup()
{   

pinMode
(botao, INPUT_PULLUP); //Configura o pino 8 como entrada   

lcd.begin(16,2); //Inicia o Display LCD 16x2     

randomSeed
(analogRead(0)); //Função para sortear os números baseados na flutuação do pino A0

}

void
loop()
{    

lcd.setCursor(0,0); //Posiciona o cursor na primeira coluna da primeira linha   
lcd.print(" Lab Sena"); //Escreve na primeira linha "Lab Sena"   

while
(digitalRead(botao)){} //Aguarda o botao ser pressionado   

lcd.clear(); //Limpa a tela do LCD   
lcd.setCursor(0,0); //Posiciona o cursor na primeira coluna da primeira linha   
lcd.print("Sorteando..."); //Escreve na segunda linha "Sorteando..."   

for
(i=0;i<6;i++) //Laço para zerar os numeros sorteados   
{     
sorteio[i] = 0; //Zera a posição do numero sorteado   
}   

for
(i=0; i<6;i++) //Laço para o sorteio dos 6 números   
{          

numero = random(1,61); //Sorteia um número de 1 a 60     

for
(j=0;j<6;j++) //Laço para o sorteio caso o número seja repetido     
{       

if(numero == sorteio[j]) //Se o número for repetiro       
{         
numero = random(1,61); //Sorteia um número de 1 a 60       
}       

}     

sorteio[i] = numero; //Armazena o número sorteado na respectiva posição da contagem     
delay(500); //Aguarda 500 milissegundos   
}     

//Aplicação de bubble sort para ordenação dos numeros sorteados
  
for
(i=0 ; i<5 ; i++)   
{     
for
(j=i ; j<6 ; j++)     
{         
if
(sorteio[j] < sorteio[i])       
{         
aux = sorteio[i];         
sorteio[i] = sorteio[j];         
sorteio[j] = aux;       
}     

}   

}   

//============================================================   

//Numeros sorteados
  
lcd.clear(); //Limpa a tela do LCD   
lcd.setCursor(0,0); //Posiciona o cursor na primeira coluna da primeira linha         

//Imprime os números no LCD
  
for
(i=0;i<5;i++)   
{     
if
(i==3) lcd.setCursor(0,1);          

lcd.print(sorteio[i]);          

if(i==2){}     

else
lcd.print(" - ");        

}      

lcd.print(sorteio[i]); //Imprime no LCD   

//======================================
        

while
(digitalRead(botao)){} //Aguarda o botao ser pressionado   

while
(!digitalRead(botao)){} //Aguarda o botao ser despressionado      
lcd.clear(); //Limpa a tela do LCD


}