O projeto consiste em um dado eletrônico que “sorteia” um número aleatório de 1 a 6, assim como um dado normal. Para isso, vamos usar o módulo interruptor de mercúrio KY-017. Ele servirá como ativador do circuito, que, ao ser balançado, sorteia um número de 1 a 6 e mostra nos leds.

Fonte: eletrogate.com
Os números concordam com os leds na montagem final.

LED 1 = porta 7 | LED 2 = porta 8 | LED 3 = porta 9 | LED 4 = porta 10 | LED 5 = porta 11 | LED 6 = porta 12 | LED 7 = porta 13

O código será o seguinte:
long randNumber;
//aqui definimos as portas dos leds e do sensor
const int sensor = 6;
const int led1 = 7;
const int led2 = 8;
const int led3 = 9;
const int led4 = 10;
const int led5 = 11;
const int led6 = 12;
const int led7 = 13;
// aqui iniciamos todos os leds desligados
void setup() {
//randomSeed inicia a geração de numeros aleatorios.
//para isso é preciso que ela esteja em um pino nao usado , como o pino 0.
randomSeed(analogRead(0));
pinMode(sensor, INPUT);
pinMode(led1, OUTPUT);
digitalWrite(led1, LOW);
pinMode(led2, OUTPUT);
digitalWrite(led2, LOW);
pinMode(led3, OUTPUT);
digitalWrite(led3, LOW);
pinMode(led4, OUTPUT);
digitalWrite(led4, LOW);
pinMode(led5, OUTPUT);
digitalWrite(led5, LOW);
pinMode(led6, OUTPUT);
digitalWrite(led6, LOW);
pinMode(led7, OUTPUT);
digitalWrite(led7, LOW);
}
void loop() {
/*aqui , se o sensor esta ligado , gera um numero de 1 a 6
eu preferi usar a variavel randNumber pois ela é compacta e simples ja que
nós so precisamos de um numero de 1 a 6 */
if(digitalRead(sensor) == HIGH){
randNumber = random(1, 7);
delay(1000);
}
// aqui ligamos os leds de acordo com o numero gerado
if(randNumber == 1){
digitalWrite(led4 , HIGH);
}
if(randNumber == 2){
digitalWrite(led1 , HIGH);
digitalWrite(led7 , HIGH);
}
if(randNumber == 3){
digitalWrite(led1 , HIGH);
digitalWrite(led4 , HIGH);
digitalWrite(led7 , HIGH);
}
if(randNumber == 4){
digitalWrite(led1 , HIGH);
digitalWrite(led3 , HIGH);
digitalWrite(led5 , HIGH);
digitalWrite(led7 , HIGH);
}
if(randNumber == 5){
digitalWrite(led1 , HIGH);
digitalWrite(led3 , HIGH);
digitalWrite(led4 , HIGH);
digitalWrite(led5 , HIGH);
digitalWrite(led7 , HIGH);
}
if(randNumber == 6){
digitalWrite(led1 , HIGH);
digitalWrite(led2 , HIGH);
digitalWrite(led3 , HIGH);
digitalWrite(led5 , HIGH);
digitalWrite(led6 , HIGH);
digitalWrite(led7 , HIGH);
}
delay(100);
digitalWrite(led1 , LOW);
digitalWrite(led2 , LOW);
digitalWrite(led3 , LOW);
digitalWrite(led4 , LOW);
digitalWrite(led5 , LOW);
digitalWrite(led6 , LOW);
digitalWrite(led7 , LOW);
}Para a montagem eu usei uma caixa de entregas da eletrogate para realizar a montagem. Eu precisei de um pouco de cola quente para a fixação dos leds.
Primeiro passo: Preparar os resistores nos LED’s

Segundo passo: Soldar os resistores

Terceiro passo: Soldar os jumpers no resistor.

Corte o jumper e descasque

Quarto passo: Proteger a solda. Você pode usar um tubo termo retrátil ou cola quente caso preferir.

Você pode usar o ferro de solda para esquentar o tubo termo retrátil. A fixação na caixa pode ser feita com cola quente.
Eu fiz a montagem dos leds dessa maneira:

O sensor está virado para a parte que abre da caixa.

Para encaixar no Arduino eu usei uma barra de pinos, com os fios soldados. Mas, se preferir, pode colocar os jumpers sem soldar. A barra também precisa ser isolada.

No final os pinos na placa fica assim:

Atenção: O circuito só funciona se a caixa estiver na horizontal, pois caso contrário o sensor KY-017 ficará sempre ligado. Caso queira mudar a orientação da caixa é necessário mudar a posição do sensor também.
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!