Descrición:
Queremos montar e facer funcionar un dado electrónico que marca mediante uns leds un número ao chou entre 1 e 6 cada vez que prememos nun pulsador.
Pode haber diferentes opcións de deseño:
- O dado amosa un número cada vez que actuamos sobre un pulsador. Para evitar múltiples lecturas primeiro agardamos a que se prema o pulsador e despois a que se solte, como vimos na práctica do contador mellorado. Nese momento xérase un número ao chou entre 1 e 6 e móstrase no dado. Pode acompañarse don son nun zumbador.
- Cada vez que premamos nun pulsador empezan a cambiar os números do dado electrónico rapidamente e de forma aleatoria. Cando prememos de novo no pulsador o dado marca un número ao chou entre 1 e 6. Como vas utilizar un único pulsador tanto para o arranque como para a parada do dado, cómpre que repases a práctica do pulsador con memoria. Podes tamén incorporar son.
Montaxe:
Monta 7 LEDs como aparece na figura. Non esquezas as resistencias de protección de 220Ω.
Monta ademais un pulsador cunha resistencia de 10kΩ.
Programa:
Para crear o programa debes crear unha función dado(num) na que se indiquen os diferentes casos.
void dado (unsigned char num) { switch (num) { case 1: // número 1 digitalWrite (7, LOW); digitalWrite (8, LOW); digitalWrite (9, LOW); digitalWrite (10, HIGH); digitalWrite (11, LOW); digitalWrite (12, LOW); digitalWrite (13, LOW); break; case 2: // número 2 digitalWrite (7, LOW); digitalWrite (8, HIGH); digitalWrite (9, LOW); digitalWrite (10, LOW); digitalWrite (11, LOW); digitalWrite (12, HIGH); digitalWrite (13, LOW); break; // complétao ti case 3: // número 3 case 4: // número 4 case 5: // número 5 case 6: // número 6 default: case 0: //Apagar todos os leds }
Despois, no loop, podes chamar a función para que se execute
numero = random(1, 7); // Xera un número ao chou entre 1 e 6 dado (numero); // Mostra o número no dado
Para inicializar o xerador de números aleatorios e evitar que xere sempre a mesma secuencia, debes introducir no setup() a instrución:
randomSeed(analogRead(0));
Propostas:
- Podes facer o mesmo, pero utilizando un display 7 segmentos.