bueno, soy novato y apenas estoy aprendiendo de todo lo que me ofrece el arduino.
bueno, sin mas rodeos les pido su tutoria, la cosa es que quiero programar una "secuencia" aleatoria de leds, pero que SOLO UNO de estos (son 8) se encienda (de forma aleatoria) y que únicamente con pulsar un pulsador, el arduino reciba esta señal y apague el led encendido.
quiero que un led se prenda de forma aleaoria y que se mantenga encendido, hasta que accione un pulsado y se apague, y que se encienda otro led y se apague del mismo modo.
he estado intentando e indagando, pero aun no puedo hacer que funcione como quiero.
este es el código que tengo.
int pinArray[] = {4, 5, 6, 7, 8, 9, 10, 11, 12}; //declararo todos los leds
int count = 0;
int timer = 500;
void setup()
{
pinMode(pinArray[count], OUTPUT);
}
void loop()
{
count = random(0, 9); // Aleatoriamente escogemos que pata se va a encender...
digitalWrite(pinArray[count], HIGH);
delay(timer);
int boton = digitalRead(2);
while (boton == 1)
{
digitalWrite (pinArray[count], LOW);
delay (timer);
boton == digitalRead(2);
}
}
cual es mi error??, que me sugieren??
de antemano les agradezco su ayuda
bueno, creo que no me supe explicar. la cosa es que quiero hacer un tipo de juego, de agilidad,
digamos que tengo 8 leds cada uno con su pulsador y la cosa es que cuando se prenda un led (solo uno y de forma aleatoria) este se apague hasta que se presione su pulsador y esto que se repita indefinidamente o ...... un numero determinado de beses.
hasta ahora lo que he logrado es que mis leds se prendan de forma aleatoria, pero no he logrado apagaros con un pulsador.
Yo creo que sigues sin explicarte bien. Hablas de su pulsador pero en tu código, solo usas un pulsador (pin 2), y acá sugieres que hay tantos pulsadores como leds.
De modo que algo no esta claro.
surbyte:
Yo creo que sigues sin explicarte bien. Hablas de su pulsador pero en tu código, solo usas un pulsador (pin 2), y acá sugieres que hay tantos pulsadores como leds.
De modo que algo no esta claro.
Tienes razón. Bueno la tercera a de ser la vencida.
Tengo mis 8 leds y 8 pulsadores (la idea que tenia era, la de poner todos estos pulsadores, de tal forma que las señales de estos llegaran al mismo pin, si no estoy mal, seria una configuración en paralelo). Cada led y solo uno de los 8 debe prenderse de forma aleatoria y SOLO al presionar el botón este debe apagarse, se espera un delay y luego del delay se prende de nuevo un led de manera aleatoria y solo al oprimir mi botón este se apague y así sucesivamente, esto de momento.
Se me ocurrió (después de ver un tutorial sobre funciones) la de usar toda una función únicamente para que mire el estado del botón (o botones) y que esta función a la cual llamare "void estado_boton()" tuviera un condicional if, cosa de que SI el estado del botón cambia, se regresara a mi void loop() y me apagara el led que este prendido y si el estado del botón no cambia la función se quedara por asi decirlo, esperando a que el estado del botón cambie.
tratare de realizar el código a ver si funciona como creo.
o si alguno me puede indicar de un mejor modo, yo le agradeceré mucho.
Estaremos atentos a como lo planteas.
Cuando expliques algo no hay necesidad de hablar de loop void, if, ni while.
No debes explicarlo desde ese punto de vista porque no te explicas realmente, bueno de hecho si porque te he entendido. Pero una forma mas clara sería :
*El juego consta de 8 leds que prenderán aleatoriamente. *
*Cada Led tiene asociado un pulsador. * Al prenderse un led, el operador debe presionar ese botón lo más rápido posible. Tiene una ventana de tiempo para reaccionar o no.
Ahora que pasa cuando pulsa bien o mal? Hay premio o castigo? Son puntos, es un sonido o ambos?
Cuando programas o explicas algo debes intentar pensar en todo porque puede complicarse agregar cosas que no consideraste al comienzo.