Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada.
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);
Mais uma demonstração de que com Arduino, qualquer tarefa se torna possível e pode ser executada com simplicidade e facilidade.
Exemplos de Dados com LED |
1 x Push-botton/Switch Datilar
1 x Resistor de 10 KO
7 x Resistores de 220 O
7 x LEDs vermelhos
1 x BreadBoard
Fios
O CIRCUITO:
Dado Eletrônico |
Disposição dos LEDs da direita para a esquerda em cima: LED1, LED2, LED3 em baixo: LED4, LED5, LED6 no centro: LED7 |
Disposição dos resistores |
Disposição dos Fios |
# 1 |
# 2 |
# 3 |
# 4 |
# 5 |
# 6 |
O PROGRAMA:
/*
Este exemplo é um código de domínio público.
*/
// define os pinos onde conectados os LEDs
int ledPins[7] = {2, 3, 4, 5, 6, 7, 8};
// define o padão do LED, qual LED será aceso para cada número
int dicePatterns[7][7] = {
{0, 0, 0, 0, 0, 0, 1}, // 1
{0, 0, 1, 1, 0, 0, 0}, // 2
{0, 0, 1, 1, 0, 0, 1}, // 3
{1, 0, 1, 1, 0, 1, 0}, // 4
{1, 0, 1, 1, 0, 1, 1}, // 5
{1, 1, 1, 1, 1, 1, 0}, // 6
{0, 0, 0, 0, 0, 0, 0} // BLANK
};
int switchPin = 9; // define o pino do botão de
int blank = 6; // quando cair Blank define como 6
// inicialização do Arduino
void setup()
{
for (int i = 0; i < 7; i++) // gera loop para definição de pinos
{
pinMode(ledPins[i], OUTPUT); // define o pino (i) como saída
digitalWrite(ledPins[i], LOW); // apaga o LED do pino (i)
}
randomSeed(analogRead(0)); // lê porta analógica 0 e gera um
// número aleatório
}
// loop principal do programa
void loop()
{
if (digitalRead(switchPin)) // lê o estado do botão, se pressionado (1)(5V)
{
rollTheDice(); // roda o Dado
}
delay(100); // espera 100ms e executa novamente
}
// roda o Dado
void rollTheDice()
{
int result = 0; // inicializa a variável "result" com 0
int lengthOfRoll = random(15, 25); // gera comprimento da rodada, quantos números passarão
for (int i = 0; i < lengthOfRoll; i++) // loop de 0 até comprimento da rodada
{
result = random(0, 6); // gera número de 0 a 6, devido ao indexda matriz começar em 0
// e ser preciso 7 números
show(result); // mostra resultado
delay(50 + i * 10); // atraso
}
for (int j = 0; j < 3; j++) // gera loop para piscar 3 vezes o resultado final
{
show(blank); // mostra branco
delay(500); // espera 500ms
show(result); // mostra resultado
delay(500); // espera 500ms
}
}
// mostra o resultado nos LEDs
void show(int result)
{
for (int i = 0; i < 7; i++) // gera loop para 7 resultados
{
digitalWrite(ledPins[i], dicePatterns[result][i]); // escreve no pino do LED (i) o resuldado de cada LED
}
}
// Fim da Compilação
O VÍDEO:
Dúvidas e sugestões enviem para: arduinobymyself@gmail.com
Até o próximo Post!
Excelente. Com algumas modificações consegui mostrar a numeração em um display digital.
ResponderExcluir