Voltar ao Catálogo
Matemática

Jogo de Adivinhação de Números

Adivinhe o número gerado aleatoriamente pelo Arduino em um display de 7 segmentos.

Código Fonte Arduino (.INO)

Código Arduino Adivinhação Números (.INO)
Baixar .INO

Código para geração de números aleatórios e display de 7 segmentos.

/************************************************
* Projeto: Números aleatórios - Display 7 seg.  *
* Desenvolvedor: Vanderlei Alves                *
* Data: 27/05/2025                              *
*************************************************/
//Pinos ligados aos segmentos A-G
int segmentos[] = {2, 3, 4, 5, 6, 7, 8};

//Mapas dos dígitos de 0 a 9
byte digitos[10][7] = {
  {1,1,1,1,1,1,0}, // 0
  {0,1,1,0,0,0,0}, // 1
  {1,1,0,1,1,0,1}, // 2
  {1,1,1,1,0,0,1}, // 3
  {0,1,1,0,0,1,1}, // 4
  {1,0,1,1,0,1,1}, // 5
  {1,0,1,1,1,1,1}, // 6
  {1,1,1,0,0,0,0}, // 7
  {1,1,1,1,1,1,1}, // 8
  {1,1,1,1,0,1,1}  // 9
};

//Variáveis globais
bool btnSortear = true;
int nOrder = 0;

void setup() {
  //Inicialização da comunicação serial
  Serial.begin(9600);

  //Determinação do pino de entrada do botão
  pinMode(10, INPUT_PULLUP);

  //Definindo os pinos de 2 a 8 como saídas digitais
  for (int i = 0; i < 7; i++) {
    pinMode(segmentos[i], OUTPUT);
  }

  //Inicializa com valor aleatório usando o canal analógico A0 como gerador de aleatoriedade
  randomSeed(analogRead(0));

  //Realiza uma contagem inicial de 0 a 9
  while(nOrder < 10)
  {
    mostrarNumero(nOrder);
    Serial.println(nOrder);
    nOrder++;
    if(nOrder > 10) nOrder = 0;
    delay(500);
  }

  //Zera o display
  mostrarNumero(0);
  
}

void loop() {
  //Leitura do botão
  btnSortear = digitalRead(10);

  //Verifica se o botão foi pressionado...
  if(!btnSortear)
  {
    //...se sim, gera números aleatórios. 
    int numero = random(0, 10); // Número entre 0 e 9

    //Apresenta o número gerado após o botão ser liberado
    mostrarNumero(numero);
    Serial.println(numero);
  }
}

//Função que realiza a formação dos dígitos no display
void mostrarNumero(int n) {
  for (int i = 0; i < 7; i++) {
    digitalWrite(segmentos[i], digitos[n][i]);
  }
}

Materiais Didáticos & Documentos

Tutorial Didático - Jogo de Adivinhação (PDF)
Tutorial Didático Roteiro de aula sobre probabilidade e números aleatórios.
Baixar Arquivo
Quer este projeto em sua escola?

A WETECH disponibiliza kits de hardware prontos, roteiros de aulas alinhados à BNCC e formação continuada de educadores.

Solicitar Orçamento Escolar