TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: dmela2012 en 19 de Abril de 2007, 13:48:57
-
Necesito hacer una rueda de 4 leds que van girando, con cuatro pulsadores, supongamos que los leds los nombramos del 1 al 4, y a los pulsadores tambien, entonces cuando se apreta un boton, tiene que empezar a girar siempre desde el mismo lugar, y cuando termina, si coincide, gana y sino no, pero no se como hacer esto al azar, y tampoco para tener una probabilidad de que gane del 70%, solo me sale si lo hago de antemano con cinco o mas posibilidades, pero me faltaria hacer un generador de numeros al azar, alguien tiene idea, le agradeceria mucho.
-
Para generar algo realmente al azar, debes depender de una fuente que sí lo sea... algo 'externo' , no algo provocado en el mismo pic.
Podrías basarte en el sensado de una resistencia con un amplicador de cierta ganancia y tomando eso con un A/D. De esa forma, estarías amplificando el ruido blanco. No se, es solo una sugerencia.
En cuanto a lo demás... bueno, debieras llevar un registro de cuantas veces ganó y cuantas no ganó para ir acomodando el resultado y la fuerza de impulso para que caiga o no caiga en dicho lugar.
Saludos
-
Una vez jugueteando con estas cosas , hice en la escuela un Dado electronico que generaba numeros al azar si se puede llamar asi . El asunto era con el timer y tablas, la tabla se iba desplazando hasta que el timer interrumpia y asi obtenias cualquier numero, claro esta de la tabla que definias
-
Podrías aprovechar el "ruido" que producen los pulsadores o contactos, esperando unas milésimas de segundo y sumando cuantos unos es capaz de leer el PIC en ese tiempo en el pulsador activado y en base a eso generar un número aleatorio.
Sería una forma de aprovechar un problema que muchas veces tenemos con los pulsadores y convertirlo en algo útil para este caso.
Salud 8)
-
Hola, similar a lo dicho por SavageChicken, creo que si colocas un contador, que se reinicie a llegar a 4, dentro de la rutina de sensado del pulsador, en el momento en que pulsan, este contara rapidamente, al soltar, verificas el estado del contador.... :mrgreen: y a la velocidad del micro, sera imposible predecir por un humano...
Suerte!
Norberto
-
tal vez mi respuesta sea demasiado simple... pero puede servir:
un timer de 8 bits sin prescaler contara un tick de reloj cada 1 us con un cristal de 4mhz
si cuando se pulse el boton se mira por que tick de reloj va y miramos el resto de una division entre 4 (nº ticks%4) solo puede haber 4 resultados posibles: 0, 1, 2 y 3.
seamos sinceros, puede ser lo ideal poder generar un numero al azar, pero en tiempos de microsegundos es imposible que nadie pueda predecir lo que va a ocurrir. :roll: