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.
Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!