Todos nós estamos familiarizados com dados e frequentemente jogamos LUDO ou SANP SIDI (Snake & Ladders) usando dados. Os dados são uma caixa sólida do tipo escudeiro que contém 6 números diferentes em todos os seus lados. Jogamos dados em uma superfície para obter um número aleatório durante o jogo. Neste projeto tentamos replicá-lo com um dado digital usando a placa arduino uno. Em vez de lançar os dados, precisamos pressionar um botão para obter um número aleatório entre 0 e 6.
Componentes Requeridos
- Arduino UNO
- Display de sete segmentos (ânodo comum)
- Apertar botões
- Fios de conexão
- Tábua de pão
- 1 k resistor
- Fonte de energia
Diagrama de Circuito e Explicação
Conforme mostrado no circuito de dados digitais acima, o arduino é usado para controlar todo o processo. Dois botões são usados no circuito - um para iniciar os dados e outro para reiniciar os dados. O Arduino lê esses dois botões e executa a operação. Um display de sete segmentos é usado para mostrar o resultado dos dados.
O Arduino está continuamente executando a função rand () e armazenou seu valor em uma variável temporária. Quando o botão de dados é pressionado, o valor armazenado é calculado e exibido em sete segmentos usando o método apropriado (consulte a parte de programação do artigo).
Aqui neste circuito de dados, uma tela de ânodo comum de sete segmentos é usada para exibir os números dos dados, que é diretamente conectado aos números de pinos digitais 6, 5, 4, 3, 2, 1, 0. E o pino de ânodo comum de sete segmentos é conectado com resistor de +5 volts 220 Ohm. Dois botões de pressão também estão conectados, nomeadamente o botão de dados e o botão de reinicialização, que são conectados ao pino digital 14 (A0) e 15 (A1) em relação ao solo.
Explicação do código
A parte de programação deste projeto desempenha um papel muito importante para exibir o número do dado digital aleatório em uma exibição de sete segmentos. O Arduino não contém nenhuma biblioteca para exibição de sete segmentos. então criamos código inteiro sem usar nenhuma biblioteca.
Em primeiro lugar, selecionamos o pino digital para exibição de sete segmentos.
pino interno = {6,5,4,3,2,1,0};
Depois disso, criamos uma matriz de 6 dígitos de dados, a saber, 1, 2, 3, 4, 5 e 6.
dígito char = {0x02, 0x79, 0x24, 0x30, 0x19, 0x12};
Agora, demos instruções para usar o pino Arduino como saída.
void setup () {for (int i = 0; i <7; i ++) pinMode (pin, OUTPUT); pinMode (dados, INPUT); pinMode (redefinir, INPUT); digitalWrite (dados, ALTO); digitalWrite (redefinir, HIGH);
Enviamos um código para exibir zero em um display de sete segmentos por padrão.
temp int = 0x40; para (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pino, temp1); temp = temp >> 1; }
Agora rodamos a função rand () para obter um número aleatório.
temp int = rand ();
E quando pressionamos o programa de botão de dados, primeiro mapeie este número aleatório e, em seguida, envie o número para o display de sete segmentos usando o operador bit wise.
if (digitalRead (dice) == 0) {int k = temp% 6; temp = dígito; esperar(); para (int i = 0; i <7; i ++) {int temp1 = temp & 0x01; digitalWrite (pino, temp1); temp = temp >> 1; } atraso (200); }
E o mesmo para o botão de reset.
Neste programa, enviamos um único bit de cada vez. Aqui aplicamos um loop for que executa 7 vezes para enviar dados para cada segmento, um por um.